Commit Graph

1512 Commits

Author SHA1 Message Date
Robert Vasek
da1e31354b rados: implement rados_getaddrs
This commit implements binding for rados_getaddrs.

Includes a unit test.

Signed-off-by: Robert Vasek <robert.vasek@clyso.com>
2024-10-23 14:25:10 +00:00
John Mulligan
df3b6a95ad containers: work around protobuf package issues
Work around errors related to protobuf package locations on centos.
This is triggered by our squid jobs failing with errors like:
```
22.40  Problem: protobuf-3.14.0-13.el9.i686 from appstream  does not
belong to a distupgrade repository
22.40   - package protobuf-compiler-3.14.0-13.el9.x86_64 from @System
requires protobuf = 3.14.0-13.el9, but none of the providers can be
installed
22.40   - cannot install both protobuf-3.14.0-14.el9.x86_64 from
appstream and protobuf-3.14.0-13.el9.x86_64 from @System
22.40   - cannot install both protobuf-3.14.0-14.el9.x86_64 from
appstream and protobuf-3.14.0-13.el9.x86_64 from appstream
22.40   - cannot install the best update candidate for package
protobuf-3.14.0-13.el9.x86_64
22.40   - problem with installed package
protobuf-compiler-3.14.0-13.el9.x86_64
22.40 (try to add '--allowerasing' to command line to replace
conflicting packages or '--skip-broken' to skip uninstallable packages
or '--nobest' to use not only best candidate packages)
------
```

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-10-23 11:08:02 +00:00
Anoop C S
10ec36044b docs: Remove references to invalid error APIs
Following APIs have been replaced with more generic cephError type to
jointly indicate the source and error.

cephFSError.Error
cephFSError.ErrorCode
radosError.Error
radosError.ErrorCode
rbdError.Error
rbdError.ErrorCode

Therefore remove corresponding entries from API docs.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-10-14 17:49:08 +00:00
Niels de Vos
73d2b2c14d tests: validate comparing with common cephError
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-10-14 17:49:08 +00:00
Niels de Vos
b712180b45 cephfs: replace cephfsError by cephError
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-14 17:49:08 +00:00
Niels de Vos
3dbd875587 rbd: replace rbdError by cephError
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-14 17:49:08 +00:00
Niels de Vos
7154dac048 rados: replace radosError by cephError
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-14 17:49:08 +00:00
Niels de Vos
e2ab47085a util: add cephError as error type for all packages
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-14 17:49:08 +00:00
John Mulligan
a551a9c354 docs: update README for release v0.30.0
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-10-14 13:02:39 +00:00
John Mulligan
dc94307955 docs: fix version number for new GroupSnapGetInfo api
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-10-14 05:13:02 +00:00
Niels de Vos
08e5b6217b doc: include GroupSnapGetInfo in API status
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-09 17:39:49 +00:00
Niels de Vos
b8573d486e rbd: dlsym-ify GroupSnapGetInfo
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-09 17:39:49 +00:00
Niels de Vos
b3b70bc6da rbd: implement librbd.rbd_group_snap_get_info
The new GroupSnapGetInfo function can be used to get a list of the RBD
image snapshots that were created as part of the RBD group snapshot.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-10-09 17:39:49 +00:00
Anoop C S
065319c787 internal/dlsym: Define _GNU_SOURCE for RTLD_DEFAULT
man dlsym(3) says the following:
. . .
The _GNU_SOURCE feature test macro must be defined in order to obtain
the definitions of RTLD_DEFAULT and RTLD_NEXT from <dlfcn.h>.
. . .

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-09-25 14:14:13 +00:00
Niels de Vos
5a7f9c9050 rbd: add ErrExist as standard error
Certain operations with RBD can return the C errno EEXIST. Applications
using go-ceph benefit from easily detecting this error.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-09-25 11:52:59 +00:00
Anoop C S
b4bdfbdb23 rbd: Do not use standard names as function arguments
'len' is already a standard library function. revive v1.4.0[1] started
looking into function related variables for such standard names as part
of redefines-builtin-id rule. Therefore use a different variable name
instead of 'len'.

[1] https://github.com/mgechev/revive/releases/tag/v1.4.0

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-09-24 13:45:41 +00:00
Anoop C S
b52c04c231 rados: Do not use standard names as function arguments
'len' is already a standard library function. revive v1.4.0[1] started
looking into function related variables for such standard names as part
of redefines-builtin-id rule. Therefore use a different variable name
instead of 'len'.

