]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/dashboard: rbd: image delete implementation
authorRicardo Dias <rdias@suse.com>
Thu, 29 Mar 2018 09:02:03 +0000 (10:02 +0100)
committerRicardo Dias <rdias@suse.com>
Fri, 13 Apr 2018 14:58:47 +0000 (15:58 +0100)
Signed-off-by: Ricardo Dias <rdias@suse.com>
src/pybind/mgr/dashboard/controllers/rbd.py

index f05cda281f53715ab93536e8c3a00fa906fdad6e..ca33af6d6559388980a62ca163a39715e023ca67 100644 (file)
@@ -230,3 +230,21 @@ class Rbd(RESTController):
                                 stripe_unit, stripe_count, data_pool])
         status, value = task.wait(1.0)
         return {'status': status, 'value': value}
+
+    @classmethod
+    def _remove_image(cls, pool_name, image_name):
+        rbd_inst = rbd.RBD()
+        ioctx = mgr.rados.open_ioctx(pool_name)
+        try:
+            rbd_inst.remove(ioctx, image_name)
+        except rbd.OSError as e:
+            return {'success': False, 'detail': str(e), 'errno': e.errno}
+        return {'success': True}
+
+    def delete(self, pool_name, image_name):
+        task = TaskManager.run('rbd/delete',
+                               {'pool_name': pool_name, 'image_name': image_name},
+                               self._remove_image, [pool_name, image_name])
+        status, value = task.wait(2.0)
+        cherrypy.response.status = 200
+        return {'status': status, 'value': value}