Merge "Add encryption-type-delete to cinderclient"

This commit is contained in:
Jenkins
2014-01-24 11:39:12 +00:00
committed by Gerrit Code Review
10 changed files with 58 additions and 6 deletions

View File

@@ -475,6 +475,9 @@ class FakeHTTPClient(base_client.HTTPClient):
def put_types_1_encryption_1(self, body, **kw):
return (200, {}, {})
def delete_types_1_encryption_provider(self, **kw):
return (202, {}, None)
#
# Set/Unset metadata
#

View File

@@ -292,8 +292,14 @@ class ShellTest(utils.TestCase):
def test_encryption_type_delete(self):
"""
Test encryption-type-delete shell command.
Verify one GET/one DELETE requests are made per command invocation:
- one GET request to retrieve the relevant volume type information
- one DELETE request to delete the encryption type information
"""
self.skipTest("Not implemented")
self.run_command('encryption-type-delete 1')
self.assert_called('DELETE', '/types/1/encryption/provider')
self.assert_called_anytime('GET', '/types/1')
def test_migrate_volume(self):
self.run_command('migrate 1234 fakehost --force-host-copy=True')

View File

@@ -91,5 +91,10 @@ class VolumeEncryptionTypesTest(utils.TestCase):
def test_delete(self):
"""
Unit test for VolumeEncryptionTypesManager.delete
Verify that one DELETE request is made for encryption type deletion
Verify that encryption type deletion returns None
"""
self.skipTest("Not implemented")
result = cs.volume_encryption_types.delete(1)
cs.assert_called('DELETE', '/types/1/encryption/provider')
self.assertIsNone(result, "delete result must be None")

View File

@@ -484,6 +484,9 @@ class FakeHTTPClient(base_client.HTTPClient):
def put_types_1_encryption_1(self, body, **kw):
return (200, {}, {})
def delete_types_1_encryption_provider(self, **kw):
return (202, {}, None)
#
# Set/Unset metadata
#

View File

@@ -270,8 +270,14 @@ class ShellTest(utils.TestCase):
def test_encryption_type_delete(self):
"""
Test encryption-type-delete shell command.
Verify one GET/one DELETE requests are made per command invocation:
- one GET request to retrieve the relevant volume type information
- one DELETE request to delete the encryption type information
"""
self.skipTest("Not implemented")
self.run_command('encryption-type-delete 1')
self.assert_called('DELETE', '/types/1/encryption/provider')
self.assert_called_anytime('GET', '/types/1')
def test_migrate_volume(self):
self.run_command('migrate 1234 fakehost --force-host-copy=True')

View File

@@ -91,5 +91,10 @@ class VolumeEncryptionTypesTest(utils.TestCase):
def test_delete(self):
"""
Unit test for VolumeEncryptionTypesManager.delete
Verify that one DELETE request is made for encryption type deletion
Verify that encryption type deletion returns None
"""
self.skipTest("Not implemented")
result = cs.volume_encryption_types.delete(1)
cs.assert_called('DELETE', '/types/1/encryption/provider')
self.assertIsNone(result, "delete result must be None")

View File

@@ -1147,6 +1147,17 @@ def do_encryption_type_create(cs, args):
_print_volume_encryption_type_list([result])
@utils.arg('volume_type',
metavar='<volume_type>',
type=str,
help="Name or ID of the volume type")
@utils.service_type('volume')
def do_encryption_type_delete(cs, args):
"""Delete the encryption type for a volume type (Admin Only)."""
volume_type = _find_volume_type(cs, args.volume_type)
cs.volume_encryption_types.delete(volume_type)
@utils.arg('volume', metavar='<volume>', help='ID of the volume to migrate')
@utils.arg('host', metavar='<host>', help='Destination host')
@utils.arg('--force-host-copy', metavar='<True|False>',

View File

@@ -93,4 +93,5 @@ class VolumeEncryptionTypeManager(base.ManagerWithFind):
:param volume_type: the volume type whose encryption type information
must be deleted
"""
raise NotImplementedError()
return self._delete("/types/%s/encryption/provider" %
base.getid(volume_type))

View File

@@ -1241,6 +1241,17 @@ def do_encryption_type_create(cs, args):
_print_volume_encryption_type_list([result])
@utils.arg('volume_type',
metavar='<volume_type>',
type=str,
help="Name or ID of the volume type")
@utils.service_type('volumev2')
def do_encryption_type_delete(cs, args):
"""Delete the encryption type for a volume type (Admin Only)."""
volume_type = _find_volume_type(cs, args.volume_type)
cs.volume_encryption_types.delete(volume_type)
def _print_qos_specs(qos_specs):
utils.print_dict(qos_specs._info)

View File

@@ -93,4 +93,5 @@ class VolumeEncryptionTypeManager(base.ManagerWithFind):
:param volume_type: the volume type whose encryption type information
must be deleted
"""
raise NotImplementedError()
return self._delete("/types/%s/encryption/provider" %
base.getid(volume_type))