The original implement does not appear to be a problem for two different
objects which are usually of different oids/names.
However, for a specific head object and its posterity snap objects, this
is not very effective since we are going to compare oids/names twice
(because they are definitely equivalent).
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
mgr/dashboard: Convert the RBD feature names to a list of strings
Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: Ricardo Marques <rimarques@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: skip data pool testcase for none-bluestore clusters
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: Ricardo Dias <rdias@suse.com>
VERSION_ID is optional in /etc/os-release, we removed the error
log in #17787, and the test also needs to be fixed.
Signed-off-by: Shengjing Zhu <zhsj@umcloud.com>
qa/tasks/swift: add support for the "force-branch" configurable.
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Also provides a simple HTML form to POST
data to a `RESTController`'s `create()` method.
Also added ENABLE_BROWSABLE_API setting to the dashboard
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
The current `handle_pyerror` function implementation relies in the
`traceback.format_exception_only` python function to format the
exception object. The problem is that this python function might also
raise an exception. This commit fixes it by enclosing that python
function call in try...catch block.
Fixes: http://tracker.ceph.com/issues/23406
Signed-off-by: Ricardo Dias <rdias@suse.com>
fix exclusive auto-mode lock refuse to release.
when rewatch, owner_id is reset.
at the same time, there is a chance to produce the same cookie, which should be different.
code now skips reacquire lock when the cookie is the same, resulting in unsetting owner_id.
when other clients request lock, client whose owner_id is null is considered invalid and
refuse to release lock.
but unluckily, watcher is always alive, so the client requested lock can't get lock.
Signed-off-by: Song Shun <song.shun3@zte.com.cn>
stop.sh: use --no-mon-config when trying to unmap rbd devices
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
We already send the max, min and avg fill ratio of OSDs but
knowing the OSD with the highest amount of PGs is also useful.
This allows admins to create a trigger should it happen that there
is a OSD with too many PGs.
This could happen if a lot of OSDs fail and PGs start to move filling
up one or more OSDs with many PGs.
As PGs eat CPU and Memory people usually like to watch out for these
situations.
Signed-off-by: Wido den Hollander <wido@42on.com>
Until now the API returns the features provided by an RBD as one comma
separated string. It's more usable for the frontend to receive a list
of strings instead.
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
build/ops: setup-virtualenv.sh: do not hardcode python binary
Reviewed-by: John Spray <john.spray@redhat.com>
Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
This component is to be used inside a form.
It will render a submit button with the given label.
The button will disabled itself and show a loading icon when the user clicks it,
usually initiating a request to the server, and it will stay in that state
until the request is finished.
To indicate that the request failed, returning the button to the enable state,
you need to insert an error in the form with the 'cdSubmitButton' key.
It will also check if the form is valid, when clicking the button, and will
focus on the first invalid input.
Signed-off-by: Tiago Melo <tmelo@suse.com>
* `CephService.send_command` is much easier to use.
* Refactored `CephFSClients.get` and `Dashboard.load_bufer`
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
vstart: set osd_pool_default_erasure_code_profile in initial ceph.conf
Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>