Skip to content

Commit 6552012

Browse files
author
Harizo Rajaona
committed
Clean deletion process for APIDeployerDeployment
1 parent 83d26e5 commit 6552012

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

dataikuapi/dss/apideployer.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,29 @@ def start_update(self):
334334

335335
return DSSFuture(self.client, future_response.get('jobId', None), future_response)
336336

337-
def delete(self):
337+
def delete(self, force=False):
338338
"""
339-
Deletes this deployment
339+
Deletes this deployment.
340+
341+
:param boolean force: If True, automatically disables deployment before deletion
340342
341343
You may only delete a deployment if it is disabled and has been updated after disabling it.
342344
"""
343-
return self.client._perform_empty(
344-
"DELETE", "/api-deployer/deployments/%s" % (self.deployment_id))
345345

346+
# Check is the deployment is disabled
347+
is_enabled = self.get_status().light_status.get("deploymentBasicInfo").get("enabled")
348+
if (is_enabled and force) or (not is_enabled):
349+
if force:
350+
settings = self.get_settings()
351+
settings.set_enabled(enabled=False)
352+
settings.save()
353+
return self.client._perform_empty(
354+
"DELETE", "/api-deployer/deployments/%s" % (self.deployment_id))
355+
else:
356+
raise Exception("Deployment {} deletion failed: deployment must be disabled first.".format(self.deployment_id))
357+
358+
359+
346360

347361
class DSSAPIDeployerDeploymentSettings(object):
348362
"""

0 commit comments

Comments
 (0)