Update python2 to python3 73/90873/3
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Thu, 4 Jul 2019 02:44:08 +0000 (10:44 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Thu, 4 Jul 2019 06:10:31 +0000 (14:10 +0800)
Update python2 to python3

Change-Id: Ic40b6f3a542f60de955ef7af158cd18b8b0e24a9
Issue-ID: VFC-1429
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
66 files changed:
docker/Dockerfile
docker/docker-env-conf.sh
lcm/middleware.py
lcm/ns/biz/ns_heal.py
lcm/ns/biz/ns_instant.py
lcm/ns/biz/ns_manual_scale.py
lcm/ns/biz/query_ns_lcm_op_occ.py
lcm/ns/biz/query_subscription.py
lcm/ns/serializers/sol/lccn_filter_data.py
lcm/ns/tests/test_ns_create.py
lcm/ns/tests/test_ns_delete.py
lcm/ns/tests/test_ns_get.py
lcm/ns/tests/test_ns_instant.py
lcm/ns/tests/test_ns_manual_scale.py
lcm/ns/tests/test_sol_ns_instances_api.py
lcm/ns/tests/test_sol_ns_instantiate_api.py
lcm/ns/tests/test_sol_ns_scale_api.py
lcm/ns/tests/test_sol_ns_terminate_api.py
lcm/ns/tests/test_sol_ns_update_api.py
lcm/ns/tests/tests_ns_terminate.py
lcm/ns/views/deprecated/create_ns_view.py
lcm/ns/views/deprecated/heal_ns_view.py
lcm/ns/views/deprecated/inst_ns_view.py
lcm/ns/views/deprecated/scale_ns_views.py
lcm/ns/views/sol/common.py
lcm/ns/views/sol/lcm_op_occs_view.py
lcm/ns_sfcs/tests/test_create_flow_classifier.py
lcm/ns_sfcs/tests/test_create_port_chain.py
lcm/ns_sfcs/tests/test_create_port_pair_group.py
lcm/ns_sfcs/tests/test_data.py
lcm/ns_sfcs/tests/test_sfc.py
lcm/ns_vls/biz/create_vls.py
lcm/ns_vls/biz/delete_vls.py
lcm/ns_vnfs/biz/create_vnfs.py
lcm/ns_vnfs/biz/grant_vnf.py
lcm/ns_vnfs/biz/grant_vnfs.py
lcm/ns_vnfs/biz/heal_vnfs.py
lcm/ns_vnfs/biz/scale_vnfs.py
lcm/ns_vnfs/biz/verify_vnfs.py
lcm/ns_vnfs/tests/tests.py
lcm/ns_vnfs/tests/verify_test.py
lcm/ns_vnfs/tests/vnf_tests.py
lcm/ns_vnfs/views/vnf_views.py
lcm/pub/base.py
lcm/pub/database/migrations/0001_initial.py
lcm/pub/exceptions.py
lcm/pub/msapi/extsys.py
lcm/pub/nfvi/vim/api/multivim/api.py
lcm/pub/nfvi/vim/vimadaptor.py
lcm/pub/redisco/__init__.py [new file with mode: 0644]
lcm/pub/redisco/containers.py [new file with mode: 0644]
lcm/pub/utils/enumutil.py
lcm/pub/utils/fileutil.py
lcm/pub/utils/idutil.py
lcm/pub/utils/restcall.py
lcm/pub/utils/tests.py
lcm/pub/utils/values.py
lcm/settings.py
lcm/swagger/management/commands/export_swagger.py
lcm/workflows/build_in.py
lcm/workflows/graphflow/flow/graph.py
lcm/workflows/graphflow/flow/load.py
lcm/workflows/graphflow/flow/manager.py
lcm/workflows/graphflow/tests/graph_flow_tests.py
requirements.txt
tox.ini

index d7d6085..58fade3 100644 (file)
@@ -1,4 +1,4 @@
-FROM python:2-alpine
+FROM python:3.6-alpine
 
 ARG HTTP_PROXY=${HTTP_PROXY}
 ARG HTTPS_PROXY=${HTTPS_PROXY}
index 0255161..675eb9b 100644 (file)
@@ -4,7 +4,7 @@ install_sf(){
 
     apk --no-cache update
     apk --no-cache add bash curl gcc wget mysql-client openssl-dev
-    apk --no-cache add python-dev libffi-dev musl-dev py2-virtualenv
+    apk --no-cache add python36-dev libffi-dev musl-dev py3-virtualenv
     wget -q -O vfc-nfvo-lcm.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.vfc.nfvo.lcm&a=vfc-nfvo-lcm&v=${pkg_version}-SNAPSHOT&e=zip" && \
     unzip vfc-nfvo-lcm.zip && \
     rm -rf vfc-nfvo-lcm.zip && \
index f10a8d7..47cbeae 100644 (file)
@@ -17,6 +17,10 @@ from lcm.pub.config.config import FORWARDED_FOR_FIELDS, SERVICE_NAME
 
 
 class LogContextMiddleware(object):
+
+    def __init__(self, get_response):
+        self.get_response = get_response
+
     #  the last IP behind multiple proxies,  if no exist proxies
     #  get local host ip.
     def _getLastIp(self, request):
@@ -58,3 +62,9 @@ class LogContextMiddleware(object):
     def process_response(self, request, response):
         MDC.clear()
         return response
+
+    def __call__(self, request):
+        self.process_request(request)
+        response = self.get_response(request)
+        self.process_response(request, response)
+        return response
index 19994df..8ca033f 100644 (file)
@@ -44,12 +44,12 @@ class NSHealService(threading.Thread):
         try:
             self.do_biz()
         except NSLCMException as e:
-            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.message)
-            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.message)
+            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.args[0])
+            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.args[0])
         except Exception as e:
             logger.error(traceback.format_exc())
             JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, 'ns heal fail')
-            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.message)
+            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.args[0])
 
     def do_biz(self):
         self.update_job(1, desc='ns heal start')
index c2653aa..1588ae9 100644 (file)
@@ -66,7 +66,7 @@ class InstantNSService(object):
 
             input_parameters = []
             if 'additionalParamForNs' in self.req_data:
-                for key, val in self.req_data['additionalParamForNs'].items():
+                for key, val in list(self.req_data['additionalParamForNs'].items()):
                     input_parameters.append({"key": key, "value": val})
 
                 if 'location' in self.req_data['additionalParamForNs']:
@@ -149,7 +149,7 @@ class InstantNSService(object):
                                    template_name=service_tpl['templateName'],
                                    template_id=service_tpl['serviceTemplateId']).save()
 
-                for key, val in self.req_data['additionalParamForNs'].items():
+                for key, val in list(self.req_data['additionalParamForNs'].items()):
                     InputParamMappingModel(service_id=self.ns_inst_id,
                                            input_key=key,
                                            input_value=val).save()
@@ -174,10 +174,10 @@ class InstantNSService(object):
 
         except Exception as e:
             logger.error(traceback.format_exc())
-            logger.error("ns-instant(%s) workflow error:%s" % (self.ns_inst_id, e.message))
-            NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.message)
+            logger.error("ns-instant(%s) workflow error:%s" % (self.ns_inst_id, e.args[0]))
+            NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.args[0])
             JobUtil.add_job_status(job_id, 255, 'NS instantiation failed')
-            return dict(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            return dict(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
 
     def start_wso2_workflow(self, job_id, ns_inst, plan_input, occ_id):
         # todo occ_id
index 2db5529..f40cb0a 100644 (file)
@@ -45,13 +45,13 @@ class NSManualScaleService(threading.Thread):
         try:
             self.do_biz()
         except NSLCMException as e:
-            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.message)
-            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.message)
+            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.args[0])
+            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.args[0])
         except Exception as e:
-            logger.error(e.message)
+            logger.error(e.args[0])
             logger.error(traceback.format_exc())
             JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, 'ns scale fail')
-            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.message)
+            NsLcmOpOcc.update(self.occ_id, operationState="FAILED", error=e.args[0])
         finally:
             self.update_ns_status(NS_INST_STATUS.ACTIVE)
 
index b2c96db..f20bd83 100644 (file)
@@ -39,7 +39,7 @@ class QueryNsLcmOpOcc:
     def query_multi_ns_lcm_op_occ(self):
         query_data = {}
         logger.debug("QueryMultiNsLcmOpOccs--get--biz::> Check for filters in query params" % self.params)
-        for query, value in self.params.iteritems():
+        for query, value in list(self.params.items()):
             if query in FILTERS:
                 query_data[FILTERS[query]] = value
         # Query the database with filters if the request has fields in request params, else fetch all records
index 237c87a..0b3cbc9 100644 (file)
@@ -42,10 +42,10 @@ class QuerySubscription:
         query_data = {}
         logger.debug(
             "QueryMultiSubscriptions--get--biz::> Check for filters in query params" % self.params)
-        for query, value in self.params.iteritems():
+        for query, value in list(self.params.items()):
             if query in ROOT_FILTERS:
                 query_data[ROOT_FILTERS[query] + '__icontains'] = value
-        for query, value in self.params.iteritems():
+        for query, value in list(self.params.items()):
             if query in NS_INSTANCE_FILTERS:
                 query_data[NS_INSTANCE_FILTERS[query] + '__icontains'] = value
         # Query the database with filters if the request has fields in request
index d9b2005..429b75a 100644 (file)
@@ -15,7 +15,7 @@
 
 from rest_framework import serializers
 
-from ns_instance_subscription_filter import NsInstanceSubscriptionFilter
+from .ns_instance_subscription_filter import NsInstanceSubscriptionFilter
 from lcm.ns.enum import NOTIFICATION_TYPE, OPERATION_TYPE, OPERATION_STATE_TYPE, NS_COMPOMENT_TYPE, OPNAME_FOR_CHANGE_NOTIFICATION_TYPE, OPOCC_STATUS_FOR_CHANGENOTIFICATION_TYPE
 from lcm.pub.utils.enumutil import enum_to_list
 
index 6b3848f..dee1fcb 100644 (file)
@@ -43,7 +43,7 @@ class TestNsInstantiate(TestCase):
         mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai]
         self.create_ns_dict["csarId"] = str(uuid.uuid4())
         response = self.client.post("/api/nslcm/v1/ns", data=self.create_ns_dict, format='json')
-        self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
+        self.assertEqual(status.HTTP_201_CREATED, response.status_code)
 
     @mock.patch.object(CreateNSService, "do_biz")
     def test_create_ns_empty_data(self, mock_do_biz):
index 69565d3..516e432 100644 (file)
@@ -38,4 +38,4 @@ class TestNsDelelete(TestCase):
         r2_delete_ns_to_aai = [0, json.JSONEncoder().encode({}), '200']
         mock_call_req.side_effect = [r1_query_ns_to_aai, r2_delete_ns_to_aai]
         response = self.client.delete("/api/nslcm/v1/ns/%s" % self.ns_inst_id)
-        self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
+        self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code)
index cd4a94a..3ab4906 100644 (file)
@@ -25,15 +25,15 @@ class TestNsQuery(TestCase):
 \r
     def test_query_ns_by_nsinstance_id(self):\r
         response = self.client.get("/api/nslcm/v1/ns/1")\r
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)\r
+        self.assertEqual(status.HTTP_200_OK, response.status_code)\r
         self.assertIsNotNone(response.data)\r
 \r
     def test_query_all_nsinstance(self):\r
         response = self.client.get("/api/nslcm/v1/ns")\r
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.data)\r
+        self.assertEqual(status.HTTP_200_OK, response.status_code, response.data)\r
         self.assertIsNotNone(response.data)\r
         self.assertEqual(2, len(response.data))\r
 \r
     def test_query_ns_by_non_existing_nsinstance_id(self):\r
         response = self.client.get("/api/nslcm/v1/ns/200")\r
-        self.failUnlessEqual(status.HTTP_404_NOT_FOUND, response.status_code)\r
+        self.assertEqual(status.HTTP_404_NOT_FOUND, response.status_code)\r
index 1d6fadb..ab4335c 100644 (file)
@@ -57,7 +57,7 @@ class TestNsInstant(TestCase):
     def test_ns_instantiate_normal(self, mock_do_biz):
         mock_do_biz.return_value = dict(data=JOB_DICT, status=status.HTTP_200_OK)
         resp = self.client.post(self.url, data=INSTANTIATE_NS_DICT, format='json')
-        self.failUnlessEqual(status.HTTP_200_OK, resp.status_code)
+        self.assertEqual(status.HTTP_200_OK, resp.status_code)
         self.assertEqual(JOB_DICT, resp.data)
 
     @mock.patch.object(restcall, 'call_req')
index 142c3ee..5c8202b 100644 (file)
@@ -82,7 +82,7 @@ class TestNsManualScale(TestCase):
     @mock.patch.object(NSManualScaleService, 'run')
     def test_ns_manual_scale(self, mock_run):
         response = self.client.post("/api/nslcm/v1/ns/%s/scale" % self.ns_inst_id, data=SCALE_NS_DICT, format='json')
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
 
     def test_ns_manual_scale_error_scaletype(self):
         scale_ns_json = SCALE_NS_DICT.copy()
index 930838a..7d6b1f6 100644 (file)
@@ -43,7 +43,7 @@ class TestNsInstanceApi(TestCase):
         r2_create_ns_to_aai = [0, json.JSONEncoder().encode({}), '201']
         mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai]
         response = self.apiClient.post(self.ns_instances_url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
+        self.assertEqual(status.HTTP_201_CREATED, response.status_code)
         return response.data['id']
 
     @mock.patch.object(restcall, 'call_req')
@@ -52,7 +52,7 @@ class TestNsInstanceApi(TestCase):
         r2_create_ns_to_aai = [0, json.JSONEncoder().encode({}), '201']
         mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai]
         response = self.apiClient.post(self.ns_instances_url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
+        self.assertEqual(status.HTTP_201_CREATED, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     def test_create_ns_when_ns_name_exist(self, mock_call_req):
@@ -89,42 +89,42 @@ class TestNsInstanceApi(TestCase):
 
     def test_ns_instances_method_not_allowed(self):
         response = self.apiClient.delete(self.ns_instances_url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.apiClient.put(self.ns_instances_url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.apiClient.patch(self.ns_instances_url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
 
     def test_invidual_ns_instance_method_not_allowed(self):
         url = self.ns_instances_url + '/1'
         response = self.apiClient.post(url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.apiClient.put(url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.apiClient.patch(url, data=SOL_CREATE_NS_DICT, format=self.format, **SOL_REST_HEADER_DICT)
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
 
     def test_query_ns(self):
         NSInstModel.objects.all().delete()
         self.test_create_ns()
         response = self.apiClient.get(self.ns_instances_url)
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.data)
+        self.assertEqual(status.HTTP_200_OK, response.status_code, response.data)
         self.assertIsNotNone(response.data)
         self.assertEqual(1, len(response.data))
-        self.assertEquals(self.nsd_id, response.data[0]['nsdId'])
-        self.assertEquals('ns', response.data[0]['nsInstanceName'])
-        self.assertEquals('NOT_INSTANTIATED', response.data[0]['nsState'])
+        self.assertEqual(self.nsd_id, response.data[0]['nsdId'])
+        self.assertEqual('ns', response.data[0]['nsInstanceName'])
+        self.assertEqual('NOT_INSTANTIATED', response.data[0]['nsState'])
 
     def test_query_one_ns(self):
         NSInstModel.objects.all().delete()
         id = self.test_create_ns()
         url = self.ns_instances_url + '/' + id
         response = self.apiClient.get(url)
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.data)
+        self.assertEqual(status.HTTP_200_OK, response.status_code, response.data)
         self.assertIsNotNone(response.data)
-        self.assertEquals(self.nsd_id, response.data['nsdId'])
-        self.assertEquals('ns', response.data['nsInstanceName'])
-        self.assertEquals('NOT_INSTANTIATED', response.data['nsState'])
+        self.assertEqual(self.nsd_id, response.data['nsdId'])
+        self.assertEqual('ns', response.data['nsInstanceName'])
+        self.assertEqual('NOT_INSTANTIATED', response.data['nsState'])
 
     @mock.patch.object(restcall, 'call_req')
     def test_delete_ns(self, mock_call_req):
@@ -134,4 +134,4 @@ class TestNsInstanceApi(TestCase):
         mock_call_req.side_effect = [r1_query_ns_to_aai, r2_delete_ns_to_aai]
         url = self.ns_instances_url + '/1'
         response = self.apiClient.delete(url)
-        self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
+        self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code)
index 3b9caaf..c094a4f 100644 (file)
@@ -66,7 +66,7 @@ class TestInstantiateNsApi(TestCase):
     def test_ns_instantiate_normal(self, mock_do_biz):
         mock_do_biz.return_value = {'occ_id': "1"}
         response = self.client.post(self.url % self.nsInstanceId, data=self.req_data, format='json')
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     def test_ns_instantiate_when_fail_to_parse_nsd(self, mock_call_req):
@@ -93,13 +93,13 @@ class TestInstantiateNsApi(TestCase):
 
     def test_method_not_allowed(self):
         response = self.client.put(self.url % self.nsInstanceId, data=self.req_data, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.patch(self.url % self.nsInstanceId, data=self.req_data, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.delete(self.url % self.nsInstanceId, data=self.req_data, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.get(self.url % self.nsInstanceId, data=self.req_data, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     @mock.patch('lcm.pub.msapi.sdc_run_catalog.parse_nsd', MagicMock(return_value=json.dumps({"model": json.dumps(VCPE_NS_MODEL_DICT)})))
index e8df110..d995958 100644 (file)
@@ -81,7 +81,7 @@ class TestScaleNsApi(TestCase):
     @mock.patch.object(NSManualScaleService, 'run')
     def test_ns_scale(self, mock_run):
         response = self.client.post(self.url % self.ns_inst_id, data=SCALE_NS_DICT)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
         self.assertIsNotNone(response['Location'])
         response = self.client.get(response['Location'], format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -100,10 +100,10 @@ class TestScaleNsApi(TestCase):
 
     def test_method_not_allowed(self):
         response = self.client.put(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.patch(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.delete(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.get(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
index 7380aa6..75fdfef 100644 (file)
@@ -61,17 +61,17 @@ class TestTerminateNsApi(TestCase):
         mock_run.re.return_value = "1"
         req_data = {"terminationTime": "2019-03-25T09:10:35.610"}
         response = self.client.post(self.url % self.ns_inst_id, data=req_data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
         self.assertIsNotNone(response['Location'])
         response = self.client.get(response['Location'], format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
 
     def test_method_not_allowed(self):
         response = self.client.put(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.patch(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.delete(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.get(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
index 5e3080d..44f1322 100644 (file)
@@ -27,10 +27,10 @@ class TestUpdateNsApi(TestCase):
 
     def test_method_not_allowed(self):
         response = self.client.put(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.patch(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.delete(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
         response = self.client.get(self.url % '1', data={}, format='json')
-        self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
+        self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code)
index 48868bd..feaa4d5 100644 (file)
@@ -56,10 +56,10 @@ class TestTerminateNsViews(TestCase):
             "terminationType": "forceful",
             "gracefulTerminationTimeout": "600"}
         response = self.client.post("/api/nslcm/v1/ns/%s/terminate" % self.ns_inst_id, data=req_data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
 
         response = self.client.delete("/api/nslcm/v1/ns/%s" % self.ns_inst_id)
-        self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
+        self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     def test_terminate_vnf(self, mock_call_req):
@@ -108,5 +108,5 @@ class TestTerminateNsViews(TestCase):
             "terminationType": "forceful",
             "gracefulTerminationTimeout": "600"}
         response = self.client.post("/api/nslcm/v1/ns/%s/terminate" % ns_inst_id, data=req_data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
         self.assertRaises(NSInstModel.DoesNotExist, NSInstModel.objects.get, id=ns_inst_id)
index e4d7e86..cdc72cf 100644 (file)
@@ -89,8 +89,8 @@ class CreateNSView(APIView):
                 raise NSLCMException(resp_serializer.errors)
             return Response(data=resp_serializer.data, status=status.HTTP_201_CREATED)
         except BadRequestException as e:
-            return Response(data={'error': e.message}, status=status.HTTP_400_BAD_REQUEST)
+            return Response(data={'error': e.args[0]}, status=status.HTTP_400_BAD_REQUEST)
         except Exception as e:
             logger.error(traceback.format_exc())
-            logger.error("Exception in CreateNS: %s", e.message)
-            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            logger.error("Exception in CreateNS: %s", e.args[0])
+            return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index ef1f6cd..3b7f25c 100644 (file)
@@ -54,8 +54,8 @@ class NSHealView(APIView):
             logger.debug("Leave HealNSView::post ret=%s", resp_serializer.data)
             return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED)
         except NSLCMException as e:
-            logger.error("Exception in HealNSView: %s", e.message)
-            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            logger.error("Exception in HealNSView: %s", e.args[0])
+            return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
         except Exception as e:
-            logger.error("Exception in HealNSView: %s", e.message)
-            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            logger.error("Exception in HealNSView: %s", e.args[0])
+            return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index 7ce3c3c..66ec70b 100644 (file)
@@ -49,5 +49,5 @@ class NSInstView(APIView):
             return Response(data=ack['data'], status=ack['status'])
         except Exception as e:
             logger.error(traceback.format_exc())
-            logger.error("Exception in InstNS: %s", e.message)
-            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            logger.error("Exception in InstNS: %s", e.args[0])
+            return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index d901cd7..c05a75d 100644 (file)
@@ -57,6 +57,6 @@ class NSManualScaleView(APIView):
             return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED)
         except Exception as e:
             logger.error(traceback.format_exc())
-            JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message)
+            JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.args[0])
             return Response(data={'error': 'NS scale failed: %s' % ns_instance_id},
                             status=status.HTTP_500_INTERNAL_SERVER_ERROR)
index b29423b..dd5eb64 100644 (file)
@@ -41,25 +41,25 @@ def view_safe_call_with_log(logger):
             try:
                 return func(*args, **kwargs)
             except SeeOtherException as e:
-                logger.error(e.message)
+                logger.error(e.args[0])
                 return make_error_resp(
-                    detail=e.message,
+                    detail=e.args[0],
                     status=status.HTTP_303_SEE_OTHER
                 )
             except BadRequestException as e:
-                logger.error(e.message)
+                logger.error(e.args[0])
                 return make_error_resp(
-                    detail=e.message,
+                    detail=e.args[0],
                     status=status.HTTP_400_BAD_REQUEST
                 )
             except NSLCMException as e:
-                logger.error(e.message)
+                logger.error(e.args[0])
                 return make_error_resp(
-                    detail=e.message,
+                    detail=e.args[0],
                     status=status.HTTP_500_INTERNAL_SERVER_ERROR
                 )
             except Exception as e:
-                logger.error(e.message)
+                logger.error(e.args[0])
                 logger.error(traceback.format_exc())
                 return make_error_resp(
                     detail='Unexpected exception',
index 4a5776b..94ccbcb 100644 (file)
@@ -79,7 +79,7 @@ class QueryMultiNsLcmOpOccs(APIView):
             raise NSLCMException(ns_lcm_op_occs_serializer.errors)
 
         logger.debug("QueryMultiNsLcmOpOccs--get::> Remove default fields if exclude_default is specified")
-        if 'exclude_default' in request.query_params.keys():
+        if 'exclude_default' in list(request.query_params.keys()):
             for field in EXCLUDE_DEFAULT:
                 for lcm_op in ns_lcm_op_occs_serializer.data:
                     del lcm_op[field]
index 1f69931..3bd31f1 100644 (file)
@@ -13,7 +13,7 @@
 # limitations under the License.
 import mock
 import json
-from test_data import nsd_model
+from .test_data import nsd_model
 from rest_framework import status
 from lcm.pub.utils import restcall
 from lcm.pub.database.models import FPInstModel
index 978d5f6..68c3fb2 100644 (file)
@@ -13,7 +13,7 @@
 # limitations under the License.
 import mock
 import json
-from test_data import nsd_model
+from .test_data import nsd_model
 from rest_framework import status
 from lcm.pub.utils import restcall
 from lcm.pub.database.models import FPInstModel
index 490a999..9ed0707 100644 (file)
@@ -13,7 +13,7 @@
 # limitations under the License.
 import mock
 import json
-from test_data import nsd_model, vnfd_model_dict1, vnfd_model_dict2
+from .test_data import nsd_model, vnfd_model_dict1, vnfd_model_dict2
 from rest_framework import status
 from lcm.pub.utils import restcall
 from lcm.pub.database.models import FPInstModel, NfInstModel
index 72f0b43..82902ad 100644 (file)
@@ -510,13 +510,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'2'
+                'num_cpus': '2'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_omm.001',
-            'image_file': u'opencos_sss_omm_img_release_20150723-1-disk1',
+            'vdu_id': 'vdu_omm.001',
+            'image_file': 'opencos_sss_omm_img_release_20150723-1-disk1',
             'dependencies': [
 
             ],
@@ -550,10 +550,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'omm.001',
+                'template_id': 'omm.001',
                 'manual_scale_select_vim': False
             },
-            'description': u'singleommvm'
+            'description': 'singleommvm'
         },
         {
             'volumn_storages': [
@@ -561,13 +561,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_1',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_1',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -601,10 +601,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'1',
+                'template_id': '1',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -612,13 +612,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_2',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_2',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -652,10 +652,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'2',
+                'template_id': '2',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -663,13 +663,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_3',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_3',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -703,10 +703,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'3',
+                'template_id': '3',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -714,13 +714,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_10',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_10',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -754,10 +754,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'10',
+                'template_id': '10',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -765,13 +765,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_11',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_11',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -805,10 +805,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'11',
+                'template_id': '11',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -816,13 +816,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_12',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_12',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -856,10 +856,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'12',
+                'template_id': '12',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         }
     ],
     'volumn_storages': [
@@ -870,7 +870,7 @@ vnfd_model_dict1 = {
             'targets': {
 
             },
-            'policy_id': u'policy_scale_sss-vnf-template',
+            'policy_id': 'policy_scale_sss-vnf-template',
             'properties': {
                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
             },
@@ -881,28 +881,28 @@ vnfd_model_dict1 = {
         {
             'description': '',
             'properties': {
-                'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
+            'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
         },
         {
             'description': '',
             'properties': {
-                'name': u'sss.vmdk',
+                'name': 'sss.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'sss'
+            'image_file_id': 'sss'
         }
     ],
     'vls': [
@@ -921,17 +921,17 @@ vnfd_model_dict1 = {
          },
     ],
     'metadata': {
-        'vendor': u'zte',
+        'vendor': 'zte',
         'is_shared': False,
         'description': '',
-        'domain_type': u'CN',
-        'version': u'v4.14.10',
+        'domain_type': 'CN',
+        'version': 'v4.14.10',
         'vmnumber_overquota_alarm': False,
         'cross_dc': False,
-        'vnf_type': u'SSS',
-        'vnfd_version': u'V00000001',
-        'id': u'vnfd_2',
-        'name': u'sss-vnf-template'
+        'vnf_type': 'SSS',
+        'vnfd_version': 'V00000001',
+        'id': 'vnfd_2',
+        'name': 'sss-vnf-template'
     },
 
     'vnf_exposed': {
@@ -964,13 +964,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'2'
+                'num_cpus': '2'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_omm.001',
-            'image_file': u'opencos_sss_omm_img_release_20150723-1-disk1',
+            'vdu_id': 'vdu_omm.001',
+            'image_file': 'opencos_sss_omm_img_release_20150723-1-disk1',
             'dependencies': [
 
             ],
@@ -1004,10 +1004,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'omm.001',
+                'template_id': 'omm.001',
                 'manual_scale_select_vim': False
             },
-            'description': u'singleommvm'
+            'description': 'singleommvm'
         },
         {
             'volumn_storages': [
@@ -1015,13 +1015,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_1',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_1',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1055,10 +1055,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'1',
+                'template_id': '1',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1066,13 +1066,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_2',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_2',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1106,10 +1106,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'2',
+                'template_id': '2',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1117,13 +1117,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_3',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_3',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1157,10 +1157,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'3',
+                'template_id': '3',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1168,13 +1168,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_10',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_10',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1208,10 +1208,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'10',
+                'template_id': '10',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -1219,13 +1219,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_11',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_11',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1259,10 +1259,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'11',
+                'template_id': '11',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -1270,13 +1270,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_12',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_12',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1310,10 +1310,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'12',
+                'template_id': '12',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         }
     ],
     'volumn_storages': [
@@ -1324,7 +1324,7 @@ vnfd_model_dict2 = {
             'targets': {
 
             },
-            'policy_id': u'policy_scale_sss-vnf-template',
+            'policy_id': 'policy_scale_sss-vnf-template',
             'properties': {
                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
             },
@@ -1335,28 +1335,28 @@ vnfd_model_dict2 = {
         {
             'description': '',
             'properties': {
-                'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
+            'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
         },
         {
             'description': '',
             'properties': {
-                'name': u'sss.vmdk',
+                'name': 'sss.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'sss'
+            'image_file_id': 'sss'
         }
     ],
     'vls': [
@@ -1375,17 +1375,17 @@ vnfd_model_dict2 = {
          },
     ],
     'metadata': {
-        'vendor': u'zte',
+        'vendor': 'zte',
         'is_shared': False,
         'description': '',
-        'domain_type': u'CN',
-        'version': u'v4.14.10',
+        'domain_type': 'CN',
+        'version': 'v4.14.10',
         'vmnumber_overquota_alarm': False,
         'cross_dc': False,
-        'vnf_type': u'SSS',
-        'vnfd_version': u'V00000001',
-        'id': u'sss-vnf-template',
-        'name': u'vnfd_2'
+        'vnf_type': 'SSS',
+        'vnfd_version': 'V00000001',
+        'id': 'sss-vnf-template',
+        'name': 'vnfd_2'
     },
     'vnf_exposed': {
         "external_cps": [
index ccc080c..f490cef 100644 (file)
@@ -254,13 +254,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'2'
+                'num_cpus': '2'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_omm.001',
-            'image_file': u'opencos_sss_omm_img_release_20150723-1-disk1',
+            'vdu_id': 'vdu_omm.001',
+            'image_file': 'opencos_sss_omm_img_release_20150723-1-disk1',
             'dependencies': [
 
             ],
@@ -294,10 +294,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'omm.001',
+                'template_id': 'omm.001',
                 'manual_scale_select_vim': False
             },
-            'description': u'singleommvm'
+            'description': 'singleommvm'
         },
         {
             'volumn_storages': [
@@ -305,13 +305,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_1',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_1',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -345,10 +345,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'1',
+                'template_id': '1',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -356,13 +356,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_2',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_2',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -396,10 +396,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'2',
+                'template_id': '2',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -407,13 +407,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_3',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_3',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -447,10 +447,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'3',
+                'template_id': '3',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -458,13 +458,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_10',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_10',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -498,10 +498,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'10',
+                'template_id': '10',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -509,13 +509,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_11',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_11',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -549,10 +549,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'11',
+                'template_id': '11',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -560,13 +560,13 @@ vnfd_model_dict1 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_12',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_12',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -600,10 +600,10 @@ vnfd_model_dict1 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'12',
+                'template_id': '12',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         }
     ],
     'volumn_storages': [
@@ -614,7 +614,7 @@ vnfd_model_dict1 = {
             'targets': {
 
             },
-            'policy_id': u'policy_scale_sss-vnf-template',
+            'policy_id': 'policy_scale_sss-vnf-template',
             'properties': {
                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
             },
@@ -625,28 +625,28 @@ vnfd_model_dict1 = {
         {
             'description': '',
             'properties': {
-                'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
+            'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
         },
         {
             'description': '',
             'properties': {
-                'name': u'sss.vmdk',
+                'name': 'sss.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'sss'
+            'image_file_id': 'sss'
         }
     ],
     'vls': [
@@ -665,17 +665,17 @@ vnfd_model_dict1 = {
          },
     ],
     'metadata': {
-        'vendor': u'zte',
+        'vendor': 'zte',
         'is_shared': False,
         'description': '',
-        'domain_type': u'CN',
-        'version': u'v4.14.10',
+        'domain_type': 'CN',
+        'version': 'v4.14.10',
         'vmnumber_overquota_alarm': False,
         'cross_dc': False,
-        'vnf_type': u'SSS',
-        'vnfd_version': u'V00000001',
-        'id': u'vnfd_2',
-        'name': u'sss-vnf-template'
+        'vnf_type': 'SSS',
+        'vnfd_version': 'V00000001',
+        'id': 'vnfd_2',
+        'name': 'sss-vnf-template'
     },
 
     'vnf_exposed': {
@@ -709,13 +709,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'2'
+                'num_cpus': '2'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_omm.001',
-            'image_file': u'opencos_sss_omm_img_release_20150723-1-disk1',
+            'vdu_id': 'vdu_omm.001',
+            'image_file': 'opencos_sss_omm_img_release_20150723-1-disk1',
             'dependencies': [
 
             ],
@@ -749,10 +749,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'omm.001',
+                'template_id': 'omm.001',
                 'manual_scale_select_vim': False
             },
-            'description': u'singleommvm'
+            'description': 'singleommvm'
         },
         {
             'volumn_storages': [
@@ -760,13 +760,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_1',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_1',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -800,10 +800,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'1',
+                'template_id': '1',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -811,13 +811,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_2',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_2',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -851,10 +851,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'2',
+                'template_id': '2',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -862,13 +862,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_3',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_3',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -902,10 +902,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'3',
+                'template_id': '3',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -913,13 +913,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_10',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_10',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -953,10 +953,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'10',
+                'template_id': '10',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -964,13 +964,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_11',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_11',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1004,10 +1004,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'11',
+                'template_id': '11',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -1015,13 +1015,13 @@ vnfd_model_dict2 = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_12',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_12',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1055,10 +1055,10 @@ vnfd_model_dict2 = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'12',
+                'template_id': '12',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         }
     ],
     'volumn_storages': [
@@ -1069,7 +1069,7 @@ vnfd_model_dict2 = {
             'targets': {
 
             },
-            'policy_id': u'policy_scale_sss-vnf-template',
+            'policy_id': 'policy_scale_sss-vnf-template',
             'properties': {
                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
             },
@@ -1080,28 +1080,28 @@ vnfd_model_dict2 = {
         {
             'description': '',
             'properties': {
-                'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
+            'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
         },
         {
             'description': '',
             'properties': {
-                'name': u'sss.vmdk',
+                'name': 'sss.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'sss'
+            'image_file_id': 'sss'
         }
     ],
     'vls': [
@@ -1120,17 +1120,17 @@ vnfd_model_dict2 = {
          },
     ],
     'metadata': {
-        'vendor': u'zte',
+        'vendor': 'zte',
         'is_shared': False,
         'description': '',
-        'domain_type': u'CN',
-        'version': u'v4.14.10',
+        'domain_type': 'CN',
+        'version': 'v4.14.10',
         'vmnumber_overquota_alarm': False,
         'cross_dc': False,
-        'vnf_type': u'SSS',
-        'vnfd_version': u'V00000001',
-        'id': u'sss-vnf-template',
-        'name': u'vnfd_2'
+        'vnf_type': 'SSS',
+        'vnfd_version': 'V00000001',
+        'id': 'sss-vnf-template',
+        'name': 'vnfd_2'
     },
     'vnf_exposed': {
         "external_cps": [
index 596c278..a562684 100644 (file)
@@ -72,7 +72,7 @@ class CreateVls(object):
         return {"result": 1, "detail": detail, "vlId": self.vl_inst_id}
 
     def get_data(self):
-        if isinstance(self.context, (unicode, str)):
+        if isinstance(self.context, str):
             self.context = json.JSONDecoder().decode(self.context)
         vl_info = self.get_vl_info(ignore_case_get(self.context, "vls"))
         self.vld_id = ignore_case_get(vl_info, "vl_id")
@@ -139,7 +139,7 @@ class CreateVls(object):
         return vl_ret[1]
 
     def create_vl_to_resmgr(self):
-        self.vim_id = json.JSONDecoder().decode(self.vim_id) if isinstance(self.vim_id, (str, unicode)) else self.vim_id
+        self.vim_id = json.JSONDecoder().decode(self.vim_id) if isinstance(self.vim_id, str) else self.vim_id
         vim_id = self.vim_id['cloud_owner'] + self.vim_id['cloud_regionid']
         req_param = {
             "vlInstanceId": self.vl_inst_id,
index 57dc562..77a8ae5 100644 (file)
@@ -39,7 +39,7 @@ class DeleteVls(object):
                 return {"result": 0, "detail": "vl is not exist or has been already deleted"}
             self.ns_inst_id = vl_inst_info[0].ownerid
             # vim_id = vl_inst_info[0].vimid
-            vim_id = json.JSONDecoder().decode(vl_inst_info[0].vimid) if isinstance(vl_inst_info[0].vimid, (str, unicode)) \
+            vim_id = json.JSONDecoder().decode(vl_inst_info[0].vimid) if isinstance(vl_inst_info[0].vimid, str) \
                 else vl_inst_info[0].vimid
             subnetwork_id_list = vl_inst_info[0].relatedsubnetworkid.split(",")
             network_id = vl_inst_info[0].relatednetworkid
@@ -56,7 +56,7 @@ class DeleteVls(object):
             return self.exception_handle(e)
 
     def exception_handle(self, e):
-        detail = "vl delete failed, detail message: %s" % e.message
+        detail = "vl delete failed, detail message: %s" % e.args[0]
         logger.error(detail)
         return {"result": 0, "detail": detail}
 
index 85bd240..3e6c511 100644 (file)
@@ -110,7 +110,7 @@ class CreateVnfs(Thread):
         self.properties = ignore_case_get(additional_param, 'properties')
         self.vnfm_inst_id = ignore_case_get(additional_param, 'vnfmInstanceId')
         para = ignore_case_get(additional_param, 'inputs')
-        self.inputs = json.loads(para) if isinstance(para, (str, unicode)) else para
+        self.inputs = json.loads(para) if isinstance(para, str) else para
         self.vim_id = ignore_case_get(additional_param, 'vimId')
         self.vnfd_id = ignore_case_get(additional_param, 'vnfdId')
 
@@ -166,7 +166,7 @@ class CreateVnfs(Thread):
                     'subnetwork_name': subnet_name,
                     'vl_instance_id': vl_instance_id
                 })
-                vim_id = json.JSONDecoder().decode(vl_instance.vimid) if isinstance(vl_instance.vimid, (str, unicode)) \
+                vim_id = json.JSONDecoder().decode(vl_instance.vimid) if isinstance(vl_instance.vimid, str) \
                     else vl_instance.vimid
                 ext_virtual_link.append({
                     "vlInstanceId": vl_instance_id,
index c393614..9c869ea 100644 (file)
@@ -32,7 +32,7 @@ class GrantVnf(object):
 
     def exec_grant(self):
         logger.debug("grant data from vnfm:%s", self.data)
-        if isinstance(self.data, (unicode, str)):
+        if isinstance(self.data, str):
             self.data = json.JSONDecoder().decode(self.data)
         has_res_tpl = False
         grant_type = None
index e6b5dbf..fac7343 100644 (file)
@@ -35,7 +35,7 @@ class GrantVnfs(object):
 
     def send_grant_vnf_to_resMgr(self):
         logger.debug("grant data from vnfm:%s", self.data)
-        if isinstance(self.data, (unicode, str)):
+        if isinstance(self.data, str):
             self.data = json.JSONDecoder().decode(self.data)
         has_res_tpl = False
         grant_type = None
index fa3702f..9f730d7 100644 (file)
@@ -54,7 +54,7 @@ class NFHealService(threading.Thread):
             self.update_nf_status(VNF_STATUS.ACTIVE)
             JobUtil.add_job_status(self.job_id, JOB_PROGRESS.FINISHED, 'vnf heal success')
         except NSLCMException as e:
-            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.message)
+            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.args[0])
         except:
             logger.error(traceback.format_exc())
             JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, 'vnf heal fail')
index f3ed736..f46852b 100644 (file)
@@ -43,9 +43,9 @@ class NFManualScaleService(threading.Thread):
         try:
             self.do_biz()
         except NSLCMException as e:
-            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.message)
+            JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, e.args[0])
         except Exception as ex:
-            logger.error(ex.message)
+            logger.error(ex.args[0])
             logger.error(traceback.format_exc())
             JobUtil.add_job_status(self.job_id, JOB_PROGRESS.ERROR, 'VNF scale failed')
         finally:
index 32bb94f..a66de7e 100644 (file)
@@ -46,7 +46,7 @@ class VerifyVnfs(threading.Thread):
             self.do_func_test()
             self.verify_ok = True
         except NSLCMException as e:
-            self.update_job(JOB_PROGRESS.ERROR, e.message)
+            self.update_job(JOB_PROGRESS.ERROR, e.args[0])
         except:
             logger.error(traceback.format_exc())
             self.update_job(JOB_PROGRESS.ERROR, 'Unknown error in vnf verify.')
index 1ca861e..12282fb 100644 (file)
@@ -49,9 +49,9 @@ class TestGetVnfViews(TestCase):
 
     def test_get_vnf(self):
         response = self.client.get("/api/nslcm/v1/ns/vnfs/%s" % self.nf_inst_id)
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
+        self.assertEqual(status.HTTP_200_OK, response.status_code)
         context = json.loads(response.content)
-        self.failUnlessEqual(self.nf_inst_id, context['vnfInstId'])
+        self.assertEqual(self.nf_inst_id, context['vnfInstId'])
 
 
 class TestCreateVnfViews(TestCase):
@@ -93,7 +93,7 @@ class TestCreateVnfViews(TestCase):
     @mock.patch.object(CreateVnfs, 'run')
     def test_create_vnf(self, mock_run):
         response = self.client.post("/api/nslcm/v1/ns/vnfs", data=self.data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
         context = json.loads(response.content)
         self.assertTrue(NfInstModel.objects.filter(nfinstid=context['vnfInstId']).exists())
 
@@ -259,7 +259,7 @@ class TestTerminateVnfViews(TestCase):
             "gracefulTerminationTimeout": "600"}
 
         response = self.client.post("/api/nslcm/v1/ns/terminatevnf/%s" % self.nf_inst_id, data=req_data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     @mock.patch.object(SubscriptionDeletion, 'send_subscription_deletion_request')
@@ -268,9 +268,9 @@ class TestTerminateVnfViews(TestCase):
 
         nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
         if nfinst:
-            self.failUnlessEqual(1, 1)
+            self.assertEqual(1, 1)
         else:
-            self.failUnlessEqual(1, 0)
+            self.assertEqual(1, 0)
 
         notification_types = ["VnfLcmOperationOccurrenceNotification"],
         operation_types = [
@@ -371,9 +371,9 @@ class TestTerminateVnfViews(TestCase):
         TerminateVnfs(req_data, self.nf_inst_id, job_id).run()
         nfinst = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
         if nfinst:
-            self.failUnlessEqual(1, 0)
+            self.assertEqual(1, 0)
         else:
-            self.failUnlessEqual(1, 1)
+            self.assertEqual(1, 1)
 
 
 class TestScaleVnfViews(TestCase):
@@ -688,7 +688,7 @@ class TestGetVnfmInfoViews(TestCase):
         }
 
         response = self.client.get("/api/nslcm/v1/vnfms/%s" % self.vnfm_id)
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code, response.content)
+        self.assertEqual(status.HTTP_200_OK, response.status_code, response.content)
         context = json.loads(response.content)
         self.assertEqual(expect_data, context)
 
@@ -724,7 +724,7 @@ class TestGetVimInfoViews(TestCase):
 
         # response = self.client.get("/api/nslcm/v1/vims/%s" % self.vim_id)
         response = self.client.get("/api/nslcm/v1/vims/%s/%s" % (self.vim_id['cloud_owner'], self.vim_id['cloud_regionid']))
-        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
+        self.assertEqual(status.HTTP_200_OK, response.status_code)
         context = json.loads(response.content)
         self.assertEqual(expect_data["url"], context["url"])
 
@@ -970,9 +970,9 @@ class TestGrantVnfViews(TestCase):
         }
         mock_grant.return_value = resmgr_grant_resp
         resp = GrantVnf(self.data).exec_grant()
-        self.assertEquals(resp['vimAssets']['computeResourceFlavours'][0]['vimConnectionId'], 'cloudOwner_casa')
-        self.assertEquals(resp['vimAssets']['computeResourceFlavours'][0]['resourceProviderId'], 'vg')
-        self.assertEquals(resp['vimAssets']['computeResourceFlavours'][0]['vimFlavourId'], '12345')
+        self.assertEqual(resp['vimAssets']['computeResourceFlavours'][0]['vimConnectionId'], 'cloudOwner_casa')
+        self.assertEqual(resp['vimAssets']['computeResourceFlavours'][0]['resourceProviderId'], 'vg')
+        self.assertEqual(resp['vimAssets']['computeResourceFlavours'][0]['vimFlavourId'], '12345')
 
 
 vnfd_model_dict = {
@@ -984,13 +984,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'2'
+                'num_cpus': '2'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_omm.001',
-            'image_file': u'opencos_sss_omm_img_release_20150723-1-disk1',
+            'vdu_id': 'vdu_omm.001',
+            'image_file': 'opencos_sss_omm_img_release_20150723-1-disk1',
             'dependencies': [
 
             ],
@@ -1024,10 +1024,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'omm.001',
+                'template_id': 'omm.001',
                 'manual_scale_select_vim': False
             },
-            'description': u'singleommvm'
+            'description': 'singleommvm'
         },
         {
             'volumn_storages': [
@@ -1035,13 +1035,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_1',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_1',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1075,10 +1075,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'1',
+                'template_id': '1',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1086,13 +1086,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_2',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_2',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1126,10 +1126,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'2',
+                'template_id': '2',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1137,13 +1137,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_3',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_3',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1177,10 +1177,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'3',
+                'template_id': '3',
                 'manual_scale_select_vim': False
             },
-            'description': u'ompvm'
+            'description': 'ompvm'
         },
         {
             'volumn_storages': [
@@ -1188,13 +1188,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'4'
+                'num_cpus': '4'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_10',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_10',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1228,10 +1228,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'10',
+                'template_id': '10',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -1239,13 +1239,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_11',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_11',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1279,10 +1279,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'11',
+                'template_id': '11',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         },
         {
             'volumn_storages': [
@@ -1290,13 +1290,13 @@ vnfd_model_dict = {
             ],
             'nfv_compute': {
                 'mem_size': '',
-                'num_cpus': u'14'
+                'num_cpus': '14'
             },
             'local_storages': [
 
             ],
-            'vdu_id': u'vdu_12',
-            'image_file': u'sss',
+            'vdu_id': 'vdu_12',
+            'image_file': 'sss',
             'dependencies': [
 
             ],
@@ -1330,10 +1330,10 @@ vnfd_model_dict = {
                 'local_affinity_antiaffinity_rule': {
 
                 },
-                'template_id': u'12',
+                'template_id': '12',
                 'manual_scale_select_vim': False
             },
-            'description': u'ppvm'
+            'description': 'ppvm'
         }
     ],
     'volumn_storages': [
@@ -1344,7 +1344,7 @@ vnfd_model_dict = {
             'targets': {
 
             },
-            'policy_id': u'policy_scale_sss-vnf-template',
+            'policy_id': 'policy_scale_sss-vnf-template',
             'properties': {
                 'policy_file': '*-vnfd.zip/*-vnf-policy.xml'
             },
@@ -1355,28 +1355,28 @@ vnfd_model_dict = {
         {
             'description': '',
             'properties': {
-                'name': u'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'name': 'opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/OMM/opencos_sss_omm_img_release_20150723-1-disk1.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'opencos_sss_omm_img_release_20150723-1-disk1'
+            'image_file_id': 'opencos_sss_omm_img_release_20150723-1-disk1'
         },
         {
             'description': '',
             'properties': {
-                'name': u'sss.vmdk',
+                'name': 'sss.vmdk',
                 'checksum': '',
-                'disk_format': u'VMDK',
-                'file_url': u'./zte-cn-sss-main-image/NE/sss.vmdk',
+                'disk_format': 'VMDK',
+                'file_url': './zte-cn-sss-main-image/NE/sss.vmdk',
                 'container_type': 'vm',
                 'version': '',
                 'hypervisor_type': 'kvm'
             },
-            'image_file_id': u'sss'
+            'image_file_id': 'sss'
         }
     ],
     'vls': [
@@ -1386,17 +1386,17 @@ vnfd_model_dict = {
 
     ],
     'metadata': {
-        'vendor': u'zte',
+        'vendor': 'zte',
         'is_shared': False,
         'description': '',
-        'domain_type': u'CN',
-        'version': u'v4.14.10',
+        'domain_type': 'CN',
+        'version': 'v4.14.10',
         'vmnumber_overquota_alarm': False,
         'cross_dc': False,
-        'vnf_type': u'SSS',
-        'vnfd_version': u'V00000001',
-        'id': u'sss-vnf-template',
-        'name': u'sss-vnf-template'
+        'vnf_type': 'SSS',
+        'vnfd_version': 'V00000001',
+        'id': 'sss-vnf-template',
+        'name': 'sss-vnf-template'
     }
 }
 
index 532d5c1..884e009 100644 (file)
@@ -27,4 +27,4 @@ class TestGetVnfViews(TestCase):
 
     def test_verify_vnfs(self):
         response = self.client.post("/api/nslcm/v1/vnfonboarding", data=self.data)
-        self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
index fbdb531..73e9e27 100644 (file)
@@ -33,29 +33,32 @@ class VnfGrantViewTest(unittest.TestCase):
     @mock.patch.object(restcall, 'call_req')
     def test_grant_vnf_normal(self, mock_call_req):
         vim_connections = {
-            "id": "1",
-            "vimId": "1",
+            "vim": {
+                "id": "1",
+                "vimId": "1",
+                "accessInfo": {}
+            }
         }
         mock_call_req.return_value = [0, json.JSONEncoder().encode(vim_connections), '200']
         response = self.client.post("/api/nslcm/v2/grants", data=GRANT_DATA, format='json')
         self.assertEqual(status.HTTP_201_CREATED, response.status_code, response.content)
-        resp_data = json.loads(response.content)
-        expect_resp_data = {
-            "id": resp_data.get("id"),
-            "vnfInstanceId": "1",
-            "vnfLcmOpOccId": "2",
-            "vimConnections": [
-                {
-                    "id": "1",
-                    "vimId": "1"
-                }
-            ]
-        }
-        self.assertEqual(expect_resp_data, resp_data)
+        resp_data = json.loads(response.content)
+        expect_resp_data = {
+            "id": resp_data.get("id"),
+            "vnfInstanceId": "1",
+            "vnfLcmOpOccId": "2",
+            "vimConnections": [
+                {
+                    "id": "1",
+                    "vimId": "1"
+                }
+            ]
+        }
+        self.assertEqual(expect_resp_data, resp_data)
 
     def test_grant_vnf_when_vnfinst_not_exist(self):
         response = self.client.post("/api/nslcm/v2/grants", data=GRANT_DATA, format='json')
-        self.failUnlessEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
+        self.assertEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
 
     @mock.patch.object(restcall, 'call_req')
     def test_grant_vnf(self, mock_call_req):
@@ -139,10 +142,14 @@ class VnfGrantViewTest(unittest.TestCase):
             }
         }
         vimConnections = {
-            "id": "1",
-            "vimId": "1",
+            "vim": {
+                "id": "1",
+                "vimId": "1",
+                "accessInfo": {}
+            }
         }
         NfInstModel.objects.create(nfinstid='1',
+                                   mnfinstid='1',
                                    package_id="2",
                                    vnfm_inst_id='3')
         get_vnfpackage = [0, json.JSONEncoder().encode(vnfpackage_info), '200']
@@ -150,19 +157,19 @@ class VnfGrantViewTest(unittest.TestCase):
         mock_call_req.side_effect = [get_vnfpackage, get_vimConnections]
         response = self.client.post("/api/nslcm/v2/grants", data=data, format='json')
         self.assertEqual(status.HTTP_201_CREATED, response.status_code, response.content)
-        resp_data = json.loads(response.content)
-        expect_resp_data = {
-            "id": resp_data.get("id"),
-            "vnfInstanceId": "1",
-            "vnfLcmOpOccId": "2",
-            "vimConnections": [
-                {
-                    "id": "1",
-                    "vimId": "1"
-                }
-            ]
-        }
-        self.assertEqual(expect_resp_data, resp_data)
+        resp_data = json.loads(response.content)
+        expect_resp_data = {
+            "id": resp_data.get("id"),
+            "vnfInstanceId": "1",
+            "vnfLcmOpOccId": "2",
+            "vimConnections": [
+                {
+                    "id": "1",
+                    "vimId": "1"
+                }
+            ]
+        }
+        self.assertEqual(expect_resp_data, resp_data)
 
     def test_get_notify_vnf_normal(self):
         response = self.client.get("/api/nslcm/v2/ns/1/vnfs/1/Notify")
index c096c02..593ac76 100644 (file)
@@ -55,8 +55,8 @@ class VnfGrantView(APIView):
             return Response(data=resp_serializer.data, status=status.HTTP_201_CREATED)
         except Exception as e:
             logger.error(traceback.format_exc())
-            logger.error("Exception in VnfGrant: %s", e.message)
-            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            logger.error("Exception in VnfGrant: %s", e.args[0])
+            return Response(data={'error': e.args[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
 
 
 class VnfNotifyView(APIView):
index 068691f..273b3e2 100644 (file)
@@ -21,7 +21,7 @@ class ApiModelBase(object):
 
 def to_dict(instance, cls=ApiModelBase):
     r_dict = {}
-    for k, v in instance.__dict__.iteritems():
+    for k, v in list(instance.__dict__.items()):
         if isinstance(v, cls):
             r_dict[k] = to_dict(v)
         elif isinstance(v, list):
index 7f6beb4..7588444 100644 (file)
@@ -11,8 +11,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-# Generated by Django 1.11.9 on 2019-04-16 03:42
-from __future__ import unicode_literals
 
 from django.db import migrations, models
 
@@ -28,16 +26,16 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='CPInstModel',
             fields=[
-                ('cpinstanceid', models.CharField(db_column=b'CPINSTANCEID', max_length=255, primary_key=True, serialize=False)),
-                ('cpdid', models.CharField(db_column=b'CPDID', max_length=255)),
-                ('cpinstancename', models.CharField(db_column=b'CPINSTANCENAME', max_length=255)),
-                ('ownertype', models.IntegerField(db_column=b'OWNERTYPE')),
-                ('ownerid', models.CharField(db_column=b'OWNERID', max_length=255)),
-                ('relatedtype', models.IntegerField(db_column=b'RELATEDTYPE')),
-                ('relatedvl', models.CharField(blank=True, db_column=b'RELATEDVL', max_length=255, null=True)),
-                ('relatedcp', models.CharField(blank=True, db_column=b'RELATEDCP', max_length=255, null=True)),
-                ('relatedport', models.CharField(blank=True, db_column=b'RELATEDPORT', max_length=255, null=True)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
+                ('cpinstanceid', models.CharField(db_column='CPINSTANCEID', max_length=255, primary_key=True, serialize=False)),
+                ('cpdid', models.CharField(db_column='CPDID', max_length=255)),
+                ('cpinstancename', models.CharField(db_column='CPINSTANCENAME', max_length=255)),
+                ('ownertype', models.IntegerField(db_column='OWNERTYPE')),
+                ('ownerid', models.CharField(db_column='OWNERID', max_length=255)),
+                ('relatedtype', models.IntegerField(db_column='RELATEDTYPE')),
+                ('relatedvl', models.CharField(blank=True, db_column='RELATEDVL', max_length=255, null=True)),
+                ('relatedcp', models.CharField(blank=True, db_column='RELATEDCP', max_length=255, null=True)),
+                ('relatedport', models.CharField(blank=True, db_column='RELATEDPORT', max_length=255, null=True)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_CPINST',
@@ -46,10 +44,10 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='DefPkgMappingModel',
             fields=[
-                ('service_id', models.CharField(db_column=b'serviceId', max_length=255, primary_key=True, serialize=False)),
-                ('service_def_id', models.CharField(db_column=b'serviceDefId', max_length=255)),
-                ('template_id', models.CharField(db_column=b'templateId', max_length=255)),
-                ('template_name', models.CharField(db_column=b'templateName', max_length=255)),
+                ('service_id', models.CharField(db_column='serviceId', max_length=255, primary_key=True, serialize=False)),
+                ('service_def_id', models.CharField(db_column='serviceDefId', max_length=255)),
+                ('template_id', models.CharField(db_column='templateId', max_length=255)),
+                ('template_name', models.CharField(db_column='templateName', max_length=255)),
             ],
             options={
                 'db_table': 't_lcm_defPackage_mapping',
@@ -58,19 +56,19 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='FPInstModel',
             fields=[
-                ('fpid', models.CharField(db_column=b'FPID', max_length=255)),
-                ('fpinstid', models.CharField(db_column=b'FPINSTID', max_length=255, primary_key=True, serialize=False)),
-                ('fpname', models.CharField(db_column=b'FPNAME', max_length=255)),
-                ('nsinstid', models.CharField(db_column=b'NSINSTID', max_length=255)),
-                ('vnffginstid', models.CharField(db_column=b'VNFFGINSTID', max_length=255)),
-                ('symmetric', models.IntegerField(db_column=b'SYMMETRIC', null=True)),
-                ('policyinfo', models.TextField(db_column=b'POLICYINFO', max_length=65535)),
-                ('forworderpaths', models.CharField(blank=True, db_column=b'FORWORDERPATHS', max_length=255, null=True)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
-                ('sdncontrollerid', models.CharField(db_column=b'SDNCONTROLLERID', max_length=255)),
-                ('sfcid', models.CharField(db_column=b'SFCID', max_length=255)),
-                ('flowclassifiers', models.CharField(db_column=b'FLOWCLASSIFIERS', max_length=255)),
-                ('portpairgroups', models.TextField(db_column=b'PORTPAIRGROUPS', max_length=65535)),
+                ('fpid', models.CharField(db_column='FPID', max_length=255)),
+                ('fpinstid', models.CharField(db_column='FPINSTID', max_length=255, primary_key=True, serialize=False)),
+                ('fpname', models.CharField(db_column='FPNAME', max_length=255)),
+                ('nsinstid', models.CharField(db_column='NSINSTID', max_length=255)),
+                ('vnffginstid', models.CharField(db_column='VNFFGINSTID', max_length=255)),
+                ('symmetric', models.IntegerField(db_column='SYMMETRIC', null=True)),
+                ('policyinfo', models.TextField(db_column='POLICYINFO', max_length=65535)),
+                ('forworderpaths', models.CharField(blank=True, db_column='FORWORDERPATHS', max_length=255, null=True)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
+                ('sdncontrollerid', models.CharField(db_column='SDNCONTROLLERID', max_length=255)),
+                ('sfcid', models.CharField(db_column='SFCID', max_length=255)),
+                ('flowclassifiers', models.CharField(db_column='FLOWCLASSIFIERS', max_length=255)),
+                ('portpairgroups', models.TextField(db_column='PORTPAIRGROUPS', max_length=65535)),
             ],
             options={
                 'db_table': 'NFVO_FPINST',
@@ -80,9 +78,9 @@ class Migration(migrations.Migration):
             name='InputParamMappingModel',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('service_id', models.CharField(db_column=b'serviceId', max_length=255)),
-                ('input_key', models.CharField(db_column=b'inputKey', max_length=255)),
-                ('input_value', models.CharField(blank=True, db_column=b'inputValue', max_length=255, null=True)),
+                ('service_id', models.CharField(db_column='serviceId', max_length=255)),
+                ('input_key', models.CharField(db_column='inputKey', max_length=255)),
+                ('input_value', models.CharField(blank=True, db_column='inputValue', max_length=255, null=True)),
             ],
             options={
                 'db_table': 't_lcm_inputParam_mapping',
@@ -91,17 +89,17 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='JobModel',
             fields=[
-                ('jobid', models.CharField(db_column=b'JOBID', max_length=255, primary_key=True, serialize=False)),
-                ('jobtype', models.CharField(db_column=b'JOBTYPE', max_length=255)),
-                ('jobaction', models.CharField(db_column=b'JOBACTION', max_length=255)),
-                ('resid', models.CharField(db_column=b'RESID', max_length=255)),
-                ('status', models.IntegerField(blank=True, db_column=b'STATUS', null=True)),
-                ('starttime', models.CharField(blank=True, db_column=b'STARTTIME', max_length=255, null=True)),
-                ('endtime', models.CharField(blank=True, db_column=b'ENDTIME', max_length=255, null=True)),
-                ('progress', models.IntegerField(blank=True, db_column=b'PROGRESS', null=True)),
-                ('user', models.CharField(blank=True, db_column=b'USER', max_length=255, null=True)),
-                ('parentjobid', models.CharField(blank=True, db_column=b'PARENTJOBID', max_length=255, null=True)),
-                ('resname', models.CharField(blank=True, db_column=b'RESNAME', max_length=255, null=True)),
+                ('jobid', models.CharField(db_column='JOBID', max_length=255, primary_key=True, serialize=False)),
+                ('jobtype', models.CharField(db_column='JOBTYPE', max_length=255)),
+                ('jobaction', models.CharField(db_column='JOBACTION', max_length=255)),
+                ('resid', models.CharField(db_column='RESID', max_length=255)),
+                ('status', models.IntegerField(blank=True, db_column='STATUS', null=True)),
+                ('starttime', models.CharField(blank=True, db_column='STARTTIME', max_length=255, null=True)),
+                ('endtime', models.CharField(blank=True, db_column='ENDTIME', max_length=255, null=True)),
+                ('progress', models.IntegerField(blank=True, db_column='PROGRESS', null=True)),
+                ('user', models.CharField(blank=True, db_column='USER', max_length=255, null=True)),
+                ('parentjobid', models.CharField(blank=True, db_column='PARENTJOBID', max_length=255, null=True)),
+                ('resname', models.CharField(blank=True, db_column='RESNAME', max_length=255, null=True)),
             ],
             options={
                 'db_table': 'NFVO_JOB',
@@ -111,13 +109,13 @@ class Migration(migrations.Migration):
             name='JobStatusModel',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('indexid', models.IntegerField(db_column=b'INDEXID')),
-                ('jobid', models.CharField(db_column=b'JOBID', max_length=255)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
-                ('progress', models.IntegerField(blank=True, db_column=b'PROGRESS', null=True)),
-                ('descp', models.TextField(db_column=b'DESCP', max_length=65535)),
-                ('errcode', models.CharField(blank=True, db_column=b'ERRCODE', max_length=255, null=True)),
-                ('addtime', models.CharField(blank=True, db_column=b'ADDTIME', max_length=255, null=True)),
+                ('indexid', models.IntegerField(db_column='INDEXID')),
+                ('jobid', models.CharField(db_column='JOBID', max_length=255)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
+                ('progress', models.IntegerField(blank=True, db_column='PROGRESS', null=True)),
+                ('descp', models.TextField(db_column='DESCP', max_length=65535)),
+                ('errcode', models.CharField(blank=True, db_column='ERRCODE', max_length=255, null=True)),
+                ('addtime', models.CharField(blank=True, db_column='ADDTIME', max_length=255, null=True)),
             ],
             options={
                 'db_table': 'NFVO_JOB_STATUS',
@@ -126,32 +124,32 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='NfInstModel',
             fields=[
-                ('nfinstid', models.CharField(db_column=b'NFINSTID', max_length=200, primary_key=True, serialize=False)),
-                ('mnfinstid', models.CharField(blank=True, db_column=b'M_NFINSTID', max_length=200, null=True)),
-                ('nf_name', models.CharField(blank=True, db_column=b'NFNAME', max_length=100, null=True)),
-                ('template_id', models.CharField(blank=True, db_column=b'TEMPLATEID', max_length=200, null=True)),
-                ('vnf_id', models.CharField(blank=True, db_column=b'VNFID', max_length=200, null=True)),
-                ('package_id', models.CharField(blank=True, db_column=b'PACKAGEID', max_length=200, null=True)),
-                ('vnfm_inst_id', models.CharField(blank=True, db_column=b'VNFMINSTID', max_length=200, null=True)),
-                ('ns_inst_id', models.CharField(blank=True, db_column=b'NSINSTID', max_length=200, null=True)),
-                ('status', models.CharField(blank=True, db_column=b'STATUS', max_length=20, null=True)),
-                ('flavour_id', models.CharField(blank=True, db_column=b'FLAVOURID', max_length=200, null=True)),
-                ('vnf_level', models.CharField(blank=True, db_column=b'VNFLEVEL', max_length=200, null=True)),
-                ('location', models.CharField(blank=True, db_column=b'LOCATION', max_length=200, null=True)),
-                ('max_vm', models.IntegerField(db_column=b'MAXVM', null=True)),
-                ('max_cpu', models.IntegerField(db_column=b'MAXCPU', null=True)),
-                ('max_ram', models.IntegerField(db_column=b'MAXRAM', null=True)),
-                ('max_hd', models.IntegerField(db_column=b'MAXHD', null=True)),
-                ('max_shd', models.IntegerField(db_column=b'MAXSHD', null=True)),
-                ('max_net', models.IntegerField(db_column=b'MAXNET', null=True)),
-                ('version', models.CharField(db_column=b'VERSION', max_length=255, null=True)),
-                ('vendor', models.CharField(blank=True, db_column=b'VENDOR', max_length=255, null=True)),
-                ('vnfd_model', models.TextField(blank=True, db_column=b'VNFDMODEL', max_length=20000, null=True)),
-                ('input_params', models.TextField(blank=True, db_column=b'INPUTPARAMS', max_length=2000, null=True)),
-                ('scale_params', models.TextField(blank=True, db_column=b'SCALEPARAMS', max_length=2000, null=True)),
-                ('create_time', models.CharField(blank=True, db_column=b'CREATETIME', max_length=200, null=True)),
-                ('lastuptime', models.CharField(blank=True, db_column=b'LASTUPTIME', max_length=200, null=True)),
-                ('extension', models.TextField(blank=True, db_column=b'EXTENSION', max_length=65535, null=True)),
+                ('nfinstid', models.CharField(db_column='NFINSTID', max_length=200, primary_key=True, serialize=False)),
+                ('mnfinstid', models.CharField(blank=True, db_column='M_NFINSTID', max_length=200, null=True)),
+                ('nf_name', models.CharField(blank=True, db_column='NFNAME', max_length=100, null=True)),
+                ('template_id', models.CharField(blank=True, db_column='TEMPLATEID', max_length=200, null=True)),
+                ('vnf_id', models.CharField(blank=True, db_column='VNFID', max_length=200, null=True)),
+                ('package_id', models.CharField(blank=True, db_column='PACKAGEID', max_length=200, null=True)),
+                ('vnfm_inst_id', models.CharField(blank=True, db_column='VNFMINSTID', max_length=200, null=True)),
+                ('ns_inst_id', models.CharField(blank=True, db_column='NSINSTID', max_length=200, null=True)),
+                ('status', models.CharField(blank=True, db_column='STATUS', max_length=20, null=True)),
+                ('flavour_id', models.CharField(blank=True, db_column='FLAVOURID', max_length=200, null=True)),
+                ('vnf_level', models.CharField(blank=True, db_column='VNFLEVEL', max_length=200, null=True)),
+                ('location', models.CharField(blank=True, db_column='LOCATION', max_length=200, null=True)),
+                ('max_vm', models.IntegerField(db_column='MAXVM', null=True)),
+                ('max_cpu', models.IntegerField(db_column='MAXCPU', null=True)),
+                ('max_ram', models.IntegerField(db_column='MAXRAM', null=True)),
+                ('max_hd', models.IntegerField(db_column='MAXHD', null=True)),
+                ('max_shd', models.IntegerField(db_column='MAXSHD', null=True)),
+                ('max_net', models.IntegerField(db_column='MAXNET', null=True)),
+                ('version', models.CharField(db_column='VERSION', max_length=255, null=True)),
+                ('vendor', models.CharField(blank=True, db_column='VENDOR', max_length=255, null=True)),
+                ('vnfd_model', models.TextField(blank=True, db_column='VNFDMODEL', max_length=20000, null=True)),
+                ('input_params', models.TextField(blank=True, db_column='INPUTPARAMS', max_length=2000, null=True)),
+                ('scale_params', models.TextField(blank=True, db_column='SCALEPARAMS', max_length=2000, null=True)),
+                ('create_time', models.CharField(blank=True, db_column='CREATETIME', max_length=200, null=True)),
+                ('lastuptime', models.CharField(blank=True, db_column='LASTUPTIME', max_length=200, null=True)),
+                ('extension', models.TextField(blank=True, db_column='EXTENSION', max_length=65535, null=True)),
             ],
             options={
                 'db_table': 'NFVO_NFINST',
@@ -160,14 +158,14 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='NfPackageModel',
             fields=[
-                ('uuid', models.CharField(db_column=b'UUID', max_length=255, primary_key=True, serialize=False)),
-                ('nfpackageid', models.CharField(db_column=b'NFPACKAGEID', max_length=200)),
-                ('vnfdid', models.CharField(db_column=b'VNFDID', max_length=255)),
-                ('vendor', models.CharField(db_column=b'VENDOR', max_length=255)),
-                ('vnfdversion', models.CharField(db_column=b'VNFDVERSION', max_length=255)),
-                ('vnfversion', models.CharField(db_column=b'VNFVERSION', max_length=255)),
-                ('vnfdmodel', models.TextField(blank=True, db_column=b'VNFDMODEL', max_length=65535, null=True)),
-                ('vnfd_path', models.CharField(blank=True, db_column=b'VNFDPATH', max_length=300, null=True)),
+                ('uuid', models.CharField(db_column='UUID', max_length=255, primary_key=True, serialize=False)),
+                ('nfpackageid', models.CharField(db_column='NFPACKAGEID', max_length=200)),
+                ('vnfdid', models.CharField(db_column='VNFDID', max_length=255)),
+                ('vendor', models.CharField(db_column='VENDOR', max_length=255)),
+                ('vnfdversion', models.CharField(db_column='VNFDVERSION', max_length=255)),
+                ('vnfversion', models.CharField(db_column='VNFVERSION', max_length=255)),
+                ('vnfdmodel', models.TextField(blank=True, db_column='VNFDMODEL', max_length=65535, null=True)),
+                ('vnfd_path', models.CharField(blank=True, db_column='VNFDPATH', max_length=300, null=True)),
             ],
             options={
                 'db_table': 'NFVO_NFPACKAGE',
@@ -176,14 +174,14 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='NSDModel',
             fields=[
-                ('id', models.CharField(db_column=b'ID', max_length=200, primary_key=True, serialize=False)),
-                ('nsd_id', models.CharField(db_column=b'NSDID', max_length=200)),
-                ('name', models.CharField(db_column=b'NAME', max_length=200)),
-                ('vendor', models.CharField(blank=True, db_column=b'VENDOR', max_length=200, null=True)),
-                ('description', models.CharField(blank=True, db_column=b'DESCRIPTION', max_length=200, null=True)),
-                ('version', models.CharField(blank=True, db_column=b'VERSION', max_length=200, null=True)),
-                ('nsd_model', models.TextField(blank=True, db_column=b'NSDMODEL', max_length=65535, null=True)),
-                ('nsd_path', models.CharField(blank=True, db_column=b'NSDPATH', max_length=300, null=True)),
+                ('id', models.CharField(db_column='ID', max_length=200, primary_key=True, serialize=False)),
+                ('nsd_id', models.CharField(db_column='NSDID', max_length=200)),
+                ('name', models.CharField(db_column='NAME', max_length=200)),
+                ('vendor', models.CharField(blank=True, db_column='VENDOR', max_length=200, null=True)),
+                ('description', models.CharField(blank=True, db_column='DESCRIPTION', max_length=200, null=True)),
+                ('version', models.CharField(blank=True, db_column='VERSION', max_length=200, null=True)),
+                ('nsd_model', models.TextField(blank=True, db_column='NSDMODEL', max_length=65535, null=True)),
+                ('nsd_path', models.CharField(blank=True, db_column='NSDPATH', max_length=300, null=True)),
             ],
             options={
                 'db_table': 'NFVO_NSPACKAGE',
@@ -192,23 +190,23 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='NSInstModel',
             fields=[
-                ('id', models.CharField(db_column=b'ID', max_length=200, primary_key=True, serialize=False)),
-                ('name', models.CharField(db_column=b'NAME', max_length=200)),
-                ('nspackage_id', models.CharField(blank=True, db_column=b'NSPACKAGEID', max_length=200, null=True)),
-                ('nsd_id', models.CharField(db_column=b'NSDID', max_length=200)),
-                ('nsd_invariant_id', models.CharField(db_column=b'NSDINVARIANTID', max_length=200)),
-                ('description', models.CharField(blank=True, db_column=b'DESCRIPTION', max_length=255, null=True)),
-                ('sdncontroller_id', models.CharField(blank=True, db_column=b'SDNCONTROLLERID', max_length=200, null=True)),
-                ('flavour_id', models.CharField(blank=True, db_column=b'FLAVOURID', max_length=200, null=True)),
-                ('ns_level', models.CharField(blank=True, db_column=b'NSLEVEL', max_length=200, null=True)),
-                ('status', models.CharField(blank=True, db_column=b'STATUS', max_length=200, null=True)),
-                ('nsd_model', models.TextField(blank=True, db_column=b'NSDMODEL', max_length=20000, null=True)),
-                ('input_params', models.TextField(blank=True, db_column=b'INPUTPARAMS', max_length=2000, null=True)),
-                ('scale_params', models.TextField(blank=True, db_column=b'SCALEPARAMS', max_length=2000, null=True)),
-                ('create_time', models.CharField(blank=True, db_column=b'CREATETIME', max_length=200, null=True)),
-                ('lastuptime', models.CharField(blank=True, db_column=b'LASTUPTIME', max_length=200, null=True)),
-                ('global_customer_id', models.CharField(blank=True, db_column=b'GLOBALCUSTOMERID', max_length=50, null=True)),
-                ('service_type', models.CharField(blank=True, db_column=b'SERVICETYPE', max_length=50, null=True)),
+                ('id', models.CharField(db_column='ID', max_length=200, primary_key=True, serialize=False)),
+                ('name', models.CharField(db_column='NAME', max_length=200)),
+                ('nspackage_id', models.CharField(blank=True, db_column='NSPACKAGEID', max_length=200, null=True)),
+                ('nsd_id', models.CharField(db_column='NSDID', max_length=200)),
+                ('nsd_invariant_id', models.CharField(db_column='NSDINVARIANTID', max_length=200)),
+                ('description', models.CharField(blank=True, db_column='DESCRIPTION', max_length=255, null=True)),
+                ('sdncontroller_id', models.CharField(blank=True, db_column='SDNCONTROLLERID', max_length=200, null=True)),
+                ('flavour_id', models.CharField(blank=True, db_column='FLAVOURID', max_length=200, null=True)),
+                ('ns_level', models.CharField(blank=True, db_column='NSLEVEL', max_length=200, null=True)),
+                ('status', models.CharField(blank=True, db_column='STATUS', max_length=200, null=True)),
+                ('nsd_model', models.TextField(blank=True, db_column='NSDMODEL', max_length=20000, null=True)),
+                ('input_params', models.TextField(blank=True, db_column='INPUTPARAMS', max_length=2000, null=True)),
+                ('scale_params', models.TextField(blank=True, db_column='SCALEPARAMS', max_length=2000, null=True)),
+                ('create_time', models.CharField(blank=True, db_column='CREATETIME', max_length=200, null=True)),
+                ('lastuptime', models.CharField(blank=True, db_column='LASTUPTIME', max_length=200, null=True)),
+                ('global_customer_id', models.CharField(blank=True, db_column='GLOBALCUSTOMERID', max_length=50, null=True)),
+                ('service_type', models.CharField(blank=True, db_column='SERVICETYPE', max_length=50, null=True)),
             ],
             options={
                 'db_table': 'NFVO_NSINST',
@@ -217,19 +215,19 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='NSLcmOpOccModel',
             fields=[
-                ('id', models.CharField(db_column=b'ID', max_length=255, primary_key=True, serialize=False)),
-                ('operation_state', models.CharField(db_column=b'OPERATIONSTATE', max_length=30)),
-                ('state_entered_time', models.CharField(db_column=b'STATEENTEREDTIME', max_length=30)),
-                ('start_time', models.CharField(db_column=b'STARTTIME', max_length=30)),
-                ('ns_instance_id', models.CharField(db_column=b'NSINSTANCEID', max_length=255)),
-                ('operation', models.CharField(db_column=b'OPERATION', max_length=30)),
-                ('is_automatic_invocation', models.CharField(db_column=b'ISAUTOMATICINVOCATION', max_length=5)),
-                ('operation_params', models.TextField(db_column=b'OPERATIONPARAMS')),
-                ('is_cancel_pending', models.CharField(db_column=b'ISCANCELPENDING', max_length=5)),
-                ('cancel_mode', models.TextField(db_column=b'CANCELMODE', null=True)),
-                ('error', models.TextField(db_column=b'ERROR', null=True)),
-                ('resource_changes', models.TextField(db_column=b'RESOURCECHANGES', null=True)),
-                ('links', models.TextField(db_column=b'LINKS')),
+                ('id', models.CharField(db_column='ID', max_length=255, primary_key=True, serialize=False)),
+                ('operation_state', models.CharField(db_column='OPERATIONSTATE', max_length=30)),
+                ('state_entered_time', models.CharField(db_column='STATEENTEREDTIME', max_length=30)),
+                ('start_time', models.CharField(db_column='STARTTIME', max_length=30)),
+                ('ns_instance_id', models.CharField(db_column='NSINSTANCEID', max_length=255)),
+                ('operation', models.CharField(db_column='OPERATION', max_length=30)),
+                ('is_automatic_invocation', models.CharField(db_column='ISAUTOMATICINVOCATION', max_length=5)),
+                ('operation_params', models.TextField(db_column='OPERATIONPARAMS')),
+                ('is_cancel_pending', models.CharField(db_column='ISCANCELPENDING', max_length=5)),
+                ('cancel_mode', models.TextField(db_column='CANCELMODE', null=True)),
+                ('error', models.TextField(db_column='ERROR', null=True)),
+                ('resource_changes', models.TextField(db_column='RESOURCECHANGES', null=True)),
+                ('links', models.TextField(db_column='LINKS')),
             ],
             options={
                 'db_table': 'NSLCMOPOCCS',
@@ -238,15 +236,15 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='OOFDataModel',
             fields=[
-                ('request_id', models.CharField(db_column=b'REQUESTID', max_length=255)),
-                ('transaction_id', models.CharField(db_column=b'TRANSACTIONID', max_length=255)),
-                ('request_status', models.CharField(db_column=b'REQUESTSTATUS', max_length=50)),
-                ('request_module_name', models.CharField(db_column=b'RESOURCEMODULENAME', max_length=100)),
-                ('service_resource_id', models.CharField(db_column=b'SERVICERESOURCEID', max_length=255, primary_key=True, serialize=False)),
-                ('vim_id', models.CharField(blank=True, db_column=b'VIMID', max_length=255, null=True)),
-                ('cloud_owner', models.CharField(blank=True, db_column=b'CLOUDOWNER', max_length=100, null=True)),
-                ('cloud_region_id', models.CharField(blank=True, db_column=b'CLOUDREGIONID', max_length=255, null=True)),
-                ('vdu_info', models.TextField(blank=True, db_column=b'VDUINFO', max_length=65535, null=True)),
+                ('request_id', models.CharField(db_column='REQUESTID', max_length=255)),
+                ('transaction_id', models.CharField(db_column='TRANSACTIONID', max_length=255)),
+                ('request_status', models.CharField(db_column='REQUESTSTATUS', max_length=50)),
+                ('request_module_name', models.CharField(db_column='RESOURCEMODULENAME', max_length=100)),
+                ('service_resource_id', models.CharField(db_column='SERVICERESOURCEID', max_length=255, primary_key=True, serialize=False)),
+                ('vim_id', models.CharField(blank=True, db_column='VIMID', max_length=255, null=True)),
+                ('cloud_owner', models.CharField(blank=True, db_column='CLOUDOWNER', max_length=100, null=True)),
+                ('cloud_region_id', models.CharField(blank=True, db_column='CLOUDREGIONID', max_length=255, null=True)),
+                ('vdu_info', models.TextField(blank=True, db_column='VDUINFO', max_length=65535, null=True)),
             ],
             options={
                 'db_table': 'NFVO_OOF_DATA',
@@ -255,14 +253,14 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='PNFInstModel',
             fields=[
-                ('pnfId', models.CharField(db_column=b'PNFID', max_length=255, primary_key=True, serialize=False)),
-                ('pnfName', models.CharField(db_column=b'PNFNAME', max_length=255)),
-                ('pnfdId', models.CharField(db_column=b'PNFDID', max_length=50)),
-                ('pnfdInfoId', models.CharField(db_column=b'PNFDINFOID', max_length=100)),
-                ('pnfProfileId', models.CharField(db_column=b'PNFPROFILEID', max_length=255)),
-                ('cpInfo', models.TextField(blank=True, db_column=b'CPINFO', max_length=255, null=True)),
-                ('emsId', models.CharField(db_column=b'EMSID', max_length=255, null=True)),
-                ('nsInstances', models.TextField(blank=True, db_column=b'NSINSTANCES', max_length=1000, null=True)),
+                ('pnfId', models.CharField(db_column='PNFID', max_length=255, primary_key=True, serialize=False)),
+                ('pnfName', models.CharField(db_column='PNFNAME', max_length=255)),
+                ('pnfdId', models.CharField(db_column='PNFDID', max_length=50)),
+                ('pnfdInfoId', models.CharField(db_column='PNFDINFOID', max_length=100)),
+                ('pnfProfileId', models.CharField(db_column='PNFPROFILEID', max_length=255)),
+                ('cpInfo', models.TextField(blank=True, db_column='CPINFO', max_length=255, null=True)),
+                ('emsId', models.CharField(db_column='EMSID', max_length=255, null=True)),
+                ('nsInstances', models.TextField(blank=True, db_column='NSINSTANCES', max_length=1000, null=True)),
             ],
             options={
                 'db_table': 'NFVO_PNFINST',
@@ -271,24 +269,24 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='PortInstModel',
             fields=[
-                ('portid', models.CharField(db_column=b'PORTID', max_length=255, primary_key=True, serialize=False)),
-                ('networkid', models.CharField(db_column=b'NETWORKID', max_length=255)),
-                ('subnetworkid', models.CharField(db_column=b'SUBNETWORKID', max_length=255)),
-                ('vimid', models.CharField(db_column=b'VIMID', max_length=255)),
-                ('resourceid', models.CharField(db_column=b'RESOURCEID', max_length=255)),
-                ('name', models.CharField(db_column=b'NAME', max_length=255)),
-                ('instid', models.CharField(db_column=b'INSTID', max_length=255)),
-                ('cpinstanceid', models.CharField(db_column=b'CPINSTANCEID', max_length=255)),
-                ('bandwidth', models.CharField(db_column=b'BANDWIDTH', max_length=255)),
-                ('operationalstate', models.CharField(db_column=b'OPERATIONALSTATE', max_length=255)),
-                ('ipaddress', models.CharField(db_column=b'IPADDRESS', max_length=255)),
-                ('macaddress', models.CharField(db_column=b'MACADDRESS', max_length=255)),
-                ('floatipaddress', models.CharField(db_column=b'FLOATIPADDRESS', max_length=255)),
-                ('serviceipaddress', models.CharField(db_column=b'SERVICEIPADDRESS', max_length=255)),
-                ('typevirtualnic', models.CharField(db_column=b'TYPEVIRTUALNIC', max_length=255)),
-                ('sfcencapsulation', models.CharField(db_column=b'SFCENCAPSULATION', max_length=255)),
-                ('direction', models.CharField(db_column=b'DIRECTION', max_length=255)),
-                ('tenant', models.CharField(db_column=b'TENANT', max_length=255)),
+                ('portid', models.CharField(db_column='PORTID', max_length=255, primary_key=True, serialize=False)),
+                ('networkid', models.CharField(db_column='NETWORKID', max_length=255)),
+                ('subnetworkid', models.CharField(db_column='SUBNETWORKID', max_length=255)),
+                ('vimid', models.CharField(db_column='VIMID', max_length=255)),
+                ('resourceid', models.CharField(db_column='RESOURCEID', max_length=255)),
+                ('name', models.CharField(db_column='NAME', max_length=255)),
+                ('instid', models.CharField(db_column='INSTID', max_length=255)),
+                ('cpinstanceid', models.CharField(db_column='CPINSTANCEID', max_length=255)),
+                ('bandwidth', models.CharField(db_column='BANDWIDTH', max_length=255)),
+                ('operationalstate', models.CharField(db_column='OPERATIONALSTATE', max_length=255)),
+                ('ipaddress', models.CharField(db_column='IPADDRESS', max_length=255)),
+                ('macaddress', models.CharField(db_column='MACADDRESS', max_length=255)),
+                ('floatipaddress', models.CharField(db_column='FLOATIPADDRESS', max_length=255)),
+                ('serviceipaddress', models.CharField(db_column='SERVICEIPADDRESS', max_length=255)),
+                ('typevirtualnic', models.CharField(db_column='TYPEVIRTUALNIC', max_length=255)),
+                ('sfcencapsulation', models.CharField(db_column='SFCENCAPSULATION', max_length=255)),
+                ('direction', models.CharField(db_column='DIRECTION', max_length=255)),
+                ('tenant', models.CharField(db_column='TENANT', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_PORTINST',
@@ -297,14 +295,14 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='ServiceBaseInfoModel',
             fields=[
-                ('service_id', models.CharField(db_column=b'serviceId', max_length=255, primary_key=True, serialize=False)),
-                ('service_name', models.CharField(db_column=b'serviceName', max_length=255)),
-                ('service_type', models.CharField(db_column=b'serviceType', max_length=20)),
-                ('description', models.CharField(blank=True, db_column=b'description', max_length=255, null=True)),
-                ('active_status', models.CharField(db_column=b'activeStatus', max_length=20)),
-                ('status', models.CharField(db_column=b'status', max_length=20)),
-                ('creator', models.CharField(db_column=b'creator', max_length=50)),
-                ('create_time', models.BigIntegerField(db_column=b'createTime')),
+                ('service_id', models.CharField(db_column='serviceId', max_length=255, primary_key=True, serialize=False)),
+                ('service_name', models.CharField(db_column='serviceName', max_length=255)),
+                ('service_type', models.CharField(db_column='serviceType', max_length=20)),
+                ('description', models.CharField(blank=True, db_column='description', max_length=255, null=True)),
+                ('active_status', models.CharField(db_column='activeStatus', max_length=20)),
+                ('status', models.CharField(db_column='status', max_length=20)),
+                ('creator', models.CharField(db_column='creator', max_length=50)),
+                ('create_time', models.BigIntegerField(db_column='createTime')),
             ],
             options={
                 'db_table': 't_lcm_servicebaseinfo',
@@ -313,18 +311,18 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='SubscriptionModel',
             fields=[
-                ('subscription_id', models.CharField(db_column=b'SUBSCRIPTIONID', max_length=255, primary_key=True, serialize=False)),
-                ('vnf_instance_filter', models.TextField(db_column=b'VNFINSTANCEFILTER', null=True)),
-                ('ns_instance_filter', models.TextField(db_column=b'NSINSTANCEFILTER', null=True)),
-                ('notification_types', models.TextField(db_column=b'NOTIFICATIONTYPES', null=True)),
-                ('operation_types', models.TextField(db_column=b'OPERATIONTYPES', null=True)),
-                ('operation_states', models.TextField(db_column=b'OPERATIONSTATES', null=True)),
-                ('ns_component_types', models.TextField(db_column=b'NSCOMPONENTTYPES', null=True)),
-                ('lcm_opname_impacting_nscomponent', models.TextField(db_column=b'LCMOPNAMEIMPACTINGNSCOMPONENT', null=True)),
-                ('lcm_opoccstatus_impacting_nscomponent', models.TextField(db_column=b'LCMOPOCCSTATUSIMPACTINGNSCOMPONENT', null=True)),
-                ('callback_uri', models.CharField(db_column=b'CALLBACKURI', max_length=255)),
-                ('links', models.TextField(db_column=b'LINKS', max_length=20000)),
-                ('auth_info', models.TextField(blank=True, db_column=b'AUTHINFO', max_length=20000, null=True)),
+                ('subscription_id', models.CharField(db_column='SUBSCRIPTIONID', max_length=255, primary_key=True, serialize=False)),
+                ('vnf_instance_filter', models.TextField(db_column='VNFINSTANCEFILTER', null=True)),
+                ('ns_instance_filter', models.TextField(db_column='NSINSTANCEFILTER', null=True)),
+                ('notification_types', models.TextField(db_column='NOTIFICATIONTYPES', null=True)),
+                ('operation_types', models.TextField(db_column='OPERATIONTYPES', null=True)),
+                ('operation_states', models.TextField(db_column='OPERATIONSTATES', null=True)),
+                ('ns_component_types', models.TextField(db_column='NSCOMPONENTTYPES', null=True)),
+                ('lcm_opname_impacting_nscomponent', models.TextField(db_column='LCMOPNAMEIMPACTINGNSCOMPONENT', null=True)),
+                ('lcm_opoccstatus_impacting_nscomponent', models.TextField(db_column='LCMOPOCCSTATUSIMPACTINGNSCOMPONENT', null=True)),
+                ('callback_uri', models.CharField(db_column='CALLBACKURI', max_length=255)),
+                ('links', models.TextField(db_column='LINKS', max_length=20000)),
+                ('auth_info', models.TextField(blank=True, db_column='AUTHINFO', max_length=20000, null=True)),
             ],
             options={
                 'db_table': 'NFVO_SUBSCRIPTION',
@@ -333,17 +331,17 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='VLInstModel',
             fields=[
-                ('vlinstanceid', models.CharField(db_column=b'VLINSTANCEID', max_length=255, primary_key=True, serialize=False)),
-                ('vldid', models.CharField(db_column=b'VLDID', max_length=255)),
-                ('vlinstancename', models.CharField(blank=True, db_column=b'VLINSTANCENAME', max_length=255, null=True)),
-                ('ownertype', models.IntegerField(db_column=b'OWNERTYPE')),
-                ('ownerid', models.CharField(db_column=b'OWNERID', max_length=255)),
-                ('relatednetworkid', models.CharField(blank=True, db_column=b'RELATEDNETWORKID', max_length=255, null=True)),
-                ('relatedsubnetworkid', models.CharField(blank=True, db_column=b'RELATEDSUBNETWORKID', max_length=255, null=True)),
-                ('vltype', models.IntegerField(db_column=b'VLTYPE', default=0)),
-                ('vimid', models.CharField(db_column=b'VIMID', max_length=255)),
-                ('tenant', models.CharField(db_column=b'TENANT', max_length=255)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
+                ('vlinstanceid', models.CharField(db_column='VLINSTANCEID', max_length=255, primary_key=True, serialize=False)),
+                ('vldid', models.CharField(db_column='VLDID', max_length=255)),
+                ('vlinstancename', models.CharField(blank=True, db_column='VLINSTANCENAME', max_length=255, null=True)),
+                ('ownertype', models.IntegerField(db_column='OWNERTYPE')),
+                ('ownerid', models.CharField(db_column='OWNERID', max_length=255)),
+                ('relatednetworkid', models.CharField(blank=True, db_column='RELATEDNETWORKID', max_length=255, null=True)),
+                ('relatedsubnetworkid', models.CharField(blank=True, db_column='RELATEDSUBNETWORKID', max_length=255, null=True)),
+                ('vltype', models.IntegerField(db_column='VLTYPE', default=0)),
+                ('vimid', models.CharField(db_column='VIMID', max_length=255)),
+                ('tenant', models.CharField(db_column='TENANT', max_length=255)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_VLINST',
@@ -352,17 +350,17 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='VmInstModel',
             fields=[
-                ('vmid', models.CharField(db_column=b'VMID', max_length=255, primary_key=True, serialize=False)),
-                ('vimid', models.CharField(db_column=b'VIMID', max_length=255)),
-                ('resouceid', models.CharField(db_column=b'RESOURCEID', max_length=255)),
-                ('insttype', models.IntegerField(db_column=b'INSTTYPE', null=True)),
-                ('instid', models.CharField(db_column=b'INSTID', max_length=255, null=True)),
-                ('vmname', models.CharField(db_column=b'VMNAME', max_length=255)),
-                ('operationalstate', models.IntegerField(db_column=b'OPERATIONALSTATE', default=1)),
-                ('zoneid', models.CharField(db_column=b'ZONEID', max_length=255, null=True)),
-                ('tenant', models.CharField(db_column=b'TENANT', max_length=255, null=True)),
-                ('hostid', models.CharField(db_column=b'HOSTID', max_length=255)),
-                ('detailinfo', models.CharField(db_column=b'DETAILINFO', max_length=255, null=True)),
+                ('vmid', models.CharField(db_column='VMID', max_length=255, primary_key=True, serialize=False)),
+                ('vimid', models.CharField(db_column='VIMID', max_length=255)),
+                ('resouceid', models.CharField(db_column='RESOURCEID', max_length=255)),
+                ('insttype', models.IntegerField(db_column='INSTTYPE', null=True)),
+                ('instid', models.CharField(db_column='INSTID', max_length=255, null=True)),
+                ('vmname', models.CharField(db_column='VMNAME', max_length=255)),
+                ('operationalstate', models.IntegerField(db_column='OPERATIONALSTATE', default=1)),
+                ('zoneid', models.CharField(db_column='ZONEID', max_length=255, null=True)),
+                ('tenant', models.CharField(db_column='TENANT', max_length=255, null=True)),
+                ('hostid', models.CharField(db_column='HOSTID', max_length=255)),
+                ('detailinfo', models.CharField(db_column='DETAILINFO', max_length=255, null=True)),
             ],
             options={
                 'db_table': 'NFVO_VMINST',
@@ -371,11 +369,11 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='VNFCInstModel',
             fields=[
-                ('vnfcinstanceid', models.CharField(db_column=b'VNFCINSTANCEID', max_length=255, primary_key=True, serialize=False)),
-                ('vduid', models.CharField(db_column=b'VDUID', max_length=255)),
-                ('nfinstid', models.CharField(db_column=b'NFINSTID', max_length=255)),
-                ('vmid', models.CharField(db_column=b'VMID', max_length=255)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
+                ('vnfcinstanceid', models.CharField(db_column='VNFCINSTANCEID', max_length=255, primary_key=True, serialize=False)),
+                ('vduid', models.CharField(db_column='VDUID', max_length=255)),
+                ('nfinstid', models.CharField(db_column='NFINSTID', max_length=255)),
+                ('vmid', models.CharField(db_column='VMID', max_length=255)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_VNFCINST',
@@ -384,18 +382,18 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='VNFFGInstModel',
             fields=[
-                ('vnffgdid', models.CharField(db_column=b'VNFFGDID', max_length=255)),
-                ('vnffginstid', models.CharField(db_column=b'VNFFGINSTID', max_length=255, primary_key=True, serialize=False)),
-                ('nsinstid', models.CharField(db_column=b'NSINSTID', max_length=255)),
-                ('desc', models.CharField(blank=True, db_column=b'DESC', max_length=255, null=True)),
-                ('vendor', models.CharField(blank=True, db_column=b'VENDOR', max_length=255, null=True)),
-                ('version', models.CharField(blank=True, db_column=b'VERSION', max_length=255, null=True)),
-                ('endpointnumber', models.IntegerField(db_column=b'ENDPOINTNUMBER')),
-                ('vllist', models.CharField(db_column=b'VLLIST', max_length=1024)),
-                ('cplist', models.CharField(db_column=b'CPLIST', max_length=1024)),
-                ('vnflist', models.CharField(db_column=b'VNFLIST', max_length=1024)),
-                ('fplist', models.CharField(db_column=b'FPLIST', max_length=1024)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
+                ('vnffgdid', models.CharField(db_column='VNFFGDID', max_length=255)),
+                ('vnffginstid', models.CharField(db_column='VNFFGINSTID', max_length=255, primary_key=True, serialize=False)),
+                ('nsinstid', models.CharField(db_column='NSINSTID', max_length=255)),
+                ('desc', models.CharField(blank=True, db_column='DESC', max_length=255, null=True)),
+                ('vendor', models.CharField(blank=True, db_column='VENDOR', max_length=255, null=True)),
+                ('version', models.CharField(blank=True, db_column='VERSION', max_length=255, null=True)),
+                ('endpointnumber', models.IntegerField(db_column='ENDPOINTNUMBER')),
+                ('vllist', models.CharField(db_column='VLLIST', max_length=1024)),
+                ('cplist', models.CharField(db_column='CPLIST', max_length=1024)),
+                ('vnflist', models.CharField(db_column='VNFLIST', max_length=1024)),
+                ('fplist', models.CharField(db_column='FPLIST', max_length=1024)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_VNFFGINST',
@@ -404,16 +402,16 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='VnfPackageFileModel',
             fields=[
-                ('id', models.AutoField(db_column=b'ID', primary_key=True, serialize=False)),
-                ('vnfpid', models.CharField(db_column=b'NFPACKAGEID', max_length=50)),
-                ('filename', models.CharField(db_column=b'FILENAME', max_length=100)),
-                ('filetype', models.CharField(db_column=b'FILETYPE', max_length=2)),
-                ('imageid', models.CharField(db_column=b'IMAGEID', max_length=50)),
-                ('vimid', models.CharField(db_column=b'VIMID', max_length=50)),
-                ('vimuser', models.CharField(db_column=b'VIMUSER', max_length=50)),
-                ('tenant', models.CharField(db_column=b'TENANT', max_length=50)),
-                ('purpose', models.CharField(db_column=b'PURPOSE', max_length=1000)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=10)),
+                ('id', models.AutoField(db_column='ID', primary_key=True, serialize=False)),
+                ('vnfpid', models.CharField(db_column='NFPACKAGEID', max_length=50)),
+                ('filename', models.CharField(db_column='FILENAME', max_length=100)),
+                ('filetype', models.CharField(db_column='FILETYPE', max_length=2)),
+                ('imageid', models.CharField(db_column='IMAGEID', max_length=50)),
+                ('vimid', models.CharField(db_column='VIMID', max_length=50)),
+                ('vimuser', models.CharField(db_column='VIMUSER', max_length=50)),
+                ('tenant', models.CharField(db_column='TENANT', max_length=50)),
+                ('purpose', models.CharField(db_column='PURPOSE', max_length=1000)),
+                ('status', models.CharField(db_column='STATUS', max_length=10)),
             ],
             options={
                 'db_table': 'NFVO_NFPACKAGEFILE',
@@ -422,11 +420,11 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='WFPlanModel',
             fields=[
-                ('deployed_id', models.CharField(db_column=b'DEPLOYEDID', max_length=255, primary_key=True, serialize=False)),
-                ('process_id', models.CharField(db_column=b'PROCESSID', max_length=255)),
-                ('status', models.CharField(db_column=b'STATUS', max_length=255)),
-                ('message', models.CharField(db_column=b'MESSAGE', max_length=1024)),
-                ('plan_name', models.CharField(db_column=b'PLANNAME', max_length=255)),
+                ('deployed_id', models.CharField(db_column='DEPLOYEDID', max_length=255, primary_key=True, serialize=False)),
+                ('process_id', models.CharField(db_column='PROCESSID', max_length=255)),
+                ('status', models.CharField(db_column='STATUS', max_length=255)),
+                ('message', models.CharField(db_column='MESSAGE', max_length=1024)),
+                ('plan_name', models.CharField(db_column='PLANNAME', max_length=255)),
             ],
             options={
                 'db_table': 'NFVO_WF_PLAN',
index b1a3923..798a8ab 100644 (file)
@@ -19,7 +19,7 @@ logger = logging.getLogger(__name__)
 class BaseException(Exception):
     def __init__(self, message):
         super(BaseException, self).__init__(message)
-        logger.error(self.message)
+        logger.error(self.args[0])
 
 
 class BadRequestException(BaseException):
index fcb4855..7b04665 100644 (file)
@@ -55,7 +55,7 @@ def get_vim_by_id_vim_info(cloudowner, cloudregionid):
 
 def get_vim_by_id(vim_id):
     # cloud_owner, cloud_region = split_vim_to_owner_region(vim_id)
-    vim_id = json.JSONDecoder().decode(vim_id) if isinstance(vim_id, (str, unicode)) else vim_id
+    vim_id = json.JSONDecoder().decode(vim_id) if isinstance(vim_id, str) else vim_id
     cloud_owner = vim_id['cloud_owner']
     cloud_regionid = vim_id['cloud_regionid']
     ret = call_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s?depth=all"
index 1f394aa..11a772e 100644 (file)
@@ -24,9 +24,9 @@ VIM_DRIVER_BASE_URL = "api/multicloud/v0"
 
 
 def call(vim_id, tenant_id, res, method, data=''):
-    if data and not isinstance(data, (str, unicode)):
+    if data and not isinstance(data, str):
         data = json.JSONEncoder().encode(data)
-    vim_id = json.JSONDecoder().decode(vim_id) if isinstance(vim_id, (str, unicode)) else vim_id
+    vim_id = json.JSONDecoder().decode(vim_id) if isinstance(vim_id, str) else vim_id
     vim_id = "%s_%s" % (vim_id['cloud_owner'], vim_id['cloud_regionid'])
     url = "{base_url}/{vim_id}{tenant_id}/{res}".format(
         base_url=VIM_DRIVER_BASE_URL,
index 65944b5..1ad0a48 100644 (file)
@@ -63,11 +63,11 @@ class VimAdaptor:
             try:
                 self.authInfo = self.apiImpl.login(connectInfo)
             except VimException as e:
-                self.authInfo = [1, e.message]
-            except Exception as ex:
+                self.authInfo = [1, e.args[0]]
+            except Exception as e:
                 logger.error(traceback.format_exc())
                 logger.error(str(sys.exc_info()))
-                self.authInfo = [1, ex.message if ex.message else str(sys.exc_info())]
+                self.authInfo = [1, e.args[0] if e.args[0] else str(sys.exc_info())]
             except:
                 logger.error(traceback.format_exc())
                 self.authInfo = [1, str(sys.exc_info())]
diff --git a/lcm/pub/redisco/__init__.py b/lcm/pub/redisco/__init__.py
new file mode 100644 (file)
index 0000000..7d59d8d
--- /dev/null
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+
+import redis
+
+
+class Client(object):
+    def __init__(self, **kwargs):
+        self.connection_settings = kwargs or {'host': 'localhost', 'port': 6379, 'db': 0}
+
+    def redis(self):
+        return redis.Redis(**self.connection_settings)
+
+    def update(self, d):
+        self.connection_settings.update(d)
+
+
+def connection_setup(**kwargs):
+    global connection, client
+    if client:
+        client.update(kwargs)
+    else:
+        client = Client(**kwargs)
+    connection = client.redis()
+
+
+def get_client():
+    global connection
+    return connection
+
+
+client = Client()
+connection = client.redis()
+
+__all__ = ['connection_setup', 'get_client']
diff --git a/lcm/pub/redisco/containers.py b/lcm/pub/redisco/containers.py
new file mode 100644 (file)
index 0000000..0c194c7
--- /dev/null
@@ -0,0 +1,91 @@
+"""
+This module contains the container classes to create objects
+that persist directly in a Redis server.
+"""
+
+import collections
+from functools import partial
+
+
+class Container(object):
+    """Create a container object saved in Redis.
+
+    Arguments:
+        key -- the Redis key this container is stored at
+        db  -- the Redis client object. Default: None
+
+    When ``db`` is not set, the gets the default connection from
+    ``redisco.connection`` module.
+    """
+
+    def __init__(self, key, db=None, pipeline=None):
+        self._db = db
+        self.key = key
+        self.pipeline = pipeline
+
+    def clear(self):
+        """Remove container from Redis database."""
+        del self.db[self.key]
+
+    def __getattribute__(self, att):
+        if att in object.__getattribute__(self, 'DELEGATEABLE_METHODS'):
+            return partial(getattr(object.__getattribute__(self, 'db'), att), self.key)
+        else:
+            return object.__getattribute__(self, att)
+
+    @property
+    def db(self):
+        if self.pipeline:
+            return self.pipeline
+        if self._db:
+            return self._db
+        if hasattr(self, 'db_cache') and self.db_cache:
+            return self.db_cache
+        else:
+            from redisco import connection
+            self.db_cache = connection
+            return self.db_cache
+
+    DELEGATEABLE_METHODS = ()
+
+
+class Hash(Container, collections.MutableMapping):
+
+    def __getitem__(self, att):
+        return self.hget(att)
+
+    def __setitem__(self, att, val):
+        self.hset(att, val)
+
+    def __delitem__(self, att):
+        self.hdel(att)
+
+    def __len__(self):
+        return self.hlen()
+
+    def __iter__(self):
+        return self.hgetall().__iter__()
+
+    def __contains__(self, att):
+        return self.hexists(att)
+
+    def __repr__(self):
+        return "<%s '%s' %s>" % (self.__class__.__name__, self.key, self.hgetall())
+
+    def keys(self):
+        return self.hkeys()
+
+    def values(self):
+        return self.hvals()
+
+    def _get_dict(self):
+        return self.hgetall()
+
+    def _set_dict(self, new_dict):
+        self.clear()
+        self.update(new_dict)
+
+    dict = property(_get_dict, _set_dict)
+
+    DELEGATEABLE_METHODS = ('hlen', 'hset', 'hdel', 'hkeys', 'hgetall', 'hvals',
+                            'hget', 'hexists', 'hincrby', 'hmget', 'hmset')
index e06c16b..5b8f9bf 100644 (file)
@@ -18,4 +18,4 @@ def enum(**enums):
 
 
 def enum_to_list(e):
-    return [v for k, v in e.__dict__.iteritems() if not k.startswith("_")]
+    return [v for k, v in list(e.__dict__.items()) if not k.startswith("_")]
index 00f28d8..b938859 100644 (file)
@@ -15,7 +15,7 @@ import os
 import shutil
 import logging
 import traceback
-import urllib2
+from urllib.request import Request, urlopen
 import json
 
 logger = logging.getLogger(__name__)
@@ -32,7 +32,7 @@ def delete_dirs(path):
             shutil.rmtree(path)
     except Exception as e:
         logger.error(traceback.format_exc())
-        logger.error("Failed to delete %s:%s", path, e.message)
+        logger.error("Failed to delete %s:%s", path, e.args[0])
 
 
 def download_file_from_http(url, local_dir, file_name):
@@ -40,8 +40,8 @@ def download_file_from_http(url, local_dir, file_name):
     is_download_ok = False
     try:
         make_dirs(local_dir)
-        r = urllib2.Request(url)
-        req = urllib2.urlopen(r)
+        r = Request(url)
+        req = urlopen(r)
         save_file = open(local_file_name, 'wb')
         save_file.write(req.read())
         save_file.close()
index 85bebb8..4cbc2e4 100644 (file)
@@ -11,7 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-from redisco import containers as cont
+from lcm.pub.redisco import containers as cont
 
 
 def get_auto_id(id_type, id_group="auto_id_hash"):
index 113910c..3cc6ed4 100644 (file)
@@ -15,7 +15,9 @@
 import sys
 import traceback
 import logging
-import urllib2
+import urllib.request
+import urllib.error
+import urllib.parse
 import uuid
 import httplib2
 import requests
@@ -68,7 +70,7 @@ def call_req(base_url, user, passwd, auth_type, resource, method, content='', ad
                     ret = [1, "Unable to connect to %s" % full_url, resp_status, resp_Location]
                     continue
                 raise ex
-    except urllib2.URLError as err:
+    except urllib.error.URLError as err:
         ret = [2, str(err), resp_status, resp_Location]
     except Exception as ex:
         logger.error(traceback.format_exc())
index 4d50a33..5a2bc15 100644 (file)
 
 import unittest
 import mock
-import enumutil
-import fileutil
-import urllib2
-import syscomm
-import timeutil
-import values
+from . import enumutil
+from . import fileutil
+from urllib import request
+from . import syscomm
+from . import timeutil
+from . import values
 
 from lcm.pub.database.models import JobStatusModel, JobModel
 from lcm.pub.utils.jobutil import JobUtil
@@ -51,11 +51,11 @@ class UtilsTest(unittest.TestCase):
         fileutil.make_dirs(dirs)
         fileutil.delete_dirs(dirs)
 
-    @mock.patch.object(urllib2, 'urlopen')
+    @mock.patch.object(request, 'urlopen')
     def test_download_file_from_http(self, mock_urlopen):
         mock_urlopen.return_value = MockReq()
         fileutil.delete_dirs("abc")
-        is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt")
+        is_ok, f_name = fileutil.download_file_from_http("https://git.onap.org/vfc/nfvo/lcm/tree/version.properties", "abc", "1.txt")
         self.assertTrue(is_ok)
         self.assertTrue(f_name.endswith("1.txt"))
         fileutil.delete_dirs("abc")
index c2ce3c0..aaf5fad 100644 (file)
@@ -31,7 +31,7 @@ def ignore_case_get(args, key, def_val=""):
 def remove_none_key(data, none_list=None):
     none_list = none_list if none_list else [None, '', 'NULL', 'None', 'null', {}, '{}']
     if isinstance(data, dict):
-        data = dict([(k, remove_none_key(v)) for k, v in data.iteritems() if v not in none_list])
+        data = dict([(k, remove_none_key(v)) for k, v in list(data.items()) if v not in none_list])
     if isinstance(data, list):
         data = [remove_none_key(s) for s in data if s not in none_list]
     return data
@@ -45,7 +45,7 @@ def update_value(origin_data, new_data):
         origin_data = eval(str_data)
     logger.debug(isinstance(origin_data, dict))
     logger.debug(new_data)
-    for k, v in new_data.iteritems():
+    for k, v in list(new_data.items()):
         if k not in origin_data:
             origin_data[k] = v
         else:
index b5a5e15..18a5932 100644 (file)
@@ -16,7 +16,7 @@ import os
 import sys
 import platform
 
-import redisco
+import lcm.pub.redisco
 
 from lcm.pub.config.config import REDIS_HOST, REDIS_PORT, REDIS_PASSWD
 from lcm.pub.config.config import DB_NAME, DB_IP, DB_USER, DB_PASSWD, DB_PORT
@@ -51,9 +51,10 @@ INSTALLED_APPS = [
     'rest_framework',
     'lcm.pub.database',
     'lcm.swagger',
+    # 'django_nose',
     'drf_yasg'
 ]
-
+# TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
@@ -76,13 +77,13 @@ SWAGGER_SETTINGS = {
     'DEFAULT_INFO': 'lcm.swagger.urls.swagger_info'
 }
 
-MIDDLEWARE_CLASSES = [
+MIDDLEWARE = [
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'lcm.middleware.LogContextMiddleware',
@@ -122,7 +123,7 @@ DATABASES = {
 #    'NAME': 'D:/etsi-plug-test/db/nfvo',
 # }
 
-redisco.connection_setup(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWD, db=0)
+lcm.pub.redisco.connection_setup(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWD, db=0)
 # CACHE_BACKEND = 'redis_cache.cache://%s@%s:%s' % (REDIS_PASSWD, REDIS_HOST, REDIS_PORT)
 
 TIME_ZONE = 'UTC'
index 6caa7aa..d0ff37c 100644 (file)
@@ -33,4 +33,4 @@ class Command(BaseCommand):
         response = self.client.get("/api/nslcm/v1/swagger.json")
         with open(options['name'], 'w') as swagger_file:
             swagger_file.write(json.dumps(response.data))
-        print "swagger api is written to %s" % options['name']
+        print("swagger api is written to %s" % options['name'])
index 8006060..c508545 100644 (file)
@@ -88,14 +88,14 @@ def run_ns_instantiate(input_data, occ_id):
         NsLcmOpOcc.update(occ_id, "COMPLETED")
         ns_instantiate_ok = True
     except NSLCMException as e:
-        logger.error("Failded to Create NS: %s", e.message)
+        logger.error("Failded to Create NS: %s", e.args[0])
         update_job(job_id, JOB_ERROR, "255", "Failded to Create NS.")
-        NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.message)
+        NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.args[0])
         post_deal(ns_inst_id, "false")
     except Exception as e:
         logger.error(traceback.format_exc())
         update_job(job_id, JOB_ERROR, "255", "Failded to Create NS.")
-        NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.message)
+        NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.args[0])
         post_deal(ns_inst_id, "false")
     finally:
         g_jobs_status.pop(job_id)
@@ -283,7 +283,7 @@ def confirm_sfc_status(sfc_inst_id):
 def create_pnf(pnf_param_json):
     if pnf_param_json and len(pnf_param_json) > 0:
         pnfs = json.JSONDecoder().decode(pnf_param_json)
-        for pnf in pnfs.itervalues():
+        for pnf in list(pnfs.values()):
             uri = "/api/nslcm/v1/pnfs"
             method = "POST"
             content = json.JSONEncoder().encode(pnf["input"]["content"])
index 334eea6..7ef5b38 100644 (file)
@@ -24,7 +24,7 @@ class Graph(object):
     def __init__(self, graph_dict=None):
         self.graph = OrderedDict()
         if graph_dict:
-            for node, dep_nodes in graph_dict.iteritems():
+            for node, dep_nodes in list(graph_dict.items()):
                 self.add_node(node, dep_nodes)
 
     def add_node(self, node, dep_nodes):
@@ -66,7 +66,7 @@ class Graph(object):
 
     def to_dict(self):
         dict = {}
-        for node, dependents in self.graph.iteritems():
+        for node, dependents in list(self.graph.items()):
             dict[node] = []
             for dep in dependents:
                 dict[node].append(dep)
index 757be89..74a3f48 100644 (file)
@@ -39,7 +39,7 @@ def load_class(imp_module, imp_class):
 
 def load_class_from_config(config):
     class_set = {}
-    for k, v in config.iteritems():
+    for k, v in list(config.items()):
         imp_module = load_module(v["module"])
         cls = load_class(imp_module, v["class"])
         class_set[k] = cls
index f0c2cd6..3dee2e7 100644 (file)
@@ -50,7 +50,7 @@ class TaskManager(object):
     def is_all_task_finished(self, task_key_set=None):
         states = []
         if not task_key_set:
-            task_key_set = self.task_set.keys()
+            task_key_set = list(self.task_set.keys())
         total = len(task_key_set)
         for key in task_key_set:
             if key in self.task_set:
@@ -65,7 +65,7 @@ class TaskManager(object):
     def wait_tasks_done(self, task_key_set=None):
         if task_key_set:
             for key in task_key_set:
-                if key in self.task_set.keys():
+                if key in list(self.task_set.keys()):
                     task = self.task_set[key]
                     logger.debug("current wait task %s, endtime %s, status %s" % (task.key, task.endtime, task.status))
                     while task.endtime >= datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') and task.status in [STARTED, PROCESSING]:
@@ -74,7 +74,7 @@ class TaskManager(object):
                         task.status = ERROR
                     logger.debug("wait task final status %s" % task.status)
         else:
-            for task in self.task_set.itervalues():
+            for task in list(self.task_set.values()):
                 while task.endtime >= datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') and task.status in [STARTED, PROCESSING]:
                     time.sleep(1)
                 if task.status in [STARTED, PROCESSING]:
index af0aab2..716253c 100644 (file)
@@ -28,7 +28,7 @@ config = {
 
 class test(object):
     def execute(self, args):
-        print "test args %s" % args
+        print("test args %s" % args)
 
 
 class GraphFlowTest(unittest.TestCase):
@@ -66,7 +66,7 @@ class GraphFlowTest(unittest.TestCase):
         gf.join()
         gf.task_manager.wait_tasks_done(gf.sort_nodes)
         task_set = gf.task_manager.get_all_task()
-        for task in task_set.itervalues():
+        for task in list(task_set.values()):
             self.assertEqual(task.FINISHED, task.status)
 
     def test_async_task(self):
@@ -97,7 +97,7 @@ class GraphFlowTest(unittest.TestCase):
         gf.join()
         gf.task_manager.wait_tasks_done(gf.sort_nodes)
         task_set = gf.task_manager.get_all_task()
-        for task in task_set.itervalues():
+        for task in list(task_set.values()):
             self.assertEqual(task.FINISHED, task.status)
 
     @mock.patch.object(restcall, 'call_req')
@@ -136,5 +136,5 @@ class GraphFlowTest(unittest.TestCase):
         gf.join()
         gf.task_manager.wait_tasks_done(gf.sort_nodes)
         task_set = gf.task_manager.get_all_task()
-        for task in task_set.itervalues():
+        for task in list(task_set.values()):
             self.assertEqual(task.FINISHED, task.status)
index a5d12c9..fde62fb 100644 (file)
@@ -1,6 +1,6 @@
 # rest framework
-Django==1.11.9
-djangorestframework==3.7.7
+Django==2.1.4
+djangorestframework==3.9.4
 
 # for access MySQL
 PyMySQL==0.9.3
@@ -9,7 +9,7 @@ PyMySQL==0.9.3
 redis==2.10.5
 
 # for access redis cache
-redisco==0.1.4
+redisco==0.1.4
 django-redis-cache==0.13.1
 
 # for call rest api
@@ -17,7 +17,7 @@ httplib2==0.12.3
 
 # for unit test
 coverage==4.2
-mock==2.0.0
+mock==3.0.5
 unittest_xml_reporting==1.12.0
 
 # for parser
@@ -33,7 +33,7 @@ flex>=6.11.1
 swagger-spec-validator>=2.1.0
 
 # for onap logging
-onappylog>=1.0.6
+onappylog==1.0.9
 
 # uwsgi for parallel processing
-uwsgi
+uwsgi
diff --git a/tox.ini b/tox.ini
index f0b29e8..cd62443 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py27,pep8,cov
+envlist = py36,pep8,cov
 skipsdist = true
 
 [tox:jenkins]
@@ -18,9 +18,10 @@ commands = coverage run --branch manage.py test lcm
 deps = flake8
 commands = flake8
 
-[testenv:py27]
+[testenv:py36]
 commands =
   {[testenv]commands}
 
 [testenv:cov]
+deps = coverage
 commands = coverage xml --omit="*test_*,*__init__.py,*site-packages*"