Commit Graph

54 Commits

Author SHA1 Message Date
Jiffin Tony Thottan
be5dff01c9 rgw/admin: remove unknown user test case from user_bucket_test.go
Fixes: #984

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2024-05-07 15:30:17 +00:00
John Mulligan
f9290c87cc rgw/admin: promote GetInfo API to stable
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-04-09 13:13:56 +00:00
Sven Anderson
d34f8b95c1 rgw/admin: Fixup for 6f90ce1
Signed-off-by: Sven Anderson <sven@redhat.com>
2024-02-13 08:28:55 +00:00
Manish
6f90ce139c Code Lint: Fix lint errors caused by revive check for unused parameters
revive v1.3.7 added https://github.com/mgechev/revive/pull/966 which
checks for unused parameters in function literals. This caused several
lint errors in go-ceph code.

Signed-off-by: Manish <myathnal@redhat.com>
2024-02-13 07:22:13 +00:00
Anoop C S
8cc709a846 rgw/admin: Add tests for user bucket quota APIs
Credits: Pavel Boev (https://github.com/R4scal)
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-02-06 12:53:57 +00:00
Anoop C S
2f0bbfe505 rgw/admin: Add API to set/get user bucket quota
Credits: Pavel Boev (https://github.com/R4scal)
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-02-06 12:53:57 +00:00
Anoop C S
09d81f5bb3 micro-osd.sh: Clarify the suspicion around S3 credentials
It's unusual to put any kind of credentials out in open. The set
of credentials defined with `S3_ACCESS_KEY` and `S3_SECRET_KEY`
variables in the script are questionable in its nature. But these
are not real/valid credential values in any form for AWS rather
used for testing the S3 compatible API from Ceph RGW. Therefore
clarify the intention and replace with sample values from official
AWS documentation.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2023-12-08 18:42:13 +00:00
Anoop C S
0ba56a3142 rgw/admin: Add a test for API.GetInfo
Co-authored-by: Anoop C S <anoopcs@cryptolab.net>
Signed-off-by: Sébastien Han <seb@redhat.com>
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2023-11-08 05:01:00 +00:00
Anoop C S
936fc2deb1 rgw/admin: Add support for new /info section
Implement support for new /info AdminOps interface, which returns
a json record similar to:

{
  "info": {
    "storage_backends": [
      {
        "name":"rados",
        "cluster_id":"204a1415-0b03-4926-bf76-6aebd192a52d"
      }
    ]
  }
}

Co-authored-by: Anoop C S <anoopcs@cryptolab.net>
Co-authored-by: Sébastien Han <seb@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2023-11-08 05:01:00 +00:00
Dmitry Kvashnin
68fa49b272 add tenant to bucket struct field 2023-08-24 10:28:16 +00:00
guoguangwu
ce4031e218 rgw: remove refs to deprecated io/ioutil
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-07-08 14:26:48 +00:00
Jiffin Tony Thottan
3051f22a4e rgw/admin: fix getbucketpolicy api
The request header in GetBucketPolicy(), was not passing policy in its
header, so the response received Bucket than the actual policy.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-06-15 13:47:44 +00:00
Anoop C S
e2d6524cf4 rgw/admin: Make API.ListBucketsWithStat stable
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2023-06-08 17:35:55 +00:00
Nikhil-Ladha
96408092ab rgw/admin: Add missing uid member to usage struct
**Description:**
Added the uid member to the usage type.
We don't need to handle the uid here, as the ceph funtion handles it in the backend.

Fixes: #758

Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
2023-03-20 07:09:27 +00:00
moti
dafbe65716 rgw: add ListBucketsWithStat function
Add an rgw api function that combines listing and stat'ing buckets.

Signed-off-by: moti <motaharesdq@gmail.com>
2023-01-24 13:38:48 +00:00
Anoop C S
2c47426469 rgw/admin: Remove 'ceph_preview' tags from test files
These are left overs from v0.13.0 and v0.17.0 releases where we missed
to remove preview tag when corresponding APIs were promoted to stable.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-12-19 18:20:48 +00:00
Anoop C S
747dd7274b rgw/admin: Make API.SetIndividualBucketQuota stable
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-12-06 14:20:29 +00:00
Anoop C S
c11161eb61 rgw/admin: Make API.CreateKey and API.RemoveKey stable
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-12-06 14:20:29 +00:00
Anoop C S
72ac947edf rgw/admin: Make API.ListUserBuckets and API.ListUserBucketsWithStat stable
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-12-06 14:20:29 +00:00
Sven Anderson
9d74c3c2b1 go-ceph: change mature preview APIs to stable
Signed-off-by: Sven Anderson <sven@redhat.com>
2022-08-16 11:42:41 +00:00
Kharitonov Maksim Andreevich
4ef5a9547e rgw/admin: List user's bucket support 2022-08-01 18:13:46 +00:00
Kharitonov Maksim Andreevich
3b66ca3c53 rgw/admin: Key create and delete api support 2022-08-01 18:13:46 +00:00
Kharitonov Maksim Andreevich
16df743c45 rgw/admin: Individual bucket quota support 2022-08-01 18:13:46 +00:00
oneto1
57b50b3170 rgw/admin: add num_shards to bucket struct field and format code
This change add a new bucket struct field, so we can use rgw.admin.API.GetBucketInfo()
to get a bucket's num_shards.

Format bucket.go.

Signed-off-by: oneto1 <644739768@qq.com>
2022-07-18 13:40:56 +00:00
Sven Anderson
f4fb583252 docs: remove all PREVIEW comments
Signed-off-by: Sven Anderson <sven@redhat.com>
2022-06-06 14:42:04 +00:00
Sven Anderson
005aa73667 rgw/admin: fix tests for quincy
Signed-off-by: Sven Anderson <sven@redhat.com>
2022-05-19 14:09:21 +00:00
John Mulligan
57bbe83bef rgw admin: disable TestBucket on qunicy
Mysteriously fails without a useful error.  Will need to be properly
debugged later.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-05-02 14:14:25 +00:00
Sebastian Riese
6a4d7eb0bd rgw/admin: Tests for the subuser API calls
Some unit tests for the validation and integration tests.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-03-17 17:47:25 +00:00
Sebastian Riese
71d9de36f8 rgw/admin: Add the subuser API calls
Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-03-17 17:47:25 +00:00
Sebastian Riese
12d86cb849 rgw/admin: Extend the User data to parse Subuser data
THIS POTENTIALLY BREAKY DOWNSTREAM CODE (as it changes the types
of exported fields in an existing, exported struct).

The fields of the User structure representing the Subuser information
have been specified to parse this data strictly and typesafe.

The fields SwiftKeys and Subusers need the url:"-" annotation,
because otherwise url-keys in that substructure would clash with
those in the User structure.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-03-17 17:47:25 +00:00
Sebastian Riese
f8830413c0 rgw/admin: Extend the testing of buildQueryPath
Only one of the two code paths of buildQueryPath was tested so far.
This makes the test harness tight by testing the second one (where
the path already contains a query parameter).

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-03-17 17:47:25 +00:00
Sebastian Riese
1de6083536 rgw/admin: Clean up the parameter serialization
The following changes have been done:

* Up until now everything in the argument objects was serialized to
  the API calls. This was updated to restrict the serialization to
  the API call parameters that are parsed in the Ceph RGW source code.

  Parameters not yet supported by us are documented as comments.
  Note, that a superset of the documented parameters is supported.

  Documentation for the API:
  <https://docs.ceph.com/en/pacific/radosgw/adminops/>

  Link to the used source tree:
  <193895ffba/src/rgw>

  The argument parsing happens in the rgw_rest_*.cc files.

* The serialization code (valueToURLParams) has been updated to
  be more in line with other serialization methods:

  - A tag "-" causes the field to be ignored
  - Only the first item in a list of tag items is interpreted as
    name.
  - The handling of pointer and direct data types has been
    harmonized (the same rules for the names and value apply now).

* There is still room for improvement to make things more consistent:
  A pointer to a non-elementary data type will emit unexpected
  request parameters.

* Presence of required parameters is not validated by the library,
  this is left to the API.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-03-17 17:47:25 +00:00
mergify-bot
98ec2e31d6 rgw/admin: add suport for link/unlink bucket (#646)
rgw/admin: add suport for link/unlink bucket

Signed-off-by: wanggangfeng <gfengwong@gmail.com>

* rgw/admin: add comment and update-api

Signed-off-by: wanggangfeng <gfengwong@gmail.com>

* rgw/admin: add ceph_preview

Signed-off-by: wanggangfeng <gfengwong@gmail.com>

* Merge branch 'master' into feature-645

* Merge branch 'master' into feature-645

* Merge branch 'master' into feature-645

* Merge branch 'master' into feature-645

* rgw/admin: bucketLink
1 update api doc
2 remove optional check
3 update test

Signed-off-by: wanggangfeng <gfengwong@gmail.com>

* Update rgw/admin/link_test.go

Co-authored-by: Jiffin Tony Thottan  <thottanjiffin@gmail.com>

* rgw/admin: improve parameters name

Signed-off-by: wanggangfeng <gfengwong@gmail.com>

* Merge branch 'master' into feature-645

* Merge branch 'master' into feature-645

* Merge branch 'master' into feature-645
2022-03-14 20:10:28 +00:00
rakeshgm
a833cd7474 rgw/admin: correct example
the function `co.GetUser()` needs -
ctx and type user not string

Signed-off-by: rakeshgm <rakeshgm@redhat.com>
2021-12-13 12:57:50 +00:00
Sébastien Han
e23ab127c0 rgw/admin: promote add/remove caps to stable
Promoting the API.AddUserCap and API.RemoveUserCap calls to stable so
they can be release in 0.13.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-10-29 12:49:23 +00:00
Sébastien Han
67c57bd965 rgw/admin: ability to retrieve user by access key
We can now get an s3 user from the rgw admin ops API with its access
key. No validation on the key is performed other than not being empty.

Closes: https://github.com/ceph/go-ceph/issues/600
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-10-18 14:28:21 +00:00
Sven Anderson
87f4563118 format: run gofmt on all files
Signed-off-by: Sven Anderson <sven@redhat.com>
2021-10-04 18:58:35 +00:00
Sven Anderson
26fd846da1 docs: update comments of preview and deprecated APIs
Signed-off-by: Sven Anderson <sven@redhat.com>
2021-10-04 18:58:35 +00:00
Jiffin Tony Thottan
62627bf406 rgw/admin: add apis for handling UserCap
Added two apis AddUserCap() and RemoveUserCap() to add/remove the
capabilities from RGW user.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-09-27 12:23:29 +00:00
John Mulligan
6a9c0b243a rgw admin: import testify suite as tsuite
This avoids import shadowing elsewhere in radosgw_test.go.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-13 15:13:53 +00:00
John Mulligan
c658cc93a9 rados: import testify suite as tsuite
This avoids import shadowing elsewhere in rados_test.go.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-13 15:13:53 +00:00
Jiffin Tony Thottan
9edf093e7e rgw/admin: include caps in User Struct for createUser()
The caps is option in RGW for providing special permissions for
the ceph user, include it on the User{} so that it can be send in
the request for CreateUser().

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-08-10 12:30:10 +00:00
Jiffin Tony Thottan
8d946bafeb rgw/admin: include stat information to User Struct
The stat information gives idea about current storage consumption.
Include that info to the user struct

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-08-10 12:30:10 +00:00
Sébastien Han
9cae71ab54 rgw/admin: remove Debug field from API type
Instead of implementing our own logging let's the consumer implement
their own potential debug for each HTTP requests.

Closes: https://github.com/ceph/go-ceph/issues/508
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-27 18:21:53 +02:00
Sébastien Han
1a18c07193 rgw/admin: un-export mock client
We don't need to export the mock, the consumer will generate its own.
What really matters is to have an interface that consumer can mock it
desired. Reference: https://github.com/golang/go/wiki/CodeReviewComments#interfaces

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-22 10:24:57 +00:00
Sébastien Han
401fbe9698 rgw/admin: remove unnecessary type
Now that we use  http.Method* constant from the http package, we don't
need to have verbHTTP type anymore.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-21 05:11:49 +00:00
Sébastien Han
42a9620c93 rgw/admin: add ability to mock HTTP Client
We can now use a mocked client to be consumed by unit tests as well as
various users of the API.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-21 05:11:49 +00:00
Sébastien Han
53b3842e29 rgw/admin: add an interface around the HTTP Client
We now have a new interface `HTTPClient` which helps us doing various
operations such as mutating and mocking the HTTP Client.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-21 05:11:49 +00:00
Sébastien Han
7881ee6829 rgw/admin: use http verbs from the http package
The http package provides constants for common http methods so let's use
them.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-13 14:42:54 +00:00
Sébastien Han
8179bd4437 rgw/admin: stop returning pointers
Since we are not passing a pointer, let's not return a pointer either.
Also, our use case fits well the non-returning pointer approach since
the content of the struct type is not expected to be modified.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-06-07 12:23:46 -04:00