From: Ricardo Marques Date: Mon, 23 Apr 2018 09:45:23 +0000 (+0100) Subject: mgr/dashboard: Add support for RBD snapshot copy (frontend) X-Git-Tag: v13.1.0~92^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3dd7dab9119372bffc7b0a4dcdcd579bcab5b62c;p=ceph-ci.git mgr/dashboard: Add support for RBD snapshot copy (frontend) Signed-off-by: Ricardo Marques --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts b/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts index 6bb94b7425d..77d5e5e68b5 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts @@ -59,6 +59,11 @@ const routes: Routes = [ component: RbdFormComponent, canActivate: [AuthGuardService] }, + { + path: 'rbd/copy/:pool/:name/:snap', + component: RbdFormComponent, + canActivate: [AuthGuardService] + }, { path: 'perf_counters/:type/:id', component: PerformanceCounterComponent, diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form-copy-request.model.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form-copy-request.model.ts index 9294583415b..4553dc81c1f 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form-copy-request.model.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form-copy-request.model.ts @@ -1,6 +1,7 @@ export class RbdFormCopyRequestModel { dest_pool_name: string; dest_image_name: string; + snapshot_name: string; obj_size: number; features: Array = []; stripe_unit: number; diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.ts index 59aba9a8bc7..d8c0cba9023 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.ts @@ -390,7 +390,11 @@ export class RbdFormComponent implements OnInit { if (this.mode === this.rbdFormMode.cloning) { this.rbdForm.get('parent').setValue(`${response.pool_name}/${response.name}@${snapName}`); } else if (this.mode === this.rbdFormMode.copying) { - this.rbdForm.get('parent').setValue(`${response.pool_name}/${response.name}`); + if (snapName) { + this.rbdForm.get('parent').setValue(`${response.pool_name}/${response.name}@${snapName}`); + } else { + this.rbdForm.get('parent').setValue(`${response.pool_name}/${response.name}`); + } } else if (response.parent) { const parent = response.parent; this.rbdForm.get('parent') @@ -568,6 +572,9 @@ export class RbdFormComponent implements OnInit { copyRequest(): RbdFormCopyRequestModel { const request = new RbdFormCopyRequestModel(); + if (this.snapName) { + request.snapshot_name = this.snapName; + } request.dest_pool_name = this.rbdForm.get('pool').value; request.dest_image_name = this.rbdForm.get('name').value; request.obj_size = this.formatter.toBytes(this.rbdForm.get('obj_size').value); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html index 944f755eed9..603afdb0d32 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html @@ -39,6 +39,12 @@ Clone +
  • + + Copy + +
  • Rollback