[1] https://github.com/mgechev/revive/releases/tag/v1.4.0

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-09-24 13:45:41 +00:00
pkthapa
d442b121db go-ceph: Versions upgrade
- bump github.com/gofrs/uuid from v4.4.0+incompatible to v5.3.0
- bump golang.org/x/sys from v0.24.0 to v0.25.0

Signed-off-by: Pankaj Thapa <pk.thapa66@gmail.com>
2024-09-11 13:42:19 +00:00
dependabot[bot]
740235b3c4 go-ceph: bump golang.org/x/sys from 0.22.0 to 0.24.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.22.0 to 0.24.0.
- [Commits](https://github.com/golang/sys/compare/v0.22.0...v0.24.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 09:27:12 +00:00
Anoop C S
7b57465142 github: Update mergify config to replace deprecated attributes
!! Action Required !!

The configuration uses the deprecated merge_method attribute of the
queue action in one or more pull_request_rules. It must now be used
under the queue_rules configuration.
A brownout is planned on August 26th, 2024.
This option will be removed on September 23rd, 2024.
For more information: https://docs.mergify.com/configuration/file-format/#queue-rules

!! Action Required !!

The configuration uses the deprecated update_method attribute of the
queue action in one or more pull_request_rules. It must now be used
under the queue_rules configuration.
A brownout is planned on August 26th, 2024.
This option will be removed on September 23rd, 2024.
For more information: https://docs.mergify.com/configuration/file-format/#queue-rules

ref: https://docs.mergify.com/workflow/actions/queue/#parameters

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-08-20 12:05:09 +00:00
Sven Anderson
fcfb1d4d37 docs: improve release-process.md 2024-08-13 09:00:47 +00:00
Sven Anderson
db214dbc97 docs: update README for release v0.29.0
Signed-off-by: Sven Anderson <sven@redhat.com>
2024-08-13 09:00:47 +00:00
Sven Anderson
530af708c9 go-ceph: promote mature APIs to stable
Signed-off-by: Sven Anderson <sven@redhat.com>
2024-08-13 09:00:47 +00:00
Sven Anderson
70eb2f14fb docs: update api-status for release v0.29.0
Signed-off-by: Sven Anderson <sven@redhat.com>
2024-08-13 09:00:47 +00:00
John Mulligan
5eb565f480 docs: add new rados/striper package to api status
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
498214f580 implements: add rados/striper (sub)package support
Add rados/striper to the implements tool. It needs to be recognized
as a new C-API wrapping library.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
9ade640fd0 rados/striper: add a package doc comment for striper
Add a package doc comment that also points out some things I learned
about how `rados` command line tool lists striped objects to preempt
being asked later on. :-)

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
0606388f9e rados/striper: add some xattr file tests for the striper package
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
6143ff682d rados/striper: add an initial set of tests for the striper package
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
72e2ac4d8f rados/striper: add xattr support to striper package
Add support for xattr APIs to the Striper object.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
33ed5cea3d rados/striper: start new striper package
Start a new `rados/striper` package that wraps Ceph's libradosstriper.
The libradosstriper library builds on top of the librados library to
support striping large "objects" over multiple RADOS objects.

