New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mgr/dashboard: Pool management #21614

Merged
merged 18 commits into from Oct 9, 2018

Conversation

Projects
None yet
9 participants
@Devp00l
Contributor

Devp00l commented Apr 24, 2018

This PR has a backend change in it, so please before testing the frontend reload the backend. If you are not reloading the backend the tasks will missmatch, this way you will receive Updated 'undefined' or no task at all.

You can create a pool through the form.

You can specify the following:

  • Name - can't be duplicated
  • Type - replicated or erasure
  • Crush rule set - Validates if you can use it
  • Replica size - depends on your selected rule and the ammount of osds
  • Erasure code profile
  • PGs - will be recalculated on form changes (type, replica size,
    erasure profile, crush rule)
  • EC overwrites flag
  • Compression - Algorithm / Min/max blob size / mode / ratio
  • Application metadata - Predefined and custom applications

Signed-off-by: Stephan Müller smueller@suse.com

Erasure code pool creation

ec-pool-creation

Replicated pool creation

replicated-pool-creation

Edit replicated pool

replicated-pool-edit

Pool deletion

pool-delete

@LenzGr LenzGr added this to TODO in bluestore Apr 24, 2018

@LenzGr LenzGr removed this from TODO in bluestore Apr 24, 2018

@LenzGr

This comment has been minimized.

Contributor

LenzGr commented Apr 24, 2018

Just to clarify - this PR only adds pool creation, or does it support deletion and editing as well?

@Devp00l

This comment has been minimized.

Contributor

Devp00l commented Apr 24, 2018

@LenzGr This PR is still WIP, so the deletion and editing part will be added as soon as I'm confident that all options are created as they should. BTW the deletion and editing part is the smallest part. Also there are still files from the erasure code management that will be torn out of this branch soon.

@LenzGr LenzGr added the feature label Apr 24, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch 5 times, most recently from d8c2b5e to d815e2d Apr 25, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch 3 times, most recently from ad6a05f to 41b3398 May 3, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch 2 times, most recently from 6a60a35 to c5772d5 May 14, 2018

@Devp00l Devp00l changed the title from [WIP/DNM] mgr/dashboard: Pool creation form to [WIP/DNM] mgr/dashboard: Pool management May 15, 2018

@Devp00l

This comment has been minimized.

Contributor

Devp00l commented May 15, 2018

All features are implemented and tested through unit tests - Only thing left to do is to change the application selection and to refactore the code (f. e. the custom validations can now be generated by a service). The code also depends on different open PRs (#21783, #21881 and #22014) which have to be resolved before the final branch rebase.

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch 3 times, most recently from ae61731 to 4347457 May 28, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from 4347457 to b2bec70 Jun 5, 2018

@s0nea s0nea added the needs-rebase label Jun 11, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch 2 times, most recently from 846d27a to f536d94 Jun 12, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from f536d94 to 9f7f260 Jun 15, 2018

@s0nea s0nea removed the needs-rebase label Jun 18, 2018

@callithea

This comment has been minimized.

Member

callithea commented Oct 8, 2018

jenkins test dashboard

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from f2edb1e to 17ae2a2 Oct 9, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from 17ae2a2 to bd4d050 Oct 9, 2018

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from bd4d050 to ab5fcc9 Oct 9, 2018

Devp00l added some commits Jun 27, 2018

mgr/dashboard: Erasure code service
Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Erasure code profile interface
Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Add crush rule type definitions
There are two type definitions one for the crush rule itself and one
for the crush step definition which is used inside the crush rule
definition.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Add pool type definition
Adds pool type definition which is used in pool listing.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Amend pool backend tasks
Amends pool tasks in order to get the right results back into the UI
and also to have tasks with the same attributes.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Enable custom badges
Enables custom badges within badges component.

It's possible to use custom validations and custom error messages.

Fixes: https://tracker.ceph.com/issues/36357
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Add badge filtering
It's now possible to filter badges and create badges via a create badges
label.

Fixes: https://tracker.ceph.com/issues/36357
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Fixes user roles
Due to changes in the badges component, user roles had to be amended.

Fixes: https://tracker.ceph.com/issues/36357
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Pool create / edit
You can create/edit pools through the UI if you have the right
permissions.

You can specify the following:
* Name - can't be duplicated
* Type - replicated or erasure
* Crush rule set
  * Validates if you can use it
  * A popover tells which crush steps are used
* Replica size - depends on your selected rule and the amount of OSDs
* Erasure code profile
* PGs - will be recalculated on form changes (type, replica size,
    erasure profile, crush rule) only if not set before
* EC overwrites flag
* Compression - Algorithm / Min/max blob size / mode / ratio
* Application metadata - Predefined and custom applications as badges

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Pool delete
You can delete pools through the UI, this will generate a task that
deletes the pool in the background.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Handle pool permissions
Handles pool action permissions in pool listing.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Use task list service in pool list
Now the pool list uses the task list service to monitor all tasks, in
order to extend each pool item with corresponding tasks if any. If there
is a running task for a pool you will see what action runs on it in the
listing.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Readd pool notifications
As of the merge of cleaner notifications, the notification component was
refactored and move this caused a loss of previously added
notifications.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Unset compression arguments for pools
The dashboard backend can now unset all set compression arguments if the
compression mode is switched to 'unset'. In the case of 'unset' Ceph
itself will only delete the 'compression_mode' argument, not all other
set arguments. The other arguments that should be removed, too, are
added to the update arguments in order to delete all set arguments.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Update PG update test
It is now commented out like it was before,
but I've added a comment what happened during this test with the QA
system. The problem was that even with only a increase of 1 PG the QA
cluster went into a cluster warning state and did not recover in time.
The QA coverage timeout is 2 minutes.

I could not reproduce this behavior with a local cluster, but I've
added a loop to wait until pgp and pg number are equal and the cluster
is in a healthy state again. This can take locally about 5 seconds.
The internal loop has a timeout of 3 minutes.

Fixes: https://tracker.ceph.com/issues/36362
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: Unset any compression setting for pools in UI
The dashboard API now can delete all compression options if the
compression mode is set to 'unset' during edit. Other dismissed options
will be overwritten with the reset value on submit, which will cause
the deletion of the previously set settings.

Fixes: https://tracker.ceph.com/issues/36355
Signed-off-by: Stephan Müller <smueller@suse.com>
mgr/dashboard: New formatter byte unit tests
Signed-off-by: Stephan Müller <smueller@suse.com>

@Devp00l Devp00l force-pushed the Devp00l:pool-creation-form branch from ab5fcc9 to 2c00cbe Oct 9, 2018

@ricardoasmarques ricardoasmarques merged commit 13af4b5 into ceph:master Oct 9, 2018

5 checks passed

Docs: build check OK - docs built
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details
make check (arm64) make check succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment