Skip to content

Commit c3034e3

Browse files
authored
RND-623 Add --recursive for dep & depgroups delete (#1481)
1 parent ce2a59a commit c3034e3

3 files changed

Lines changed: 35 additions & 5 deletions

File tree

cloudify_cli/cli/cfy.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1988,6 +1988,12 @@ def agent_filters(self, f):
19881988
is_flag=True,
19891989
help=helptexts.AGENT_ALL_STATES,
19901990
)
1991+
self.recursive_delete = click.option(
1992+
'--recursive',
1993+
default=False,
1994+
is_flag=True,
1995+
help=helptexts.RECURSIVE_DELETE,
1996+
)
19911997

19921998
# we add separate --node-instance-id, --node-id and --deployment-id
19931999
# arguments, but only expose a agents_filter = {'node_id': ..} dict

cloudify_cli/cli/helptexts.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,3 +623,5 @@
623623
Secrets Provider's options in stringify JSON format
624624
"""
625625
EVALUATE_FUNCTIONS = "Evaluate functions in returned nodes and node instances"
626+
RECURSIVE_DELETE = 'Recursively delete all service deployments contained in ' \
627+
'this deployment'

cloudify_cli/commands/deployments.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -698,19 +698,32 @@ def manager_create(
698698
@cfy.options.common_options
699699
@cfy.options.with_logs
700700
@cfy.options.tenant_name(required=False, resource_name_for_help='deployment')
701+
@cfy.options.recursive_delete
701702
@cfy.assert_manager_active()
702703
@cfy.pass_client()
703704
@cfy.pass_logger
704-
def manager_delete(deployment_id, force, with_logs, logger, client,
705-
tenant_name):
705+
def manager_delete(
706+
deployment_id,
707+
force,
708+
with_logs,
709+
recursive,
710+
logger,
711+
client,
712+
tenant_name,
713+
):
706714
"""Delete a deployment from the manager
707715
708716
`DEPLOYMENT_ID` is the id of the deployment to delete.
709717
"""
710718

711719
utils.explicit_tenant_name_message(tenant_name, logger)
712720
logger.info('Trying to delete deployment %s...', deployment_id)
713-
client.deployments.delete(deployment_id, force, with_logs=with_logs)
721+
client.deployments.delete(
722+
deployment_id,
723+
force,
724+
with_logs=with_logs,
725+
recursive=recursive,
726+
)
714727
try:
715728
execution = get_deployment_environment_execution(
716729
client, deployment_id, DELETE_DEP)
@@ -1192,11 +1205,19 @@ def groups_create(deployment_group_name, inputs, default_blueprint,
11921205
@click.argument('deployment-group-name')
11931206
@cfy.options.delete_deployments
11941207
@cfy.options.with_logs
1208+
@cfy.options.recursive_delete
11951209
@cfy.options.force(help=helptexts.FORCE_DELETE_DEPLOYMENT)
11961210
@cfy.pass_client()
11971211
@cfy.pass_logger
1198-
def groups_delete(deployment_group_name, delete_deployments, force, with_logs,
1199-
client, logger):
1212+
def groups_delete(
1213+
deployment_group_name,
1214+
delete_deployments,
1215+
force,
1216+
with_logs,
1217+
recursive,
1218+
client,
1219+
logger,
1220+
):
12001221
"""Delete a deployment group
12011222
12021223
This deletes a deployment group, which by default only removes the
@@ -1208,6 +1229,7 @@ def groups_delete(deployment_group_name, delete_deployments, force, with_logs,
12081229
delete_deployments=delete_deployments,
12091230
force=force,
12101231
with_logs=with_logs,
1232+
recursive=recursive,
12111233
)
12121234
logger.info('Group %s deleted', deployment_group_name)
12131235

0 commit comments

Comments
 (0)