Commit Graph

47 Commits

Author SHA1 Message Date
Tatjana Dehler
1b67691492 mgr/dashboard/qa: add pylint check
Fixes: https://tracker.ceph.com/issues/47757
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2020-10-22 14:12:14 +02:00
Tatjana Dehler
1474259b65 mgr/dashboard/qa: add isort check
Add isort check to the QA test files and
fix issues.

Fixes: https://tracker.ceph.com/issues/47757
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2020-10-22 14:12:14 +02:00
Tatjana Dehler
bc3d1997bd mgr/dashboard/qa: add flake8 linting
Add flake8 linting to the QA test files and
fix issues.

Fixes: https://tracker.ceph.com/issues/47757
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2020-10-22 14:12:14 +02:00
Tiago Melo
ed237aa203 mgr/dashboard: Disable RBD clone action when conditions are not met
Disable clone action when RBD snapshot is not protected
and clone format version is 1.

Fixes: https://tracker.ceph.com/issues/37873

Signed-off-by: Tiago Melo <tmelo@suse.com>
2020-10-08 16:45:00 +00:00
Kiefer Chang
d208d67f9f
mgr/dashboard: fix tasks.mgr.dashboard.test_rbd.RbdTest.test_move_image_to_trash error
The API call is a task and the response status is determined by whether
the call is completed within a pre-defined duration (2 seconds) or not.
We should also allow the status when the call takes longer.

Fixes: https://tracker.ceph.com/issues/46812
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
2020-08-04 10:12:14 +08:00
Ernesto Puerta
119851ec89
mgr/dashboard: work with RBD images v1
Add support for RBD Image Format v1:
- This format lacks ID field, required for dashboard. Instead,
RBD image `block_name_prefix` is used as unique ID (together with pool
id and namespace)
- Additionally, `image_format` is now exposed.
- In the front-end side:
  - Copy action on a v1 image will cause the image to be copied to v2
format.
  - List doesn't allow Move to Trash on v1 images,
  - Details section now shows `image_format` for images,
  - Edit Form disables flags not supported for v1 (`deep-flatten`,
`layering`, `exclusive-lock`).
  - Protect does not work on v1 images or v2 images created from v1
ones.

Fixes: https://tracker.ceph.com/issues/36354
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2020-06-04 16:55:06 +02:00
Kiefer Chang
1c3d6539d9
qa/tasks/mgr/dashboard/test_rbd: wait longer when purging
Fixes: https://tracker.ceph.com/issues/44743
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
Co-authored-by: Kefu Chai <kefu@redhat.com>
Co-authored-by: Volker Theile <vtheile@suse.com>
2020-03-31 19:48:58 +08:00
Kefu Chai
b0bdbc3414 qa/tasks/mgr: partial revert of 'import with full path'
this change partially reverts #34139

using relative import helps with readability and ease the pain to write
down the full parent module name

in #34139, all relative imports were replaced with full path, because we
were using following code to verify if the code is python3 compatible:

```
  mod_spec = importlib.util.spec_from_file_location(mod_name, path)
  mod = importlib.util.module_from_spec(mod_spec)
  mod_spec.loader.exec_module(mod)
```

but this does not work with submodule which can import using relative
import without specifying the name of the package and its parent module.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-03-26 14:37:06 +08:00
Kefu Chai
947a74349d qa: import with full path
to be py3 compatible

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-03-24 18:27:55 +08:00
Tiago Melo
5627919c01 mgr/dashboard: Allow removing RBD with snapshots
Fixes: https://tracker.ceph.com/issues/36404

Signed-off-by: Tiago Melo <tmelo@suse.com>
2020-03-06 13:18:15 -01:00
Thomas Bechtold
0127cd1e88 qa: Enable flake8 tox and fix failures
There were a couple of problems found by flake8 in the qa/
directory (most of them fixed now). Enabling flake8 during the usual
check runs hopefully avoids adding new issues in the future.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2019-12-12 10:21:01 +01:00
Ricardo Marques
688218cdbb mgr/dashboard: Support RBD namespaces
Fixes: https://tracker.ceph.com/issues/25125

Signed-off-by: Ricardo Marques <rimarques@suse.com>
2019-11-11 15:08:07 +00:00
Ricardo Marques
1a9cd92d23 mgr/dashboard: RBD tests must use pools with power-of-two pg_num
Fixes: https://tracker.ceph.com/issues/42709

