diff options
Diffstat (limited to 'genericparser/packages')
26 files changed, 130 insertions, 129 deletions
diff --git a/genericparser/packages/biz/nsdm_subscription.py b/genericparser/packages/biz/nsdm_subscription.py index 9bfe5aa..dfcd2ec 100644 --- a/genericparser/packages/biz/nsdm_subscription.py +++ b/genericparser/packages/biz/nsdm_subscription.py @@ -73,7 +73,7 @@ class NsdmSubscription: query_data = {} logger.debug("Start QueryMultiSubscriptions get --> " "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 const.NSDM_NOTIFICATION_FILTERS and value: query_data[query + '__icontains'] = json.dumps(list(set(value))) # Query the database with filters if the request @@ -103,8 +103,9 @@ class NsdmSubscription: def fill_resp_data(self, subscription): subscription_filter = dict() for filter_type in const.NSDM_NOTIFICATION_FILTERS: - subscription_filter[filter_type] = \ - ast.literal_eval(subscription.__dict__[filter_type]) + if subscription.__dict__[filter_type]: + subscription_filter[filter_type] = \ + ast.literal_eval(subscription.__dict__[filter_type]) resp_data = { 'id': subscription.subscriptionid, 'callbackUri': subscription.callback_uri, @@ -156,17 +157,17 @@ class NsdmSubscription: raise NsdmBadRequestException('Auth type should ' 'be ' + const.OAUTH2_CLIENT_CREDENTIALS) if const.BASIC in self.authentication.get("authType", '') and \ - "paramsBasic" in self.authentication.keys() and \ - not is_filter_type_equal(PARAMSBASICKEYS, - self.authentication.get("paramsBasic").keys()): + "paramsBasic" in list(self.authentication.keys()) and \ + not is_filter_type_equal(PARAMSBASICKEYS, list( + self.authentication.get("paramsBasic").keys())): raise NsdmBadRequestException('userName and password needed ' 'for ' + const.BASIC) if const.OAUTH2_CLIENT_CREDENTIALS in \ self.authentication.get("authType", '') and \ "paramsOauth2ClientCredentials" in \ - self.authentication.keys() and \ - not is_filter_type_equal(PARAMSOAUTH2CLIENTCREDENTIALSKEYS, - self.authentication.get("paramsOauth2ClientCredentials").keys()): + list(self.authentication.keys()) and \ + not is_filter_type_equal(PARAMSOAUTH2CLIENTCREDENTIALSKEYS, list( + self.authentication.get("paramsOauth2ClientCredentials").keys())): raise NsdmBadRequestException('clientId, clientPassword and ' 'tokenEndpoint required ' 'for ' + const.OAUTH2_CLIENT_CREDENTIALS) @@ -210,7 +211,8 @@ class NsdmSubscription: "links": json.dumps(links) } for filter_type in const.NSDM_NOTIFICATION_FILTERS: - subscription_save_db[filter_type] = json.dumps( - list(set(self.filter.get(filter_type, [])))) + if self.filter: + subscription_save_db[filter_type] = json.dumps( + list(set(self.filter.get(filter_type, [])))) NsdmSubscriptionModel.objects.create(**subscription_save_db) logger.debug('Create Subscription[%s] success', self.subscription_id) diff --git a/genericparser/packages/biz/pnf_descriptor.py b/genericparser/packages/biz/pnf_descriptor.py index d29a2ad..561c8fa 100644 --- a/genericparser/packages/biz/pnf_descriptor.py +++ b/genericparser/packages/biz/pnf_descriptor.py @@ -221,8 +221,8 @@ class PnfDescriptor(object): csar_path = pnf_pkg[0].localFilePath ret = {"model": toscaparsers.parse_pnfd(csar_path, inputs)} except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) - return [1, e.message] + logger.error(e.args[0]) + return [1, e.args[0]] return [0, ret] diff --git a/genericparser/packages/biz/sdc_ns_package.py b/genericparser/packages/biz/sdc_ns_package.py index 42346ff..63a077f 100644 --- a/genericparser/packages/biz/sdc_ns_package.py +++ b/genericparser/packages/biz/sdc_ns_package.py @@ -43,7 +43,7 @@ def ns_on_distribute(csar_id): ret = NsPackage().on_distribute(csar_id) except GenericparserException as e: NsPackage().delete_csar(csar_id) - return fmt_ns_pkg_rsp(STATUS_FAILED, e.message) + return fmt_ns_pkg_rsp(STATUS_FAILED, e.args[0]) except: logger.error(traceback.format_exc()) NsPackage().delete_csar(csar_id) @@ -58,7 +58,7 @@ def ns_delete_csar(csar_id): try: ret = NsPackage().delete_csar(csar_id) except GenericparserException as e: - return fmt_ns_pkg_rsp(STATUS_FAILED, e.message) + return fmt_ns_pkg_rsp(STATUS_FAILED, e.args[0]) except: logger.error(traceback.format_exc()) return fmt_ns_pkg_rsp(STATUS_FAILED, str(sys.exc_info())) @@ -70,7 +70,7 @@ def ns_get_csars(): try: ret = NsPackage().get_csars() except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except: logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] @@ -82,9 +82,9 @@ def ns_get_csar(csar_id): try: ret = NsPackage().get_csar(csar_id) except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] return ret @@ -99,9 +99,9 @@ def parse_nsd(csar_id, inputs): csar_path = ns_pkg[0].localFilePath ret = {"model": toscaparsers.parse_nsd(csar_path, inputs)} except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] return [0, ret] diff --git a/genericparser/packages/biz/sdc_service_package.py b/genericparser/packages/biz/sdc_service_package.py index 0390b5c..281dd17 100644 --- a/genericparser/packages/biz/sdc_service_package.py +++ b/genericparser/packages/biz/sdc_service_package.py @@ -106,9 +106,9 @@ class ServicePackage(object): ret = {"model": toscaparsers.parse_sd(csar_path, inputs)} return ret except GenericparserException as e: - logger.error(e.message) + logger.error(e.args[0]) raise e except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) raise e diff --git a/genericparser/packages/biz/sdc_vnf_package.py b/genericparser/packages/biz/sdc_vnf_package.py index 5028709..3a271b7 100644 --- a/genericparser/packages/biz/sdc_vnf_package.py +++ b/genericparser/packages/biz/sdc_vnf_package.py @@ -39,9 +39,9 @@ def nf_get_csars(): try: ret = NfPackage().get_csars() except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] return ret @@ -52,9 +52,9 @@ def nf_get_csar(csar_id): try: ret = NfPackage().get_csar(csar_id) except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] return ret @@ -69,9 +69,9 @@ def parse_vnfd(csar_id, inputs): csar_path = nf_pkg[0].localFilePath ret = {"model": toscaparsers.parse_vnfd(csar_path, inputs)} except GenericparserException as e: - return [1, e.message] + return [1, e.args[0]] except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) return [1, str(sys.exc_info())] return [0, ret] @@ -96,9 +96,9 @@ class NfDistributeThread(threading.Thread): self.on_distribute() except GenericparserException as e: self.rollback_distribute() - JobUtil.add_job_status(self.job_id, JOB_ERROR, e.message) + JobUtil.add_job_status(self.job_id, JOB_ERROR, e.args[0]) except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) logger.error(str(sys.exc_info())) self.rollback_distribute() @@ -162,7 +162,7 @@ class NfDistributeThread(threading.Thread): VnfPackageModel.objects.filter(vnfPackageId=self.csar_id).delete() fileutil.delete_dirs(self.csar_save_path) except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) logger.error(str(sys.exc_info())) @@ -181,9 +181,9 @@ class NfPkgDeleteThread(threading.Thread): try: self.delete_csar() except GenericparserException as e: - JobUtil.add_job_status(self.job_id, JOB_ERROR, e.message) + JobUtil.add_job_status(self.job_id, JOB_ERROR, e.args[0]) except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) logger.error(str(sys.exc_info())) JobUtil.add_job_status(self.job_id, JOB_ERROR, "Failed to delete CSAR(%s)" % self.csar_id) diff --git a/genericparser/packages/biz/vnf_package.py b/genericparser/packages/biz/vnf_package.py index 7186082..cf67a76 100644 --- a/genericparser/packages/biz/vnf_package.py +++ b/genericparser/packages/biz/vnf_package.py @@ -18,7 +18,7 @@ import os import sys import threading import traceback -import urllib2 +import urllib import uuid from genericparser.packages.biz.common import parse_file_range, read, save @@ -139,9 +139,9 @@ class VnfPkgUploadThread(threading.Thread): self.upload_vnf_pkg_from_uri() parse_vnfd_and_save(self.vnf_pkg_id, self.upload_file_name) except GenericparserException as e: - logger.error(e.message) + logger.error(e.args[0]) except Exception as e: - logger.error(e.message) + logger.error(e.args[0]) logger.error(traceback.format_exc()) logger.error(str(sys.exc_info())) @@ -154,14 +154,13 @@ class VnfPkgUploadThread(threading.Thread): vnf_pkg.update(onboardingState=PKG_STATUS.UPLOADING) uri = ignore_case_get(self.data, "addressInformation") - request = urllib2.Request(uri) - response = urllib2.urlopen(request) + response = urllib.request.urlopen(uri) local_file_dir = os.path.join(GENERICPARSER_ROOT_PATH, self.vnf_pkg_id) self.upload_file_name = os.path.join(local_file_dir, os.path.basename(uri)) if not os.path.exists(local_file_dir): fileutil.make_dirs(local_file_dir) - with open(self.upload_file_name, "wb") as local_file: + with open(self.upload_file_name, "wt") as local_file: local_file.write(response.read()) response.close() logger.info('VNF packge(%s) has been uploaded.' % self.vnf_pkg_id) diff --git a/genericparser/packages/biz/vnf_pkg_artifacts.py b/genericparser/packages/biz/vnf_pkg_artifacts.py index 3a54f02..0cec274 100644 --- a/genericparser/packages/biz/vnf_pkg_artifacts.py +++ b/genericparser/packages/biz/vnf_pkg_artifacts.py @@ -36,7 +36,7 @@ class FetchVnfPkgArtifact(object): artifact_path = fileutil.get_artifact_path(vnf_extract_path, artifactPath) if not artifact_path: raise ArtifactNotFoundException("Couldn't artifact %s" % artifactPath) - with open(artifact_path, 'rb') as f: + with open(artifact_path, 'rt') as f: file_content = f.read() else: raise ArtifactNotFoundException("NF Package format is not csar or zip") diff --git a/genericparser/packages/biz/vnf_pkg_subscription.py b/genericparser/packages/biz/vnf_pkg_subscription.py index 29f202f..8da82ad 100644 --- a/genericparser/packages/biz/vnf_pkg_subscription.py +++ b/genericparser/packages/biz/vnf_pkg_subscription.py @@ -152,7 +152,7 @@ class QuerySubscription(object): query_data = {} logger.debug("QuerySubscription--get--multi--subscriptions--biz::> Check " "for filters in query params %s" % params) - for query, value in params.iteritems(): + for query, value in list(params.items()): if query in ROOT_FILTERS: query_data[ROOT_FILTERS[query] + '__icontains'] = value # Query the database with filters if the request has fields in request params, else fetch all records diff --git a/genericparser/packages/serializers/nsd_info.py b/genericparser/packages/serializers/nsd_info.py index 2206f46..9450582 100644 --- a/genericparser/packages/serializers/nsd_info.py +++ b/genericparser/packages/serializers/nsd_info.py @@ -13,8 +13,8 @@ # limitations under the License. from rest_framework import serializers -from problem_details import ProblemDetailsSerializer -from link import LinkSerializer +from .problem_details import ProblemDetailsSerializer +from .link import LinkSerializer class _LinkSerializer(serializers.Serializer): diff --git a/genericparser/packages/serializers/nsd_infos.py b/genericparser/packages/serializers/nsd_infos.py index f8ad029..d63c332 100644 --- a/genericparser/packages/serializers/nsd_infos.py +++ b/genericparser/packages/serializers/nsd_infos.py @@ -13,7 +13,7 @@ # limitations under the License. from rest_framework import serializers -from nsd_info import NsdInfoSerializer +from .nsd_info import NsdInfoSerializer class NsdInfosSerializer(serializers.ListSerializer): diff --git a/genericparser/packages/serializers/nsdm_subscription.py b/genericparser/packages/serializers/nsdm_subscription.py index dabd606..87aa48d 100644 --- a/genericparser/packages/serializers/nsdm_subscription.py +++ b/genericparser/packages/serializers/nsdm_subscription.py @@ -14,9 +14,9 @@ from rest_framework import serializers -from link import LinkSerializer -from subscription_auth_data import SubscriptionAuthenticationSerializer -from nsdm_filter_data import NsdmNotificationsFilter +from .link import LinkSerializer +from .subscription_auth_data import SubscriptionAuthenticationSerializer +from .nsdm_filter_data import NsdmNotificationsFilter class NsdmSubscriptionLinkSerializer(serializers.Serializer): diff --git a/genericparser/packages/serializers/pnfd_info.py b/genericparser/packages/serializers/pnfd_info.py index c49ce38..f9f4b6b 100644 --- a/genericparser/packages/serializers/pnfd_info.py +++ b/genericparser/packages/serializers/pnfd_info.py @@ -13,8 +13,8 @@ # limitations under the License. from rest_framework import serializers -from problem_details import ProblemDetailsSerializer -from link import LinkSerializer +from .problem_details import ProblemDetailsSerializer +from .link import LinkSerializer class _LinkSerializer(serializers.Serializer): diff --git a/genericparser/packages/serializers/pnfd_infos.py b/genericparser/packages/serializers/pnfd_infos.py index 4509fc2..0874c9e 100644 --- a/genericparser/packages/serializers/pnfd_infos.py +++ b/genericparser/packages/serializers/pnfd_infos.py @@ -13,7 +13,7 @@ # limitations under the License. from rest_framework import serializers -from pnfd_info import PnfdInfoSerializer +from .pnfd_info import PnfdInfoSerializer class PnfdInfosSerializer(serializers.ListSerializer): diff --git a/genericparser/packages/serializers/vnf_pkg_artifact_info.py b/genericparser/packages/serializers/vnf_pkg_artifact_info.py index d5592ec..c63b3c2 100644 --- a/genericparser/packages/serializers/vnf_pkg_artifact_info.py +++ b/genericparser/packages/serializers/vnf_pkg_artifact_info.py @@ -13,7 +13,7 @@ # limitations under the License. from rest_framework import serializers -from checksum import ChecksumSerializer +from .checksum import ChecksumSerializer class VnfPackageArtifactInfoSerializer(serializers.Serializer): diff --git a/genericparser/packages/serializers/vnf_pkg_info.py b/genericparser/packages/serializers/vnf_pkg_info.py index 0251bed..3fa4b17 100644 --- a/genericparser/packages/serializers/vnf_pkg_info.py +++ b/genericparser/packages/serializers/vnf_pkg_info.py @@ -13,10 +13,10 @@ # limitations under the License. from rest_framework import serializers -from checksum import ChecksumSerializer -from vnf_pkg_software_image_info import VnfPackageSoftwareImageInfoSerializer -from vnf_pkg_artifact_info import VnfPackageArtifactInfoSerializer -from link import LinkSerializer +from .checksum import ChecksumSerializer +from .vnf_pkg_software_image_info import VnfPackageSoftwareImageInfoSerializer +from .vnf_pkg_artifact_info import VnfPackageArtifactInfoSerializer +from .link import LinkSerializer class _LinkSerializer(serializers.Serializer): diff --git a/genericparser/packages/serializers/vnf_pkg_infos.py b/genericparser/packages/serializers/vnf_pkg_infos.py index d4cbc65..9ffd6f0 100644 --- a/genericparser/packages/serializers/vnf_pkg_infos.py +++ b/genericparser/packages/serializers/vnf_pkg_infos.py @@ -13,7 +13,7 @@ # limitations under the License. from rest_framework import serializers -from vnf_pkg_info import VnfPkgInfoSerializer +from .vnf_pkg_info import VnfPkgInfoSerializer class VnfPkgInfosSerializer(serializers.ListSerializer): diff --git a/genericparser/packages/serializers/vnf_pkg_software_image_info.py b/genericparser/packages/serializers/vnf_pkg_software_image_info.py index 7723ec0..790c61e 100644 --- a/genericparser/packages/serializers/vnf_pkg_software_image_info.py +++ b/genericparser/packages/serializers/vnf_pkg_software_image_info.py @@ -13,7 +13,7 @@ # limitations under the License. from rest_framework import serializers -from checksum import ChecksumSerializer +from .checksum import ChecksumSerializer class VnfPackageSoftwareImageInfoSerializer(serializers.Serializer): diff --git a/genericparser/packages/tests/test_ns_descriptor.py b/genericparser/packages/tests/test_ns_descriptor.py index 743e181..36933ac 100644 --- a/genericparser/packages/tests/test_ns_descriptor.py +++ b/genericparser/packages/tests/test_ns_descriptor.py @@ -177,9 +177,9 @@ class TestNsDescriptor(TestCase): userDefinedData=user_defined_data_json, ).save() - with open('nsd_content.txt', 'wb') as fp: + with open('nsd_content.txt', 'wt') as fp: fp.write('test') - with open('nsd_content.txt', 'rb') as fp: + with open('nsd_content.txt', 'rt') as fp: resp = self.client.put( "/api/nsd/v1/ns_descriptors/22/nsd_content", {'file': fp}, @@ -197,9 +197,9 @@ class TestNsDescriptor(TestCase): os.remove('nsd_content.txt') def test_nsd_content_upload_failure(self): - with open('nsd_content.txt', 'wb') as fp: + with open('nsd_content.txt', 'wt') as fp: fp.write('test') - with open('nsd_content.txt', 'rb') as fp: + with open('nsd_content.txt', 'rt') as fp: response = self.client.put( "/api/nsd/v1/ns_descriptors/22/nsd_content", {'file': fp}, @@ -207,7 +207,7 @@ class TestNsDescriptor(TestCase): self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) def test_nsd_content_download_normal(self): - with open('nsd_content.txt', 'wb') as fp: + with open('nsd_content.txt', 'wt') as fp: fp.writelines('test1') fp.writelines('test2') NSPackageModel.objects.create( @@ -222,7 +222,7 @@ class TestNsDescriptor(TestCase): for data in response.streaming_content: file_content = '%s%s' % (file_content, data) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual('test1test2', file_content) + self.assertEqual("b'test1test2'", file_content) os.remove('nsd_content.txt') def test_nsd_content_download_when_ns_not_exist(self): @@ -239,7 +239,7 @@ class TestNsDescriptor(TestCase): self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) def test_nsd_content_partial_download_normal(self): - with open('nsd_content.txt', 'wb') as fp: + with open('nsd_content.txt', 'wt') as fp: fp.writelines('test1') fp.writelines('test2') NSPackageModel( @@ -257,7 +257,7 @@ class TestNsDescriptor(TestCase): for data in response.streaming_content: partial_file_content = '%s%s' % (partial_file_content, data) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual('test2', partial_file_content) + self.assertEqual("b'test2'", partial_file_content) os.remove('nsd_content.txt') @mock.patch.object(NsDescriptor, 'create') @@ -288,9 +288,9 @@ class TestNsDescriptor(TestCase): @mock.patch.object(NsDescriptor, 'upload') def test_upload_when_catch_exception(self, mock_upload): mock_upload.side_effect = TypeError("integer type") - with open('nsd_content.txt', 'wb') as fp: + with open('nsd_content.txt', 'wt') as fp: fp.write('test') - with open('nsd_content.txt', 'rb') as fp: + with open('nsd_content.txt', 'rt') as fp: response = self.client.put("/api/nsd/v1/ns_descriptors/22/nsd_content", {'file': fp}) self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) os.remove('nsd_content.txt') diff --git a/genericparser/packages/tests/test_nsdm_subscription.py b/genericparser/packages/tests/test_nsdm_subscription.py index 151e8af..c6c194e 100644 --- a/genericparser/packages/tests/test_nsdm_subscription.py +++ b/genericparser/packages/tests/test_nsdm_subscription.py @@ -30,7 +30,6 @@ class TestNsdmSubscription(TestCase): NsdmSubscriptionModel.objects.all().delete() self.subscription_id = str(uuid.uuid4()) self.subscription = { - "filter": {}, "callbackUri": "http://callbackuri.com", "authentication": { "authType": ["BASIC"], @@ -38,6 +37,9 @@ class TestNsdmSubscription(TestCase): "userName": "username", "password": "password" } + }, + "filter": { + "nsdId": ["b632bddc-abcd-4180-bd8d-4e8a9578eff7"], } } self.links = { diff --git a/genericparser/packages/tests/test_pnf_descriptor.py b/genericparser/packages/tests/test_pnf_descriptor.py index 13645e8..770d74b 100644 --- a/genericparser/packages/tests/test_pnf_descriptor.py +++ b/genericparser/packages/tests/test_pnf_descriptor.py @@ -150,10 +150,10 @@ class TestPnfDescriptor(TestCase): userDefinedData=user_defined_data_json, ).save() mock_parse_pnfd.return_value = json.JSONEncoder().encode(pnfd_data) - with open('pnfd_content.txt', 'wb') as fp: + with open('pnfd_content.txt', 'wt') as fp: fp.write('test') - with open('pnfd_content.txt', 'rb') as fp: + with open('pnfd_content.txt', 'rt') as fp: resp = self.client.put( "/api/nsd/v1/pnf_descriptors/22/pnfd_content", {'file': fp}, @@ -166,10 +166,10 @@ class TestPnfDescriptor(TestCase): os.remove('pnfd_content.txt') def test_pnfd_content_upload_when_pnf_not_exist(self): - with open('pnfd_content.txt', 'wb') as fp: + with open('pnfd_content.txt', 'wt') as fp: fp.write('test') - with open('pnfd_content.txt', 'rb') as fp: + with open('pnfd_content.txt', 'rt') as fp: resp = self.client.put( "/api/nsd/v1/pnf_descriptors/22/pnfd_content", {'file': fp}, @@ -178,7 +178,7 @@ class TestPnfDescriptor(TestCase): @mock.patch.object(toscaparsers, "parse_pnfd") def test_pnfd_content_upload_when_pnfd_exist(self, mock_parse_pnfd): - with open('pnfd_content.txt', 'wb') as fp: + with open('pnfd_content.txt', 'wt') as fp: fp.write('test') PnfPackageModel( pnfPackageId='22', @@ -191,7 +191,7 @@ class TestPnfDescriptor(TestCase): pnfdId="zte-1.0" ).save() mock_parse_pnfd.return_value = json.JSONEncoder().encode(pnfd_data) - with open('pnfd_content.txt', 'rb') as fp: + with open('pnfd_content.txt', 'rt') as fp: resp = self.client.put( "/api/nsd/v1/pnf_descriptors/22/pnfd_content", {'file': fp}, @@ -199,7 +199,7 @@ class TestPnfDescriptor(TestCase): self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) def test_pnfd_download_normal(self): - with open('pnfd_content.txt', 'wb') as fp: + with open('pnfd_content.txt', 'wt') as fp: fp.writelines('test1') fp.writelines('test2') user_defined_data = json.JSONEncoder().encode(self.user_defined_data) @@ -216,7 +216,7 @@ class TestPnfDescriptor(TestCase): for data in resp.streaming_content: file_content = '%s%s' % (file_content, data) self.assertEqual(resp.status_code, status.HTTP_200_OK) - self.assertEqual('test1test2', file_content) + self.assertEqual("b'test1test2'", file_content) os.remove('pnfd_content.txt') def test_pnfd_download_failed(self): @@ -224,7 +224,7 @@ class TestPnfDescriptor(TestCase): self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) def test_pnfd_download_when_not_on_boarded(self): - with open('pnfd_content.txt', 'wb') as fp: + with open('pnfd_content.txt', 'wt') as fp: fp.writelines('test1') fp.writelines('test2') user_defined_data = json.JSONEncoder().encode(self.user_defined_data) diff --git a/genericparser/packages/tests/test_service_descriptor.py b/genericparser/packages/tests/test_service_descriptor.py index 0734577..59bffa8 100644 --- a/genericparser/packages/tests/test_service_descriptor.py +++ b/genericparser/packages/tests/test_service_descriptor.py @@ -92,4 +92,4 @@ class TestServiceDescription(TestCase): ServiceDescriptor().delete_single(csar_id) except Exception as e: self.assertTrue(isinstance(e, PackageNotFoundException)) - self.assertEqual("Service package[8000] not Found.", e.message) + self.assertEqual("Service package[8000] not Found.", e.args[0]) diff --git a/genericparser/packages/tests/test_servicepackage.py b/genericparser/packages/tests/test_servicepackage.py index 28fdcdb..f7ac8a5 100644 --- a/genericparser/packages/tests/test_servicepackage.py +++ b/genericparser/packages/tests/test_servicepackage.py @@ -261,7 +261,7 @@ class TestServicePackage(TestCase): try: ServicePackage().on_distribute(csar_id) except PackageHasExistsException as e: - self.assertEqual("Service CSAR(1) already exists.", e.message) + self.assertEqual("Service CSAR(1) already exists.", e.args[0]) @mock.patch.object(sdc, 'get_artifact') def test_service_pkg_distribute_when_fail_get_artifacts(self, mock_get_artifact): @@ -271,7 +271,7 @@ class TestServicePackage(TestCase): ServicePackage().on_distribute(csar_id) except Exception as e: self.assertTrue(isinstance(e, GenericparserException)) - self.assertEqual("Failed to query artifact(services,1) from sdc.", e.message) + self.assertEqual("Failed to query artifact(services,1) from sdc.", e.args[0]) @mock.patch.object(sdc, 'get_artifact') @mock.patch.object(sdc, 'download_artifacts') @@ -295,7 +295,7 @@ class TestServicePackage(TestCase): ServicePackage().on_distribute(csar_id) except Exception as e: self.assertTrue(isinstance(e, GenericparserException)) - self.assertEqual("Failed to download 1 from sdc.", e.message) + self.assertEqual("Failed to download 1 from sdc.", e.args[0]) @mock.patch.object(sdc, 'get_artifact') @mock.patch.object(sdc, 'download_artifacts') @@ -389,7 +389,7 @@ class TestServicePackage(TestCase): try: ServicePackage().get_csar(1000) except PackageNotFoundException as e: - self.assertEqual("Service package[1000] not Found.", e.message) + self.assertEqual("Service package[1000] not Found.", e.args[0]) def test_api_service_pkg_get_one(self): ServicePackageModel( @@ -423,7 +423,7 @@ class TestServicePackage(TestCase): try: ServicePackage().delete_csar("8000") except PackageNotFoundException as e: - self.assertEqual("Service package[8000] not Found.", e.message) + self.assertEqual("Service package[8000] not Found.", e.args[0]) def test_api_service_pkg_normal_delete(self): ServicePackageModel(servicePackageId="8", servicedId="2").save() @@ -447,7 +447,7 @@ class TestServicePackage(TestCase): inputs = [] ServicePackage().parse_serviced(csar_id, inputs) except PackageNotFoundException as e: - self.assertEqual("Service CSAR(8000) does not exist.", e.message) + self.assertEqual("Service CSAR(8000) does not exist.", e.args[0]) def test_api_service_pkg_parser_not_found(self): query_data = { diff --git a/genericparser/packages/tests/test_vnf_package.py b/genericparser/packages/tests/test_vnf_package.py index 99bdd5e..9b8d7fe 100644 --- a/genericparser/packages/tests/test_vnf_package.py +++ b/genericparser/packages/tests/test_vnf_package.py @@ -14,7 +14,7 @@ import json import os -import urllib2 +import urllib import mock import shutil @@ -49,7 +49,7 @@ class TestVnfPackage(TestCase): @mock.patch.object(toscaparsers, 'parse_vnfd') def test_upload_vnf_pkg(self, mock_parse_vnfd): - data = {'file': open(os.path.join(GENERICPARSER_ROOT_PATH, "empty.txt"), "rb")} + data = {'file': open(os.path.join(GENERICPARSER_ROOT_PATH, "empty.txt"), "rt")} VnfPackageModel.objects.create( vnfPackageId="222", onboardingState="CREATED" @@ -70,7 +70,7 @@ class TestVnfPackage(TestCase): self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) @mock.patch.object(toscaparsers, 'parse_vnfd') - @mock.patch.object(urllib2, 'urlopen') + @mock.patch.object(urllib.request, 'urlopen') def test_upload_nf_pkg_from_uri(self, mock_urlopen, mock_parse_vnfd): vnf_pkg = VnfPackageModel.objects.create( vnfPackageId="222", @@ -239,7 +239,7 @@ class TestVnfPackage(TestCase): self.assertEqual(response.data, None) def test_fetch_vnf_pkg(self): - with open("vnfPackage.csar", "wb") as fp: + with open("vnfPackage.csar", "wt") as fp: fp.writelines("AAAABBBBCCCCDDDD") VnfPackageModel.objects.create( vnfPackageId="222", @@ -249,13 +249,13 @@ class TestVnfPackage(TestCase): response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content") file_content = '' for data in response.streaming_content: - file_content = file_content + data + file_content = file_content + data.decode() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual('AAAABBBBCCCCDDDD', file_content) os.remove("vnfPackage.csar") def test_fetch_partical_vnf_pkg(self): - with open("vnfPackage.csar", "wb") as fp: + with open("vnfPackage.csar", "wt") as fp: fp.writelines("AAAABBBBCCCCDDDD") VnfPackageModel.objects.create( vnfPackageId="222", @@ -265,13 +265,13 @@ class TestVnfPackage(TestCase): response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content", HTTP_RANGE="4-7") partial_file_content = '' for data in response.streaming_content: - partial_file_content = partial_file_content + data + partial_file_content = partial_file_content.encode() + data self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual('BBB', partial_file_content) + self.assertEqual(b'BBB', partial_file_content) os.remove("vnfPackage.csar") def test_fetch_last_partical_vnf_pkg(self): - with open("vnfPackage.csar", "wb") as fp: + with open("vnfPackage.csar", "wt") as fp: fp.writelines("AAAABBBBCCCCDDDD") VnfPackageModel.objects.create( vnfPackageId="222", @@ -281,9 +281,9 @@ class TestVnfPackage(TestCase): response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content", HTTP_RANGE=" 4-") partial_file_content = '' for data in response.streaming_content: - partial_file_content = partial_file_content + data + partial_file_content = partial_file_content.encode() + data self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual('BBBBCCCCDDDD', partial_file_content) + self.assertEqual(b'BBBBCCCCDDDD', partial_file_content) os.remove("vnfPackage.csar") def test_fetch_vnf_pkg_when_pkg_not_exist(self): @@ -362,7 +362,7 @@ class TestVnfPackage(TestCase): self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED) response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/artifacts/image") self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.getvalue(), "ubuntu_16.04\n") + self.assertEqual(response.getvalue(), b"ubuntu_16.04\n") @mock.patch.object(toscaparsers, 'parse_vnfd') def test_fetch_vnf_artifact_not_exists(self, mock_parse_vnfd): diff --git a/genericparser/packages/views/catalog_views.py b/genericparser/packages/views/catalog_views.py index ed10e68..df3dfca 100644 --- a/genericparser/packages/views/catalog_views.py +++ b/genericparser/packages/views/catalog_views.py @@ -243,7 +243,7 @@ def servicepackages_rc(request, *args, **kwargs): return Response(data=csar_list, status=status.HTTP_200_OK) except Exception as e: error_status = status.HTTP_500_INTERNAL_SERVER_ERROR - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) elif request.method == 'POST': # Distributes the package according to the given csarId request_serializer = ServicePackageDistributeRequestSerializer(data=request.data) @@ -258,10 +258,10 @@ def servicepackages_rc(request, *args, **kwargs): return Response(status=status.HTTP_202_ACCEPTED) except PackageHasExistsException as e: error_status = status.HTTP_400_BAD_REQUEST - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) except Exception as e: error_status = status.HTTP_500_INTERNAL_SERVER_ERROR - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) @swagger_auto_schema( @@ -307,10 +307,10 @@ def service_rd_csar(request, *args, **kwargs): return Response(data=ret, status=status.HTTP_200_OK) except PackageNotFoundException as e: error_status = status.HTTP_404_NOT_FOUND - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) except Exception as e: error_status = status.HTTP_500_INTERNAL_SERVER_ERROR - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) elif request.method == 'DELETE': try: @@ -318,10 +318,10 @@ def service_rd_csar(request, *args, **kwargs): return Response(status=status.HTTP_204_NO_CONTENT) except PackageNotFoundException as e: error_status = status.HTTP_404_NOT_FOUND - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) except Exception as e: error_status = status.HTTP_500_INTERNAL_SERVER_ERROR - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) @swagger_auto_schema( @@ -420,10 +420,10 @@ def model_parser(request, *args, **kwargs): return Response(data=response_serializer.data, status=status.HTTP_202_ACCEPTED) except PackageNotFoundException as e: error_status = status.HTTP_404_NOT_FOUND - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) except Exception as e: error_status = status.HTTP_500_INTERNAL_SERVER_ERROR - return Response(data=fmt_error_rsp(e.message, error_status), status=error_status) + return Response(data=fmt_error_rsp(e.args[0], error_status), status=error_status) elif package_type.lower().__eq__("ns"): ret = sdc_ns_package.parse_nsd(csar_id, inputs) elif package_type.lower().__eq__("vnf"): diff --git a/genericparser/packages/views/common.py b/genericparser/packages/views/common.py index 41ba17c..efd045b 100644 --- a/genericparser/packages/views/common.py +++ b/genericparser/packages/views/common.py @@ -59,61 +59,61 @@ def view_safe_call_with_log(logger): try: return func(*args, **kwargs) except NsdmDuplicateSubscriptionException 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 VnfPkgDuplicateSubscriptionException 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 PackageNotFoundException 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_404_NOT_FOUND ) except ResourceNotFoundException 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_404_NOT_FOUND ) except ArtifactNotFoundException 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_404_NOT_FOUND ) 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 NsdmBadRequestException 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 VnfPkgSubscriptionException 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 GenericparserException 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', diff --git a/genericparser/packages/views/nsdm_subscription_views.py b/genericparser/packages/views/nsdm_subscription_views.py index cd80e6d..e0576c3 100644 --- a/genericparser/packages/views/nsdm_subscription_views.py +++ b/genericparser/packages/views/nsdm_subscription_views.py @@ -73,10 +73,8 @@ def nsd_subscription_rc(request): NsdmSubscriptionRequestSerializer) subscription = NsdmSubscription().create( nsdm_subscription_request.data) - subscription_resp = validate_data(subscription, - NsdmSubscriptionSerializer) - return Response(data=subscription_resp.data, - status=status.HTTP_201_CREATED) + validate_data(subscription, NsdmSubscriptionSerializer) + return Response(data=subscription, status=status.HTTP_201_CREATED) if request.method == 'GET': logger.debug("Subscription Notification GET %s" % request.query_params) |