summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lcm/pub/utils/scaleaspect.py50
-rw-r--r--lcm/workflows/auto_deploy.py4
-rw-r--r--lcm/workflows/build_in.py14
-rw-r--r--lcm/workflows/tests.py16
-rw-r--r--lcm/workflows/views.py4
5 files changed, 47 insertions, 41 deletions
diff --git a/lcm/pub/utils/scaleaspect.py b/lcm/pub/utils/scaleaspect.py
index dda1797e..0cd92168 100644
--- a/lcm/pub/utils/scaleaspect.py
+++ b/lcm/pub/utils/scaleaspect.py
@@ -13,29 +13,24 @@
# limitations under the License.
import json
-import os
import logging
-from lcm.pub.exceptions import NSLCMException
-from rest_framework import status
-from rest_framework.response import Response
-from rest_framework.views import APIView
-from rest_framework import status
-from rest_framework.response import Response
+import os
logger = logging.getLogger(__name__)
SCALE_TYPE = ("SCALE_NS", "SCALE_VNF")
scale_vnf_data_mapping = {
- "vnfInstanceId":"",
- "scaleByStepData":[
+ "vnfInstanceId": "",
+ "scaleByStepData": [
{
- "type":"",
- "aspectId":"",
- "numberOfSteps":""
+ "type": "",
+ "aspectId": "",
+ "numberOfSteps": ""
}
]
}
+
def ignorcase_get(args, key):
if not key:
return ""
@@ -48,6 +43,7 @@ def ignorcase_get(args, key):
return args[old_key]
return ""
+
def mapping_conv(keyword_map, rest_return):
resp_data = {}
for param in keyword_map:
@@ -58,6 +54,7 @@ def mapping_conv(keyword_map, rest_return):
resp_data[param] = ignorcase_get(rest_return, param)
return resp_data
+
def get_vnf_scale_info(filename, ns_instanceId, aspect, step):
json_data = get_json_data(filename)
scale_options = ignorcase_get(json_data, "scale_options")
@@ -73,6 +70,7 @@ def get_vnf_scale_info(filename, ns_instanceId, aspect, step):
return None
+
def get_json_data(filename):
f = open(filename)
json_str = f.read()
@@ -80,13 +78,17 @@ def get_json_data(filename):
f.close()
return data
+
def check_scale_list(vnf_scale_list, ns_instanceId, aspect, step):
if vnf_scale_list is None:
- logger.debug("The scaling option[ns=%s, aspect=%s, step=%s] does not exist. Pls check the config file." %(ns_instanceId, aspect, step))
- raise Exception("The scaling option[ns=%s, aspect=%s, step=%s] does not exist. Pls check the config file." %(ns_instanceId, aspect, step))
+ logger.debug("The scaling option[ns=%s, aspect=%s, step=%s] does not exist. Pls check the config file."
+ % (ns_instanceId, aspect, step))
+ raise Exception("The scaling option[ns=%s, aspect=%s, step=%s] does not exist. Pls check the config file."
+ % (ns_instanceId, aspect, step))
else:
return vnf_scale_list
+
def set_scaleVnfData_type(vnf_scale_list, scale_type):
logger.debug("vnf_scale_list = %s, type = %s" % (vnf_scale_list, scale_type))
scaleVnfDataList = []
@@ -101,40 +103,44 @@ def set_scaleVnfData_type(vnf_scale_list, scale_type):
logger.debug("scaleVnfDataList = %s" % scaleVnfDataList)
return scaleVnfDataList
+
def get_vnfInstanceIdByName(name):
return name
+
def get_vnf_data(filename, ns_instanceId, aspect, step, scale_type):
vnf_scale_list = get_vnf_scale_info(filename, ns_instanceId, aspect, step)
check_scale_list(vnf_scale_list, ns_instanceId, aspect, step)
- scaleVnfDataList = set_scaleVnfData_type(vnf_scale_list,scale_type)
+ scaleVnfDataList = set_scaleVnfData_type(vnf_scale_list, scale_type)
logger.debug("scaleVnfDataList = %s" % scaleVnfDataList)
return scaleVnfDataList
- #return Response(data={'error': e.message},status=status.HTTP_204_NO_CONTENT)
- #return Response(data={'success': 'success'},status=status.HTTP_200_OK)
+ # return Response(data={'error': e.message},status=status.HTTP_204_NO_CONTENT)
+ # return Response(data={'success': 'success'},status=status.HTTP_200_OK)
+
def get_and_check_params(scaleNsData, ns_InstanceId):
if scaleNsData is None:
pass
- #raise NSLCMException("Error! scaleNsData in the request is Empty!")
+ # raise NSLCMException("Error! scaleNsData in the request is Empty!")
scaleNsByStepsData = scaleNsData[0]["scaleNsByStepsData"]
if scaleNsByStepsData is None:
pass
- #raise NSLCMException("Error! scaleNsByStepsData in the request is Empty!")
+ # raise NSLCMException("Error! scaleNsByStepsData in the request is Empty!")
aspect = scaleNsByStepsData[0]["aspectId"]
numberOfSteps = scaleNsByStepsData[0]["numberOfSteps"]
scale_type = scaleNsByStepsData[0]["scalingDirection"]
- return ns_InstanceId,aspect,numberOfSteps,scale_type
+ return ns_InstanceId, aspect, numberOfSteps, scale_type
+
def get_scale_vnf_data(scaleNsData, ns_InstanceId):
curdir_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
filename = curdir_path + "/ns/data/scalemapping.json"
logger.debug("filename = %s" % filename)
- ns_InstanceId,aspect,numberOfSteps,scale_type = get_and_check_params(scaleNsData, ns_InstanceId)
- return get_vnf_data(filename, ns_InstanceId,aspect,numberOfSteps,scale_type)
+ ns_InstanceId, aspect, numberOfSteps, scale_type = get_and_check_params(scaleNsData, ns_InstanceId)
+ return get_vnf_data(filename, ns_InstanceId, aspect, numberOfSteps, scale_type)
diff --git a/lcm/workflows/auto_deploy.py b/lcm/workflows/auto_deploy.py
index 4f19d804..913d42b8 100644
--- a/lcm/workflows/auto_deploy.py
+++ b/lcm/workflows/auto_deploy.py
@@ -28,8 +28,8 @@ def deploy_workflow_on_startup():
file_path = "TODO:"
deploy_info = activiti.deploy_workflow(file_path)
WFPlanModel(
- deployed_id=deploy_info["deployedId"],
- process_id=deploy_info["processId"],
+ deployed_id=deploy_info["deployedId"],
+ process_id=deploy_info["processId"],
status=deploy_info["status"],
message=deploy_info["message"],
plan_name="ns_instantiate").save()
diff --git a/lcm/workflows/build_in.py b/lcm/workflows/build_in.py
index cbc21858..e1e3cdd2 100644
--- a/lcm/workflows/build_in.py
+++ b/lcm/workflows/build_in.py
@@ -32,14 +32,14 @@ g_jobs_status = {}
"""
format of input_data
{
- "jobId": uuid of job,
+ "jobId": uuid of job,
"nsInstanceId": id of ns instance,
"object_context": json format of nsd,
"object_additionalParamForNs": json format of additional parameters for ns,
"object_additionalParamForVnf": json format of additional parameters for vnf,
"vlCount": int type of VL count,
"vnfCount: int type of VNF count,
- "sfcCount": int type of SFC count,
+ "sfcCount": int type of SFC count,
"sdnControllerId": uuid of SDN controller
}
"""
@@ -64,14 +64,14 @@ def run_ns_instantiate(input_data):
create_vl(ns_inst_id, i + 1, nsd_json, ns_param_json)
update_job(job_id, 30, "0", "Start to create VNF")
- jobs = [create_vnf(ns_inst_id, i + 1, vnf_param_json) for i in range(vnf_count)]
+ jobs = [create_vnf(ns_inst_id, i + 1, vnf_param_json) for i in range(vnf_count)]
wait_until_jobs_done(job_id, jobs)
[confirm_vnf_status(inst_id) for inst_id, _, _ in jobs]
update_job(job_id, 70, "0", "Start to create SFC")
g_jobs_status[job_id] = [1 for i in range(sfc_count)]
- jobs = [create_sfc(ns_inst_id, i + 1, nsd_json, sdnc_id) for i in range(sfc_count)]
+ jobs = [create_sfc(ns_inst_id, i + 1, nsd_json, sdnc_id) for i in range(sfc_count)]
wait_until_jobs_done(job_id, jobs)
[confirm_sfc_status(inst_id) for inst_id, _, _ in jobs]
@@ -161,7 +161,7 @@ def create_sfc(ns_inst_id, fp_index, nsd_json, sdnc_id):
def post_deal(ns_inst_id, status):
- uri = "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id)
+ uri = "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id)
data = json.JSONEncoder().encode({
"status": status
})
@@ -179,12 +179,12 @@ def update_job(job_id, progress, errcode, desc):
"errcode": errcode,
"desc": desc
})
- restcall.req_by_msb(uri, "POST", data)
+ restcall.req_by_msb(uri, "POST", data)
class JobWaitThread(Thread):
"""
- Job Wait
+ Job Wait
"""
def __init__(self, inst_id, job_id, ns_job_id, index):
Thread.__init__(self)
diff --git a/lcm/workflows/tests.py b/lcm/workflows/tests.py
index c74f44d1..5a91db3a 100644
--- a/lcm/workflows/tests.py
+++ b/lcm/workflows/tests.py
@@ -42,8 +42,8 @@ class WorkflowViewTest(unittest.TestCase):
"processId": "4"
}
mock_upload_by_msb.return_value = [0, json.JSONEncoder().encode(res_data), '202']
- response = self.client.post("/api/nslcm/v1/workflow",
- {"filePath": os.path.abspath(__file__)}, format='json')
+ response = self.client.post("/api/nslcm/v1/workflow",
+ {"filePath": os.path.abspath(__file__)}, format='json')
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
self.assertEqual(1, len(WFPlanModel.objects.filter(deployed_id="3")))
@@ -61,16 +61,16 @@ class WorkflowViewTest(unittest.TestCase):
"processId": "5"
}), '202']
WFPlanModel(deployed_id="1", process_id="2", status="3", message="4").save()
- response = self.client.post("/api/nslcm/v1/workflow",
- {"filePath": os.path.abspath(__file__), "forceDeploy": "True"}, format='json')
+ response = self.client.post("/api/nslcm/v1/workflow",
+ {"filePath": os.path.abspath(__file__), "forceDeploy": "True"}, format='json')
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
self.assertEqual(0, len(WFPlanModel.objects.filter(deployed_id="1")))
self.assertEqual(1, len(WFPlanModel.objects.filter(deployed_id="4")))
def test_deploy_workflow_when_already_deployed(self):
WFPlanModel(deployed_id="1", process_id="2", status="3", message="4").save()
- response = self.client.post("/api/nslcm/v1/workflow",
- {"filePath": os.path.abspath(__file__)}, format='json')
+ response = self.client.post("/api/nslcm/v1/workflow",
+ {"filePath": os.path.abspath(__file__)}, format='json')
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
self.assertEqual({'msg': 'Already deployed.'}, json.loads(response.content))
@@ -126,9 +126,9 @@ class WorkflowViewTest(unittest.TestCase):
"progress": 100,
"statusDescription": "ok"
}}), '200'],
- "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
+ "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
[0, '{}', '201'],
- "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id):
+ "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id):
[0, '{}', '201']
}
diff --git a/lcm/workflows/views.py b/lcm/workflows/views.py
index 8e48acb2..26b6fd49 100644
--- a/lcm/workflows/views.py
+++ b/lcm/workflows/views.py
@@ -47,8 +47,8 @@ def deploy_workflow(request, *args, **kwargs):
return Response(data={'msg': 'Already deployed.'}, status=status.HTTP_202_ACCEPTED)
deploy_info = activiti.deploy_workflow(file_path)
WFPlanModel(
- deployed_id=deploy_info["deployedId"],
- process_id=deploy_info["processId"],
+ deployed_id=deploy_info["deployedId"],
+ process_id=deploy_info["processId"],
status=deploy_info["status"],
message=deploy_info["message"],
plan_name="ns_instantiate").save()