Fixes: #1011

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
60ea53dabd containers: add rados striper ceph packages to container image
Add libradosstriper devel and debug packages to the test container
image. This is in preparation for adding a future `rados/striper`
package to go-ceph that will wrap these APIs.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
795ed073da containers: reorganize dockerfile command setting up repos and packages
Reorganize the RUN command in the Dockerfile that sets up distro based
repositories and ceph packages. Move the `&&` to the beginning of the
lines to highlight when commands begin (and end). Change the indent
level of items that are arguments to commands to further clarify
what is part of what.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
dependabot[bot]
f60137a0ee go-ceph: bump github.com/aws/aws-sdk-go from 1.54.12 to 1.55.5
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.54.12 to 1.55.5.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.54.12...v1.55.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 06:31:45 +00:00
dependabot[bot]
c0c9e100d0 go-ceph: bump golang.org/x/sys from 0.21.0 to 0.22.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.21.0 to 0.22.0.
- [Commits](https://github.com/golang/sys/compare/v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 05:03:35 +00:00
John Mulligan
d564eff523 workflows: enable squid job
Enable the squid ci job now that the squid RC is available. This won't
be required for merge until after the full release.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-07-25 13:52:06 +00:00
Niels de Vos
a9ce294dbb rbd: let CloneImageByID check for rbd_clone4 at runtime
Some versions of librbd provide the rbd_clone4 function, and others do
not. Squid will have the function backported in the 1st update, the
initial release of Squid does not have it. This makes checking for the
function based on the named Ceph version impractical.

With the new dlsym.LookupSymbol() function, it is now possible to check
the availability of rbd_clone4 during runtime. If the symbol is not
found ErrNotImplemented is returned, which can be used to detect the
unavailability of the function.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-07-25 12:03:15 +00:00
Niels de Vos
8bced26404 rbd: fix cleanup of CloneFromGroupSnap test case
When there is a failure during the CloneFromGroupSnap test case, the
rbd-group snapshot was not removed, preventing images from being deleted
as well.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-07-25 12:03:15 +00:00
Niels de Vos
0460442cba internal: add dlsym package for working with dynamically loaded symbols
The dlsym package provides LookupSymbol() which resolves a named symbol
(like "rbd_clone4") and returns a unsafe.Pointer to it. The caller is
expected to cast the symbol to function that can be called.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-07-25 12:03:15 +00:00
Peter Willis
9531dd692a rgw/admin: add test for bucket creation date 2024-07-22 09:13:10 +00:00
Peter Willis
f9dc7c1dcf rgw/admin: add creation time to bucket 2024-07-22 09:13:10 +00:00
dependabot[bot]
1046b034a1 go-ceph: bump golang.org/x/sys from 0.20.0 to 0.21.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.20.0 to 0.21.0.
- [Commits](https://github.com/golang/sys/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 08:16:11 +00:00
Anoop C S
83cd6ac097 Makefile: Use ?= for initial variable definitions(part 2)
:= is not capable of accepting values(for variables) from execution
environment. Therefore replace := with ?= for completeness.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-07-02 18:50:35 +00:00
dependabot[bot]
3e480cd9ae go-ceph: bump github.com/aws/aws-sdk-go from 1.53.14 to 1.54.12
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.53.14 to 1.54.12.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.53.14...v1.54.12)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 18:16:42 +00:00
John Mulligan
edcd508bfd makefile: remove nautilus CEPH_VERSION
Remove nautilus from the make file's "known ceph codenames". This
change goes along with the removal of nautilus from the CI as
the makefile is really only used by developers/contributors and
not by codebases that use go-ceph.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-07-02 23:22:37 +05:30
John Mulligan
d9c4b8127a github: do not require nautilus CI jobs for mergify
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-07-02 23:22:37 +05:30
John Mulligan
1cff47afe3 workflows: remove nautilus from CI test matrix
This change removes nautilus from our github CI tests.

The original plan was to remove nautilus from our test matrix when Ceph
Squid was released. However, while Squid is not released yet, it is very
very soon. In the meantime, CentOS 7 is now EOL and the container images
for nautilus can not be updated. From the Ceph POV nautilus has been
long unsupported and they will not be making any changes to the base OS
for nautilus images. We have no desire to do workarounds for the EOLing
of CentOS7 either. As such we're ending direct support for nautilus a
little early but not by much.

Note that this is only disabling our testing of nautilus - we're not
going to be stripping the build tag from the sources. But we will no
longer require new code to to add it either.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-07-02 23:22:37 +05:30
Niels de Vos
ee25db94c6 rbd: add support for CloneImageByID()
RBD image groups can be used to create consistent snapshots of all
images that are part of the group. The new rbd_clone4() API makes it
possible to create a new RBD image from a single snapshot that was
created as part of the group snapshot.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
2024-06-25 20:40:23 +00:00
Vladimir Kavlakan
0fc95cf6fe rados: read & write op exec added
Signed-off-by: Vladimir Kavlakan <vkavlakan@gmail.com>
2024-06-19 13:40:42 +00:00
Simon Jürgensmeyer
9604e19a0e rgw/admin: add ErrNoSuchSubUser
Signed-off-by: Simon Jürgensmeyer <simon.juergensmeyer@hetzner-cloud.de>
2024-06-13 14:37:59 +00:00