... methods in LocalRemote class. These methods are called in some of
the recently added cephfs tests. They were implemented in teuthology's
Remote class, but not in vstart_runner's LocalRemote class. Hence some
cephfs tests couldn't be run locally using vstart_runner without this
change.
Signed-off-by: Ramana Raja <rraja@redhat.com>
* refs/pull/37159/head:
mon/MDSMonitor: return zero when mds is absent for "mds fail"
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
`ceph-volume simple activate --all` relies on the presence of json files
in `/etc/ceph/osd` that was created with `ceph-volume simple scan`
command.
In a cluster lifecycle, it is very likely an OSD which was deployed with
ceph-disk at some point gets removed or replaced. It means the corresponding
json file in `/etc/ceph/osd` becomes unrelevant. It makes `ceph-volume
simple activate --all` fails because it tries to mount non existing
partitions.
The idea here is to simply warn the user that the osd described in the
json file doesn't exist anymore and exit properly instead of throwing an
error.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1877672
Closes: https://tracker.ceph.com/issues/47493
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
to explain the reason why we have tri_mutex, and how it is related to
pipelined read / write. and the mutual exclusion between read, write
and rmw operations.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Defining things in a detail section and then using them outside turned
out to not be the best idea.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
A new user under the namespace 'oidc' is created for every federated
user in case of AssumeRoleWithWebIdentity.
In case of AssumeRole, the user that needs cross account access becomes
the owner.
In both cases buckets are created in the tenant that the role belongs to.
Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
these are programming errors, and are easy to detect. also assert() does
not return, so compiler won't complain at seeing a branch does not
return value in a function that returns value.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* add tri_mutex::abort() to pass given exception to all waiters
* add ObjectContext::interrupt() to abort all pending consumers
of current object context
Fixes: https://tracker.ceph.com/issues/47311
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
before this change, a seastar::shared_mutex, a RWState and a
shared_promise are used for tracking the consumers of ObjectContext.
and all of the consumers are put into writers if the predicate function
evaluates to "false", and is awaken if the predicate function evaluates
to "true" afterwards in a polling loop waiting on the shared_promise,
which is in turn fulfilled once the last consumer of the given category
relinquishes the lock.
this approach has couple issues:
* it is heavy weighted. seastar::shared_mutex already tracks each of
the waiters' continuation using separate promise<>, and it does try
to reschedule them once a given consumer releases the last lock.
so it's like a design of a customized shared_mutex over a
shared_mutex.
* it is complicated. 3 variables for tracking the different
consumers of ObjectContext.
in this change,
* `tri_mutex` is introduced as a variant of the original
`seastar::shared_mutex` to track two different shared users in
addition to an exclusive user.
* replace `shared_mutex` with `tri_mutex` in `ObjectContext`, to
simplify the design.
* move recovery_read_marker into `ObjectContext`. assuming all
pending actions will be added as a waiter for the related
object context before they acquire the lock.
Signed-off-by: Kefu Chai <kchai@redhat.com>
instead of reusing ObjectContext::get_recovery_read() for both
sync call and async call. just add a new method for the async call
for better readability
Signed-off-by: Kefu Chai <kchai@redhat.com>
Added required files for testing of AssumeRole and GetSessionToken API's and modified s3tests.py to handle the same.
(cherry picked from commit c2c90eaf52)
Signed-off-by: Kalpesh Pandya <kapandya@redhat.com>
Refactored this to simplify the control flow. It became obvious that
* `CephadmService.make_daemon_spec`
* `CephadmService.prepare_create`
* `CephadmService.generate_config`
are basically the same thing. They're all called directly
before the deployment of a daemon. All of them should be
unified. This PR makes this refactorization simpler
By renaming `create` to `prepare_create`, we make `create`
no longer being the entrypoint to call
`create_daemon`. Thus all the functions above
return some data structures.
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
mgr/dashboard: allow getting fresh inventory data from the orchestrator
Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>