Expose image-unregister to cli and unittest it
authorStavros Sachtouris <saxtouri@admin.grnet.gr>
Tue, 14 May 2013 14:12:22 +0000 (17:12 +0300)
committerStavros Sachtouris <saxtouri@admin.grnet.gr>
Tue, 14 May 2013 14:12:22 +0000 (17:12 +0300)
kamaki/cli/commands/image.py
kamaki/clients/image/test.py

index 67c6e89..793d5ee 100644 (file)
@@ -248,6 +248,21 @@ class image_register(_init_image):
 
 
 @command(image_cmds)
 
 
 @command(image_cmds)
+class image_unregister(_init_image):
+    """Unregister an image (does not delete the image file)"""
+
+    @errors.generic.all
+    @errors.plankton.connection
+    @errors.plankton.id
+    def _run(self, image_id):
+        self.client.unregister(image_id)
+
+    def main(self, image_id):
+        super(self.__class__, self)._run()
+        self._run(image_id=image_id)
+
+
+@command(image_cmds)
 class image_members(_init_image):
     """Get image members"""
 
 class image_members(_init_image):
     """Get image members"""
 
index d83d711..c710c33 100644 (file)
@@ -236,6 +236,12 @@ class ImageClient(TestCase):
             call('X-Image-Meta-Name', img0_name),
             call('X-Image-Meta-Location', img0_location)])
 
             call('X-Image-Meta-Name', img0_name),
             call('X-Image-Meta-Location', img0_location)])
 
+    @patch('%s.delete' % image_pkg)
+    def test_unregister(self, delete):
+        img_id = 'an1m4g3'
+        self.client.unregister(img_id)
+        delete.assert_called_once_with('/images/%s' % img_id, success=204)
+
     @patch('%s.put' % image_pkg, return_value=FR())
     def test_set_members(self, put):
         members = ['use3r-1d-0', 'us2r-1d-1', 'us3r-1d-2']
     @patch('%s.put' % image_pkg, return_value=FR())
     def test_set_members(self, put):
         members = ['use3r-1d-0', 'us2r-1d-1', 'us3r-1d-2']