Add task delete command to fuel2
In order to be able to deprecate the old task command it's necessary to implement task deletion in fuel2. Change-Id: I958ab15f0e91f18af82ad3054c2a1e29d1698526 Partial-bug: #1592452
This commit is contained in:
@@ -143,6 +143,28 @@ class TaskShow(TaskMixIn, base.BaseShowCommand):
|
||||
'message')
|
||||
|
||||
|
||||
class TaskDelete(TaskMixIn, base.BaseDeleteCommand):
|
||||
"""Delete task with given id."""
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(TaskDelete, self).get_parser(prog_name)
|
||||
|
||||
parser.add_argument('-f',
|
||||
'--force',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Force deletion of a task without '
|
||||
'considering its state.')
|
||||
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.client.delete_by_id(parsed_args.id, parsed_args.force)
|
||||
|
||||
msg = 'Task with id {ent_id} was deleted\n'
|
||||
self.app.stdout.write(msg.format(ent_id=parsed_args.id))
|
||||
|
||||
|
||||
class TaskHistoryShow(TaskMixIn, base.BaseListCommand):
|
||||
"""Show deployment history about task with given ID."""
|
||||
|
||||
|
||||
@@ -49,6 +49,24 @@ class TestTaskCommand(test_engine.BaseCLITest):
|
||||
self.m_get_client.assert_called_once_with('task', mock.ANY)
|
||||
self.m_client.get_by_id.assert_called_once_with(task_id)
|
||||
|
||||
def test_task_delete(self):
|
||||
task_id = 42
|
||||
args = 'task delete {task_id}'.format(task_id=task_id)
|
||||
|
||||
self.exec_command(args)
|
||||
|
||||
self.m_get_client.assert_called_once_with('task', mock.ANY)
|
||||
self.m_client.delete_by_id.assert_called_once_with(task_id, False)
|
||||
|
||||
def test_task_delete_force(self):
|
||||
task_id = 42
|
||||
args = 'task delete --force {task_id}'.format(task_id=task_id)
|
||||
|
||||
self.exec_command(args)
|
||||
|
||||
self.m_get_client.assert_called_once_with('task', mock.ANY)
|
||||
self.m_client.delete_by_id.assert_called_once_with(task_id, True)
|
||||
|
||||
def test_task_history_show(self):
|
||||
task_id = 42
|
||||
args = 'task history show {task_id} '.format(task_id=task_id)
|
||||
|
||||
@@ -50,3 +50,23 @@ class TestTaskFacade(test_api.BaseLibTest):
|
||||
self.client.get_by_id(task_id)
|
||||
|
||||
self.assertTrue(matcher.called)
|
||||
|
||||
def test_task_delete(self):
|
||||
task_id = 42
|
||||
expected_uri = self.get_object_uri(self.res_uri, task_id)
|
||||
matcher = self.m_request.delete(expected_uri, json=self.fake_tasks)
|
||||
|
||||
self.client.delete_by_id(task_id, force=False)
|
||||
|
||||
self.assertTrue(matcher.called)
|
||||
self.assertEqual(['0'], matcher.last_request.qs.get('force'))
|
||||
|
||||
def test_task_delete_force(self):
|
||||
task_id = 42
|
||||
expected_uri = self.get_object_uri(self.res_uri, task_id)
|
||||
matcher = self.m_request.delete(expected_uri, json=self.fake_tasks)
|
||||
|
||||
self.client.delete_by_id(task_id, force=True)
|
||||
|
||||
self.assertTrue(matcher.called)
|
||||
self.assertEqual(['1'], matcher.last_request.qs.get('force'))
|
||||
|
||||
@@ -20,6 +20,18 @@ class TaskClient(base_v1.BaseV1Client):
|
||||
|
||||
_entity_wrapper = objects.Task
|
||||
|
||||
def delete_by_id(self, task_id, force=False):
|
||||
"""Delete a given task by its id
|
||||
|
||||
:param task_id: Id of a task to delete.
|
||||
:type task_id: int
|
||||
:param force: Force deletion of a task without
|
||||
concidering its state
|
||||
|
||||
"""
|
||||
env_obj = self._entity_wrapper(obj_id=task_id)
|
||||
env_obj.delete(force=force)
|
||||
|
||||
|
||||
def get_client(connection):
|
||||
return TaskClient(connection)
|
||||
|
||||
25
setup.cfg
25
setup.cfg
@@ -52,6 +52,7 @@ fuelclient =
|
||||
network-template_delete=fuelclient.commands.network_template:NetworkTemplateDelete
|
||||
network-template_download=fuelclient.commands.network_template:NetworkTemplateDownload
|
||||
network-template_upload=fuelclient.commands.network_template:NetworkTemplateUpload
|
||||
node_ansible-inventory=fuelclient.commands.node:NodeAnsibleInventory
|
||||
node_attributes-download=fuelclient.commands.node:NodeAttributesDownload
|
||||
node_attributes-upload=fuelclient.commands.node:NodeAttributesUpload
|
||||
node_create-vms-conf=fuelclient.commands.node:NodeCreateVMsConf
|
||||
@@ -62,23 +63,23 @@ fuelclient =
|
||||
node_list=fuelclient.commands.node:NodeList
|
||||
node_show=fuelclient.commands.node:NodeShow
|
||||
node_update=fuelclient.commands.node:NodeUpdate
|
||||
node_ansible-inventory=fuelclient.commands.node:NodeAnsibleInventory
|
||||
plugins_list=fuelclient.commands.plugins:PluginsList
|
||||
plugins_sync=fuelclient.commands.plugins:PluginsSync
|
||||
release_list=fuelclient.commands.release:ReleaseList
|
||||
release_repos_list=fuelclient.commands.release:ReleaseReposList
|
||||
release_repos_update=fuelclient.commands.release:ReleaseReposUpdate
|
||||
task_list=fuelclient.commands.task:TaskList
|
||||
task_show=fuelclient.commands.task:TaskShow
|
||||
task_history_show=fuelclient.commands.task:TaskHistoryShow
|
||||
task_settings_download=fuelclient.commands.task:TaskClusterSettingsDownload
|
||||
task_deployment-info_download=fuelclient.commands.task:TaskDeploymentInfoDownload
|
||||
task_network-configuration_download=fuelclient.commands.task:TaskNetworkConfigurationDownload
|
||||
openstack-config_delete=fuelclient.commands.openstack_config:OpenstackConfigDelete
|
||||
openstack-config_download=fuelclient.commands.openstack_config:OpenstackConfigDownload
|
||||
openstack-config_execute=fuelclient.commands.openstack_config:OpenstackConfigExecute
|
||||
openstack-config_list=fuelclient.commands.openstack_config:OpenstackConfigList
|
||||
openstack-config_upload=fuelclient.commands.openstack_config:OpenstackConfigUpload
|
||||
plugins_list=fuelclient.commands.plugins:PluginsList
|
||||
plugins_sync=fuelclient.commands.plugins:PluginsSync
|
||||
release_list=fuelclient.commands.release:ReleaseList
|
||||
release_repos_list=fuelclient.commands.release:ReleaseReposList
|
||||
release_repos_update=fuelclient.commands.release:ReleaseReposUpdate
|
||||
task_delete=fuelclient.commands.task:TaskDelete
|
||||
task_deployment-info_download=fuelclient.commands.task:TaskDeploymentInfoDownload
|
||||
task_history_show=fuelclient.commands.task:TaskHistoryShow
|
||||
task_list=fuelclient.commands.task:TaskList
|
||||
task_network-configuration_download=fuelclient.commands.task:TaskNetworkConfigurationDownload
|
||||
task_settings_download=fuelclient.commands.task:TaskClusterSettingsDownload
|
||||
task_show=fuelclient.commands.task:TaskShow
|
||||
vip_create=fuelclient.commands.vip:VipCreate
|
||||
vip_download=fuelclient.commands.vip:VipDownload
|
||||
vip_upload=fuelclient.commands.vip:VipUpload
|
||||
|
||||
Reference in New Issue
Block a user