Venky Shankar [Fri, 14 Mar 2025 14:07:28 +0000 (19:37 +0530)]
Merge PR #61877 into main
* refs/pull/61877/head:
libcephfs_proxy: implement client side async rw operation
libcephfs_proxy: implement server side async rw operation
libcephfs_proxy: implement the async rw callback
libcephfs_proxy: define async rw opcode and structures
libcephfs_proxy: define some helper macros for callbacks
libcephfs_proxy: move pointer obfuscation functions to proxy_helpers.h
libcephfs_proxy: negotiate and use the async cbk feature
libcephfs_proxy: implement asynchronous callbacks
libcephfs_proxy: gracefully handle connection close
libcephfs_proxy: add negotiation documentation
libcephfs_proxy: replace legacy handshake by negotation in server side
libcephfs_proxy: replace legacy handshake by negotation in client side
libcephfs_proxy: implement server side negotiation
libcephfs_proxy: implement client side negotiation
libcephfs_proxy: implement receiving of negotiate structure
libcephfs_proxy: add negotiation structures
libcephfs_proxy: add support for control messages
libcephfs_proxy: reuse proxy_link_{read|write}
Patrick Donnelly [Fri, 14 Mar 2025 12:29:12 +0000 (08:29 -0400)]
Merge PR #62228 into main
* refs/pull/62228/head:
libcephfs: getcwd after chdir for API constraint
client: unwrap dentries for getcwd
client: refactor / optimize chdir
test/libcephfs: test getcwd with case insensitive dir
test/libcephfs: refactor ManyNestedDirs
include/filepath: add iterators for components
Soumya Koduri [Fri, 3 Jan 2025 08:20:48 +0000 (13:50 +0530)]
rgw/cloud-restore: Handle versioned objects
While restoring non-current object versions, ensure they remain non-current.
Read `olh_epoch` from the restored object's metadata into a new attr
"RGW_ATTR_RESTORE_VERSIONED_EPOCH". This attr/olh_epoch is used while
updating bi entry and also to reset HEAD object post expiry of temporary
copies.
Venky Shankar [Thu, 13 Mar 2025 16:57:57 +0000 (22:27 +0530)]
Merge PR #54396 into main
* refs/pull/54396/head:
PendingReleaseNote: add note for pause_purging and pause_cloninig
doc/cephfs: add note for config option pause_purging and pause_cloning
qa/cephfs: add tests for mgr/vol config pause_cloning
qa/cephfs: extend wait for trash empty
qa/cephfs: add tests for config option pause_purging
qa/cephfs: don't strip any whitespace for get_shell_stdout
mgr/vol: add pause/resume mechanism for async jobs
Patrick Donnelly [Tue, 11 Mar 2025 16:13:33 +0000 (12:13 -0400)]
test/libcephfs: test getcwd with case insensitive dir
Unfortunately, it's not easy to refactor this test into a shared method without
setting up an explicit test class which has been avoided up to this point. So
I'm going to just copy the code. Sorry.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
John Mulligan [Thu, 13 Mar 2025 11:59:42 +0000 (07:59 -0400)]
script: ensure curl is always available in build containers
Ensure that curl is installed in all build containers regardless of
ceph's dependencies or other factors. This allows us to use curl in
any subsequent build steps/scripts.
Fixes: https://tracker.ceph.com/issues/70451 Signed-off-by: John Mulligan <jmulligan@redhat.com>
Nizamudeen A [Mon, 10 Feb 2025 04:37:28 +0000 (10:07 +0530)]
mgr/dashboard: undefined while creating rbd image
this only happens on a fresh cluster but consistently reproducible in a
test environment. also cephfs also throws some error occasionally which
is also being handled similarly
Fixes: https://tracker.ceph.com/issues/68871 Signed-off-by: Nizamudeen A <nia@redhat.com>
Nizamudeen A [Sun, 9 Feb 2025 16:12:59 +0000 (21:42 +0530)]
mgr/dashboard: cypress failure after angular upgrade
after angular upgrade, the tests started failing with
An uncaught error was detected outside of a test:
TypeError: The following error originated from your test code, not from Cypress.
Cannot read properties of undefined (reading 'value')
which seems to originate from the page-helper.po. So handling the
undefined value.
Example run: https://jenkins.ceph.com/job/ceph-dashboard-pull-requests/17541/consoleFull#204663575173a8703b-5adb-41c5-84a0-8cf4e065ba3d
Fixes: https://tracker.ceph.com/issues/68871 Signed-off-by: Nizamudeen A <nia@redhat.com>
the wizard component changes caused issue to the e2e, so fixing it.
It was uncaught before because of the test were unable to run due to
some lab issues.
Fixes: https://tracker.ceph.com/issues/68871 Signed-off-by: Nizamudeen A <nia@redhat.com>
Nizamudeen A [Fri, 27 Sep 2024 05:30:17 +0000 (11:00 +0530)]
mgr/dashboard: add custom items to combo box
previously we were able to add custom items to our select-badges like
custom labels for hosts. but it got dropped unintentionally due to the
carbon. fixing it here
Fixes: https://tracker.ceph.com/issues/68871 Signed-off-by: Nizamudeen A <nia@redhat.com>
Rishabh Dave [Fri, 11 Oct 2024 19:03:29 +0000 (00:33 +0530)]
qa/cephfs: extend wait for trash empty
Trash directory for a volume is not created by default. If
_wait_for_trash_empty() in test_volumes.py encounters absence of trash
directory, return true.
Rishabh Dave [Sat, 6 Jan 2024 14:42:31 +0000 (20:12 +0530)]
qa/cephfs: add tests for config option pause_purging
Setting MGR config option mgr/volumes/pause_purging to true halts
all ongoing purges and allows no new purging to begin until this option
is changed to false. Add tests for this.
Rishabh Dave [Fri, 12 Jan 2024 10:28:41 +0000 (15:58 +0530)]
qa/cephfs: don't strip any whitespace for get_shell_stdout
Whitespace is not removed from the end of the stdout returned by the
method get_ceph_cmd_stdout(). Follow the same policy here since it is
better to not do so (this whitespace can be useful, when copying Ceph
auth keyrings from stdout to a file) and also for sake of uniformity of
interfaces.
Rishabh Dave [Tue, 3 Sep 2024 10:01:07 +0000 (15:31 +0530)]
mgr/vol: add pause/resume mechanism for async jobs
Add mechansim that allows pausing/resuming of the entire async job
machinery that queues, launches and picks next async job; both async
jobs, clones as well as purges.
And then add mgr/vol config option pause_purging and pause_cloning so
that both of these async jobs can be paused and resumed individually.
Fixes: https://tracker.ceph.com/issues/61903 Fixes: https://tracker.ceph.com/issues/68630 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Casey Bodley [Thu, 6 Mar 2025 18:13:36 +0000 (13:13 -0500)]
qa/vault: create_secrets() cleanup checks for orphaned keys
the vault task creates some keys on startup for use in s3-tests. on
cleanup, check that rgw has removed any temporary bucket keys that
were created during testing. fail with an assertion if the listed keys
differ
Nitzan Mordechai [Tue, 11 Mar 2025 15:37:07 +0000 (15:37 +0000)]
OSDMonitor: exclude destroyed OSDs from "ceph node ls" output
After destroying an OSD, the command "ceph node ls" still listed the destroyed OSD,
causing confusion. This fix ensures that the status of the OSD is checked before
adding it to the output, aligning its behavior with "ceph osd tree," which already
displays the correct status.
Alex Ainscow [Mon, 10 Mar 2025 11:31:45 +0000 (11:31 +0000)]
common/include: Add map type election and fmt::format to interval_map
Add capability to choose the type of map used in interval_map.
The default will be std::map and so should not change any existing
implementation.
This behaviour is already available in interval_set. The intention
is to enable a more efficient map library which suits a particular
application.
The optimized EC code, which is coming soon, will use a boost::flat_map
here since it deals with large numbers of very small (usually single-entry)
interval_maps.
Also adds fmt::format support and refactors print functions in both
set and map.
Patrick Donnelly [Tue, 11 Mar 2025 14:28:01 +0000 (10:28 -0400)]
client: avoid multiple calls to path_walk
When we wrap a dname after a path walk, we cannot do another path walk.
Originally this method was setup to permit that but with (upcoming) encryption
it cannot work. The dname from the path_walk is in the encrypted namespace so
we cannot do another lookup in a second path_walk.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Alex Ainscow [Tue, 11 Mar 2025 09:56:07 +0000 (09:56 +0000)]
common: Remove unnecessary assert checking unsigned number is 0 or greater.
Minor compiler warning caused by unsigned comparison with zero. Clearly
assert is not necessary and so was removed. Wrapping scenarios are
policed using remaining assert code.