Signed-off-by: Ricardo Marques <rimarques@suse.com>
2019-11-08 15:43:58 +00:00
Ricardo Dias
cf31e24066
mgr/dashboard: qa: fix RBD test when matching error strings
This commit fixes a problem caused by changes to the error
descriptions in the RBD python bindings introduced in:
a66b06cc76

Signed-off-by: Ricardo Dias <rdias@suse.com>
2019-07-24 14:24:18 +01:00
Kiefer Chang
d654e8c620
mgr/dashboard: fix backend error when updating RBD interlocked features
Now object-map and fast-diff features are interlocked. Allow
enabling/disabling these two features together without raising an already
enabled/disabled error.

Fixes: http://tracker.ceph.com/issues/39933
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
2019-05-16 17:43:29 +08:00
Tatjana Dehler
8785242de2 mgr/dashboard/qa: Fix a few linting issues in dashboard backend tests
Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2019-04-29 15:28:45 +02:00
Patrick Nawracay
cfbefbf169 mgr/dashboard: Add support for managing RBD QoS
Fixes: http://tracker.ceph.com/issues/36191

Signed-off-by: Patrick Nawracay <pnawracay@suse.com>
2019-02-19 11:08:59 +01:00
Tiago Melo
0f6e8e5f3d mgr/dashboard: Fix test_remove_not_expired_trash qa test
Fixes: http://tracker.ceph.com/issues/37354

Signed-off-by: Tiago Melo <tmelo@suse.com>
2018-11-22 11:39:24 +00:00
Tiago Melo
6bb951b1bf mgr/dashboard: Add RBD Trash endpoints
Fixes: http://tracker.ceph.com/issues/24272

