Merge "Add auto-approve option to project cleanup"
This commit is contained in:
commit
65b667af20
@ -48,10 +48,16 @@ class ProjectCleanup(command.Command):
|
|||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(ProjectCleanup, self).get_parser(prog_name)
|
parser = super(ProjectCleanup, self).get_parser(prog_name)
|
||||||
parser.add_argument(
|
action_group = parser.add_mutually_exclusive_group()
|
||||||
|
action_group.add_argument(
|
||||||
'--dry-run',
|
'--dry-run',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("List a project's resources")
|
help=_("List a project's resources but do not delete them")
|
||||||
|
)
|
||||||
|
action_group.add_argument(
|
||||||
|
'--auto-approve',
|
||||||
|
action='store_true',
|
||||||
|
help=_("Delete resources without asking for confirmation")
|
||||||
)
|
)
|
||||||
project_group = parser.add_mutually_exclusive_group(required=True)
|
project_group = parser.add_mutually_exclusive_group(required=True)
|
||||||
project_group.add_argument(
|
project_group.add_argument(
|
||||||
@ -67,12 +73,12 @@ class ProjectCleanup(command.Command):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--created-before',
|
'--created-before',
|
||||||
metavar='<YYYY-MM-DDTHH24:MI:SS>',
|
metavar='<YYYY-MM-DDTHH24:MI:SS>',
|
||||||
help=_('Drop resources created before the given time')
|
help=_('Only delete resources created before the given time')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--updated-before',
|
'--updated-before',
|
||||||
metavar='<YYYY-MM-DDTHH24:MI:SS>',
|
metavar='<YYYY-MM-DDTHH24:MI:SS>',
|
||||||
help=_('Drop resources updated before the given time')
|
help=_('Only delete resources updated before the given time')
|
||||||
)
|
)
|
||||||
identity_common.add_project_domain_option_to_parser(parser)
|
identity_common.add_project_domain_option_to_parser(parser)
|
||||||
return parser
|
return parser
|
||||||
@ -127,12 +133,13 @@ class ProjectCleanup(command.Command):
|
|||||||
if parsed_args.dry_run:
|
if parsed_args.dry_run:
|
||||||
return
|
return
|
||||||
|
|
||||||
confirm = ask_user_yesno(
|
if not parsed_args.auto_approve:
|
||||||
_("These resources will be deleted. Are you sure"))
|
if not ask_user_yesno(
|
||||||
|
_("These resources will be deleted. Are you sure")):
|
||||||
|
return
|
||||||
|
|
||||||
if confirm:
|
self.log.warning(_('Deleting resources'))
|
||||||
self.log.warning(_('Deleting resources'))
|
|
||||||
|
|
||||||
project_connect.project_cleanup(dry_run=False,
|
project_connect.project_cleanup(dry_run=False,
|
||||||
status_queue=status_queue,
|
status_queue=status_queue,
|
||||||
filters=filters)
|
filters=filters)
|
||||||
|
@ -85,6 +85,32 @@ class TestProjectCleanup(TestProjectCleanupBase):
|
|||||||
|
|
||||||
self.assertIsNone(result)
|
self.assertIsNone(result)
|
||||||
|
|
||||||
|
def test_project_cleanup_with_auto_approve(self):
|
||||||
|
arglist = [
|
||||||
|
'--project', self.project.id,
|
||||||
|
'--auto-approve',
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('dry_run', False),
|
||||||
|
('auth_project', False),
|
||||||
|
('project', self.project.id),
|
||||||
|
('auto_approve', True),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
result = None
|
||||||
|
|
||||||
|
result = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.sdk_connect_as_project_mock.assert_called_with(
|
||||||
|
self.project)
|
||||||
|
calls = [
|
||||||
|
mock.call(dry_run=True, status_queue=mock.ANY, filters={}),
|
||||||
|
mock.call(dry_run=False, status_queue=mock.ANY, filters={})
|
||||||
|
]
|
||||||
|
self.project_cleanup_mock.assert_has_calls(calls)
|
||||||
|
|
||||||
|
self.assertIsNone(result)
|
||||||
|
|
||||||
def test_project_cleanup_with_project(self):
|
def test_project_cleanup_with_project(self):
|
||||||
arglist = [
|
arglist = [
|
||||||
'--project', self.project.id,
|
'--project', self.project.id,
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
An ``--auto-approve`` option has been added to the
|
||||||
|
``project cleanup`` command. This allows the interactive
|
||||||
|
confirmation of resource deletion to be skipped.
|
Loading…
x
Reference in New Issue
Block a user