aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2017-08-21 15:43:55 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2017-08-21 15:43:55 +0800
commitf6f438a1e6e2ed4215941672d2709ffcbd3c0b21 (patch)
treeb991656812d7b06ed5961b6702af026aa47ab6a3
parent7af55a72ea589618a216faa541162d57a4fb8cae (diff)
Add undeploy workflow logic
Change-Id: I53315fcd840ef443c476998667b974f58ec935bc Issue-Id: VFC-111 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/pub/msapi/activiti.py4
-rw-r--r--lcm/workflows/tests.py7
-rw-r--r--lcm/workflows/views.py5
3 files changed, 12 insertions, 4 deletions
diff --git a/lcm/pub/msapi/activiti.py b/lcm/pub/msapi/activiti.py
index b5ff96f5..b3a12205 100644
--- a/lcm/pub/msapi/activiti.py
+++ b/lcm/pub/msapi/activiti.py
@@ -51,7 +51,7 @@ Output:
"""
def undeploy_workflow(deploy_id):
uri = "api/workflow/v1/package/{deployId}".format(deployId=deploy_id)
- ret = req_by_msb(uri, "DELETE")
+ ret = restcall.req_by_msb(uri, "DELETE")
if ret[0] != 0:
raise NSLCMException("Status code is %s, detail is %s.", ret[2], ret[1])
return json.JSONDecoder().decode(ret[1])
@@ -72,7 +72,7 @@ Output:
"""
def exec_workflow(content):
content_str = json.JSONEncoder().encode(content)
- ret = req_by_msb("api/workflow/v1/process/instance", "POST", content_str)
+ ret = restcall.req_by_msb("api/workflow/v1/process/instance", "POST", content_str)
if ret[0] != 0:
raise NSLCMException("Status code is %s, detail is %s.", ret[2], ret[1])
return json.JSONDecoder().decode(ret[1])
diff --git a/lcm/workflows/tests.py b/lcm/workflows/tests.py
index 0562fb78..bba2d7ac 100644
--- a/lcm/workflows/tests.py
+++ b/lcm/workflows/tests.py
@@ -44,7 +44,12 @@ class WorkflowViewTest(unittest.TestCase):
self.assertEqual(1, len(WFPlanModel.objects.filter(deployed_id="3")))
@mock.patch.object(restcall, 'upload_by_msb')
- def test_force_deploy_workflow(self, mock_upload_by_msb):
+ @mock.patch.object(restcall, 'call_req')
+ def test_force_deploy_workflow(self, mock_call_req, mock_upload_by_msb):
+ mock_call_req.return_value = [0, json.JSONEncoder().encode({
+ "status": "1",
+ "message": "2"
+ }), '202']
mock_upload_by_msb.return_value = [0, json.JSONEncoder().encode({
"status": "2",
"message": "3",
diff --git a/lcm/workflows/views.py b/lcm/workflows/views.py
index 221cc5ff..41779e87 100644
--- a/lcm/workflows/views.py
+++ b/lcm/workflows/views.py
@@ -37,7 +37,10 @@ def deploy_workflow(request, *args, **kwargs):
force_deploy = ignore_case_get(request.data, "forceDeploy")
logger.debug("file_path is %s, force_deploy is %s", file_path, force_deploy)
if force_deploy.upper() == "TRUE":
- WFPlanModel.objects.filter().delete()
+ plans = WFPlanModel.objects.filter()
+ if len(plans) > 0:
+ activiti.undeploy_workflow(plans[0].deployed_id)
+ plans.delete()
else:
if WFPlanModel.objects.filter():
logger.warn("Already deployed.")