Removed the `LastSeen` property of MirrorPeerSite struct as it is not being set/updated anywhere by the ceph API.
Fixes: #870
Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
Added new locking APIs for the rbd component named
`rbd_lock_acquire`, `rbd_lock_break`, `rbd_lock_release`, `rbd_lock_get_owners`,
`rbd_is_exclusive_lock_owner` along with supporting TCs.
Fixes: #275
Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
We overlooked this in review, before this makes it into a release let's
remove the referential redundancy with rapidity.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
As discussed in #851, we wanted to fully document the arguments the
callback function is expected to be called with.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Recent changes to ceph check that a directory exists in cephfs before it
will allow an NFS export of the dir to be created. It was a pretty shaky
practice of ours to create NFS exports without dirs backing them anyhow.
This change ensures the dirs exist before the test cases are run and
clean them up afterwards.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The New function created a rados connection object but did not expose it
via a public api, making it impossible to deterministically sever / clean up
the connection. This commit assumes that the patch will be merged prior
to the go-ceph v0.21 release so that we can plan to remove the function
three versions later (v0.24). I chose three versions so that it is one
release longer than our typical stabilization period as this function
has been around for a while.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
**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>
Add unit and simplistic functional tests for new JSON/status description
extraction functions. Because these are preview functions we also add a
stub file to add a no-op function to be built on non-preview builds.
This avoids having to reimplement large parts of the existing mirroring
tests just to validate this small aspect of the SiteMirrorImageStatus
struct.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add UnmarshalDescriptionJSON method to SiteMirrorImageStatus
Add DescriptionReplayStatus method to SiteMirrorImageStatus
Both these functions are meant to help extract the JSON object that is
some times appended to the Description field in the
SiteMirrorImageStatus struct. I have only seen the JSON appear after
"replaying, " but there's little docs for this and I skimmed to code to
even find out what fields the JSON might include. As such, the
UnmarshalDescriptionJSON tries to unmarshal the appended JSON into an
object the caller provides in case skimming the code was insufficient or
the caller has other needs. For most cases, DescriptionReplayStatus can
be used to parse the JSON into a struct containing known fields.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Previously, commit 102616b158 tried to
expose GOPROXY env var from developer environment by specifying it as
environment variable or build argument to container build process. But
using --build-arg to container build command would require the same to
be referenced inside Dockerfile/Containerfile so that the following
warning can be avoided:
[Warning] one or more build args were not consumed: [GOPROXY]
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
This bumps the Go version of the test container to 1.19.5, which is
the oldest supported Go version as of now.
The go.mod file (including an upgrade of its dependencies) and the
revive environment is bumped to 1.19 as well.
Signed-off-by: Sven Anderson <sven@redhat.com>
This change executes `make api-fix-versions` in order to convert the
placeholder versions into real version numbers.
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
As noted in the status on github:
```
The configuration uses the deprecated rebase_fallback attribute of the
queue action.
A brownout is planned on February 13th, 2023.
This option will be removed on March 13th, 2023.
For more information: https://docs.mergify.com/actions/queue/
```
Therefore we'll simply drop this attribute.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
If the ceph cluster we're testing against supports more then one
fs our tests shouldn't fail. Update the tests to ensure a cephfs
exists as expected but don't assume it's the only one (or that
it's the first one returned).
Signed-off-by: John Mulligan <jmulligan@redhat.com>
These tests are all scoped within a test function that will only run if
the alternate fs name is supplied through the environment. This way the
tests can be run by hand on older versions if need be.
The tests verify the use of the SelectFilesystem function and that the
file systems are distinct namespaces.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add SelectFileystem implementing ceph_select_filesystem which can be
used to select a cephfs by name, prior to calling mount, when the ceph
cluster hosts more than one cephfs file system.
Fixes: #262Fixes: #818
Original-Version-By: "Arvid E. Picciani" <arvid@kraud.cloud>
Original-PR-URL: https://github.com/ceph/go-ceph/pull/819
Signed-off-by: John Mulligan <jmulligan@redhat.com>
With micro-osd.sh supporting a 2nd alternate fs we add basic support to
entrypoint.sh to help the tests find and use that alternate fs.
The command line option is flexible, you can supply it with a literal fs
name or, when prefixed with an `@`, it will read the name from a file.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a function to bring up a 2nd cephfs file system. Execute it on
ceph versions pacific and later.
While the API exists on nautilus and octopus those versions are already
deprecated in go-ceph. Additionally, the ceph docs for "multifs" state,
"Beginning with the Pacific release, multiple file system support is
stable and ready to use." [1] Therefore we won't bother running our test
automation on anything earlier.
1 - https://docs.ceph.com/en/latest/cephfs/multifs/#multiple-ceph-file-systems
Signed-off-by: John Mulligan <jmulligan@redhat.com>