Signed-off-by: Tiago Melo <tmelo@suse.com>
2018-09-25 14:02:58 +01:00
Sebastian Wagner
70aa650014 Fixed qa tests:
* `s/_post/_task_post/g' for pools.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2018-07-24 16:20:04 +02:00
Tiago Melo
f21d0da5a3 mgr/dashboard: Add support for URI encode
Created a decorator and pipe to help encode special URI components in the
frontend.

Modified the backend request handler to decode all the string args.

fixes: http://tracker.ceph.com/issues/24621

Signed-off-by: Tiago Melo <tmelo@suse.com>
2018-06-26 14:35:15 +01:00
Ricardo Dias
01a1a1ff84
qa/tasks/mgr/dashboard: Adapted tests to work with new authentication system
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-06-26 12:28:54 +01:00
Sebastian Wagner
3a34bae0fe mgr/dashboard: Applied Exception handling to RBDs
* DashboardTestCase: Removed waiter-thread

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2018-05-08 16:46:47 +02:00
Sebastian Wagner
a49f39f60e mgr/dashboard: Change to Status Code 400 by default.
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2018-05-08 16:39:51 +02:00
Sebastian Wagner
c08999a59c mgr/dashboard: Improved Exception handling in Tasks
* Set default status code to 400
* Added tests
* Fixed globbing in `test_task.py`

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2018-05-08 16:36:44 +02:00
Ricardo Marques
eeb87d3e42 mgr/dashboard: Add RBD default features REST API endpoint
Signed-off-by: Ricardo Marques <rimarques@suse.com>
2018-04-24 16:50:37 +01:00
Ricardo Marques
838c9ce9e3 mgr/dashboard: RBD flatten
Signed-off-by: Ricardo Marques <rimarques@suse.com>
2018-04-24 16:50:37 +01:00
Ricardo Dias
fb41b943e0
qa/tasks/mgr/dashboard: rbd: use JSON schema validator
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:50 +01:00
Ricardo Dias
d575653738
mgr/dashboard: rbd: changed REST API prefix to /block/image
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:50 +01:00
Ricardo Dias
bbe12b0b8a
qa/tasks/mgr/dashboard: rbd: image copy test
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:50 +01:00
Ricardo Dias
67f3ac643a
qa/tasks/mgr/dashboard: rbd: snapshot clone test
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:49 +01:00
Ricardo Dias
3e0e883e4d
qa/tasks/mgr/dashboard: rbd: snapshot rollback test
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:49 +01:00
Ricardo Dias
386a7b53f2
mgr/dashboard: taskmanager: support exception handler
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:49 +01:00
Ricardo Dias
e11ae2355e
mgr/dashboard: rbd: major refactoring for using the Task decorator
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:49 +01:00
Ricardo Dias
9f027edfc9
qa/tasks/mgr/dashboard: rbd: snapshot edit tests
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:48 +01:00
Ricardo Dias
266ce4c8ee
qa/tasks/mgr/dashboard: rbd: use dashboard pool API for creating pools
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:48 +01:00
Ricardo Dias
1e854da1cc
qa/tasks/mgr/dashboard: rbd: image edit tests
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:48 +01:00
Ricardo Dias
3013d7ac8a
qa/tasks/mgr/dashboard: rbd: snapshot create/delete tests
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:47 +01:00
Ricardo Dias
8264e93458
qa/tasks/mgr/dashboard: rbd: image deletion test
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:47 +01:00
Ricardo Dias
fa7cac8158
mgr/dashboard: rbd: image disk usage implementation
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:47 +01:00
Ricardo Dias
3ab7612d97
qa/tasks/mgr/dashboard: rbd: asynchronous image create test
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:46 +01:00
Ricardo Dias
77c676ca6f
qa/tasks/mgr/dashboard: rbd: new image list format
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-04-13 15:58:46 +01:00
zouaiguo
4840e899f1 [mgr/dashboard] add image id to rbd info instead of block_name_prefix
when create images use data_pool parameter, such as:
rbd create -p pool1 -s 1G --data-pool pool2  image1

then get image info from mgr use request http://192.7.7.36:7000/rbd_pool_data/pool1
we got the response:
[{"parent_name": "", "parent_pool": 18446744073709551615, "name": "image1", "num_objs": 256, "block_name_prefix": "rbd_data.14.f561643c986", "obj_size": 4194304, "features": 189, "features_name": "fast-diff, layering, exclusive-lock, deep-flatten, object-map, data-pool", "order": 22, "size": 1073741824}]

notice:
since block_name_prefix is deprecated,
from block_name_prefix we can not get image id(the real id is ''f561643c9869')
we need add image id to rbd info instead block_name_prefix

Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rados
>>> import rbd
>>> RADOS_NAME = 'client.admin'
>>> cluster_name="ceph"
>>> cluster_handle = rados.Rados(name=RADOS_NAME, clustername=cluster_name, conffile='')
>>> cluster_handle.connect()
>>> ioctx = cluster_handle.open_ioctx("pool1")
>>> image_inst = rbd.Image(ioctx, "image1")
>>> image_inst.stat()
{'parent_name': '', 'parent_pool': 18446744073709551615L, 'num_objs': 256L, 'block_name_prefix': u'rbd_data.14.f561643c986', 'obj_size': 4194304L, 'order': 22, 'size': 1073741824L}
>>> image_inst.id()
u'f561643c9869'

after fix:

[root@tfg36 site-packages]# curl http://192.7.7.36:7000/rbd_pool_data/pool1
[{"parent_name": "", "parent_pool": 18446744073709551615, "name": "image1", "num_objs": 256, "block_name_prefix": "rbd_data.14.f561643c986", "obj_size": 4194304, "features": 189, "id": "f561643c9869", "features_name": "fast-diff, layering, exclusive-lock, deep-flatten, object-map, data-pool", "order": 22, "size": 1073741824}]

Signed-off-by: zouaiguo <zou.aiguo@zte.com.cn>
2018-03-28 10:14:42 +08:00
Lenz Grimmer
d5e54fda5c
Merge pull request #21024 from s0nea/wip-dashboard-return-features-list
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>
2018-03-27 11:45:54 +02:00
Tatjana Dehler
33e15ecd39 mgr/dashboard: convert RBD features to a list of strings
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>
2018-03-26 09:41:56 +02:00
Tatjana Dehler
075102468b mgr/dashboard: skip 'test_create_rbd_in_data_pool' without bluestore
Skip the test case 'test_create_rbd_in_data_pool' only if the cluster
does not support bluestore, otherwise run the test. The Ceph mgr
provides the information if the cluster supports bluestore or not, so
the test will be skipped depending on the current cluster.

Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2018-03-23 11:11:27 +01:00
Ricardo Dias
aa205a6731
mgr/dashboard: renamed dashboard_v2 to dashboard
Signed-off-by: Ricardo Dias <rdias@suse.com>
2018-03-16 07:23:08 +00:00