From fb75c2fc16491340e32cebf36a361f3e36b2b901 Mon Sep 17 00:00:00 2001 From: Lianhao Lu Date: Fri, 29 Nov 2019 14:49:50 +0800 Subject: Fix pep8 error and warnings Change-Id: Ic32eefcfd4be4d57c9cf30eff0b3fa1aa730d2c0 Issue-ID: VNFSDK-532 Signed-off-by: Lianhao Lu --- vnfsdk_pkgtools/cli/__main__.py | 19 ++++++------ vnfsdk_pkgtools/packager/csar.py | 2 +- vnfsdk_pkgtools/packager/manifest.py | 36 ++++++++++++---------- vnfsdk_pkgtools/packager/toscameta.py | 31 +++++++++---------- vnfsdk_pkgtools/packager/utils.py | 20 ++++++------ vnfsdk_pkgtools/validator/__init__.py | 3 +- vnfsdk_pkgtools/validator/toscaparser_validator.py | 14 ++++----- vnfsdk_pkgtools/validator/utils.py | 8 ++--- vnfsdk_pkgtools/version.py | 2 +- vnfsdk_pkgtools/vnfreq/__init__.py | 3 +- vnfsdk_pkgtools/vnfreq/pkg_reqs.py | 10 ++---- 11 files changed, 69 insertions(+), 79 deletions(-) (limited to 'vnfsdk_pkgtools') diff --git a/vnfsdk_pkgtools/cli/__main__.py b/vnfsdk_pkgtools/cli/__main__.py index c5653d7..d51c029 100644 --- a/vnfsdk_pkgtools/cli/__main__.py +++ b/vnfsdk_pkgtools/cli/__main__.py @@ -17,7 +17,6 @@ import sys import logging import argparse -import os import shutil import tempfile @@ -32,15 +31,17 @@ from vnfsdk_pkgtools import vnfreq def csar_create_func(namespace): csar.write(namespace.source, - namespace.entry, - namespace.destination, - args=namespace) + namespace.entry, + namespace.destination, + args=namespace) + def csar_open_func(namespace): csar.read(namespace.source, namespace.destination, namespace.no_verify_cert) + def csar_validate_func(namespace): workdir = tempfile.mkdtemp() try: @@ -68,10 +69,10 @@ def parse_args(args_list): """ parser = argparse.ArgumentParser(description='VNF SDK CSAR manipulation tool') parser.add_argument('-v', '--verbose', - dest='verbosity', - action='count', - default=0, - help='Set verbosity level (can be passed multiple times)') + dest='verbosity', + action='count', + default=0, + help='Set verbosity level (can be passed multiple times)') subparsers = parser.add_subparsers(help='csar-create') csar_create = subparsers.add_parser('csar-create') @@ -116,7 +117,6 @@ def parse_args(args_list): action='store_true', help='Generate SOL004 v2.4.1 csar for backward compatilibity') - csar_open = subparsers.add_parser('csar-open') csar_open.set_defaults(func=csar_open_func) csar_open.add_argument( @@ -131,7 +131,6 @@ def parse_args(args_list): action='store_true', help="Do NOT verify the signer's certificate") - csar_validate = subparsers.add_parser('csar-validate') csar_validate.set_defaults(func=csar_validate_func) csar_validate.add_argument( diff --git a/vnfsdk_pkgtools/packager/csar.py b/vnfsdk_pkgtools/packager/csar.py index 3b4cec6..f4dc7a5 100644 --- a/vnfsdk_pkgtools/packager/csar.py +++ b/vnfsdk_pkgtools/packager/csar.py @@ -15,11 +15,11 @@ import logging import os -import pprint import tempfile import zipfile import requests +from ruamel import yaml from vnfsdk_pkgtools.packager import manifest from vnfsdk_pkgtools.packager import toscameta diff --git a/vnfsdk_pkgtools/packager/manifest.py b/vnfsdk_pkgtools/packager/manifest.py index a518f31..b6d01f6 100644 --- a/vnfsdk_pkgtools/packager/manifest.py +++ b/vnfsdk_pkgtools/packager/manifest.py @@ -22,18 +22,20 @@ import udatetime from vnfsdk_pkgtools.packager import utils -METADATA_KEYS = [ 'vnf_provider_id', - 'vnf_product_name', - 'vnf_release_date_time', - 'vnf_package_version'] -DIGEST_KEYS = [ 'Source', 'Algorithm', 'Hash' ] +METADATA_KEYS = ['vnf_provider_id', + 'vnf_product_name', + 'vnf_release_date_time', + 'vnf_package_version'] +DIGEST_KEYS = ['Source', 'Algorithm', 'Hash'] SUPPORTED_HASH_ALGO = ['SHA-256', 'SHA-512'] NON_MANO_ARTIFACT_RE = re.compile(r'^[0-9a-z_-]+(\.[0-9a-z_-]+)*:$') + class ManifestException(Exception): pass + class Manifest(object): ' Manifest file in CSAR package' def __init__(self, root_path, manifest_path, sol241=False): @@ -49,17 +51,17 @@ class Manifest(object): # non_mano_artifact dict # :key = set identifier # :value = list of files - self.sol241=sol241 + self.sol241 = sol241 self.non_mano_artifacts = {} - self.blocks = [ ] + self.blocks = [] self._split_blocks() self._parse_all_blocks() @staticmethod def __split_line(s): - remain=s + remain = s try: - (key, value)=s.split(':', 1) + (key, value) = s.split(':', 1) value = value.strip() remain = None except ValueError: @@ -72,7 +74,7 @@ class Manifest(object): Split manifest file into blocks, each block is seperated by a empty line or a line with only spaces and tabs. ''' - block_content = [ ] + block_content = [] with open(os.path.join(self.root, self.path), 'rU') as fp: for line in fp: line = line.strip(' \t\n') @@ -106,11 +108,11 @@ class Manifest(object): if key in METADATA_KEYS: self.metadata[key] = value elif key == 'vnf_release_data_time': - #sol004 v2.4.1 compatibility + # sol004 v2.4.1 compatibility self.metadata['vnf_release_date_time'] = value else: raise ManifestException("Unrecognized metadata %s:" % line) - #validate metadata keys + # validate metadata keys missing_keys = set(METADATA_KEYS) - set(self.metadata.keys()) if missing_keys: raise ManifestException("Missing metadata keys: %s" % ','.join(missing_keys)) @@ -119,7 +121,7 @@ class Manifest(object): udatetime.from_string(self.metadata['vnf_release_date_time']) except ValueError: raise ManifestException("Incorrect IETF RFC 3339 vnf_release_date_time: %s" - % self.metadata['vnf_release_date_time']) + % self.metadata['vnf_release_date_time']) def parse_cms(self, lines): if '--END CMS--' not in lines[-1]: @@ -138,12 +140,12 @@ class Manifest(object): if key == 'Source': self.digests[value] = (None, None) elif key == 'Algorithm': - #validate algorithm + # validate algorithm desc['Algorithm'] = desc['Algorithm'].upper() if desc['Algorithm'] not in SUPPORTED_HASH_ALGO: raise ManifestException("Unsupported hash algorithm: %s" % desc['Algorithm']) - #validate hash + # validate hash if desc.get('Algorithm') and desc.get('Hash') and desc.get('Source'): hash = utils.cal_file_hash(self.root, desc['Source'], desc['Algorithm']) if hash != desc['Hash']: @@ -213,7 +215,7 @@ class Manifest(object): # empty line between digest and signature section ret += "\n" # signature - if self.signature: + if self.signature: ret += self.signature return ret @@ -242,7 +244,7 @@ class Manifest(object): elif not skip: lines.append(line) content = ''.join(lines) - tmpfile = tempfile.NamedTemporaryFile(mode='w',delete=False) + tmpfile = tempfile.NamedTemporaryFile(mode='w', delete=False) tmpfile.write(content) tmpfile.close() return tmpfile.name diff --git a/vnfsdk_pkgtools/packager/toscameta.py b/vnfsdk_pkgtools/packager/toscameta.py index fc51f3c..9e304b0 100644 --- a/vnfsdk_pkgtools/packager/toscameta.py +++ b/vnfsdk_pkgtools/packager/toscameta.py @@ -19,7 +19,7 @@ import logging import os import pprint -from ruamel import yaml # @UnresolvedImport +from ruamel import yaml import six from vnfsdk_pkgtools.packager import utils @@ -49,11 +49,11 @@ class ToscaMeta(object): META_ENTRY_TESTS_DIR_KEY = 'ETSI-Entry-Tests' META_ENTRY_LICENSES_DIR_KEY = 'ETSI-Entry-Licenses' META_ENTRY_CERT_FILE_KEY = 'ETSI-Entry-Certificate' - REQUIRED_KEYS = [ META_FILE_VERSION_KEY, META_CSAR_VERSION_KEY, - META_CREATED_BY_KEY, META_ENTRY_DEFINITIONS_KEY, - META_ENTRY_MANIFEST_FILE_KEY, META_ENTRY_HISTORY_FILE_KEY, - META_ENTRY_LICENSES_DIR_KEY, - ] + REQUIRED_KEYS = [ + META_FILE_VERSION_KEY, META_CSAR_VERSION_KEY, + META_CREATED_BY_KEY, META_ENTRY_DEFINITIONS_KEY, + META_ENTRY_MANIFEST_FILE_KEY, META_ENTRY_HISTORY_FILE_KEY, + META_ENTRY_LICENSES_DIR_KEY, ] OPTIONAL_KEYS = [META_ENTRY_TESTS_DIR_KEY, META_ENTRY_CERT_FILE_KEY] def __init__(self, base_dir, entry, manifest=None, changelog=None, @@ -95,8 +95,8 @@ class ToscaMeta(object): metadata.get(META_ENTRY_DEFINITIONS_KEY)) try: with open(entry_file) as f: - v = yaml.safe_load(f)['tosca_definitions_version'] - except: + yaml.safe_load(f)['tosca_definitions_version'] + except Exception: raise ValueError('Entry file {} is not a valid tosca simple yaml file'.format(entry_file)) if metadata.get(self.META_ENTRY_MANIFEST_FILE_KEY): @@ -180,13 +180,13 @@ class ToscaMeta241(ToscaMeta): META_ENTRY_TESTS_DIR_KEY = 'Entry-Tests' META_ENTRY_LICENSES_DIR_KEY = 'Entry-Licenses' META_ENTRY_CERT_FILE_KEY = 'Entry-Certificate' - REQUIRED_KEYS = [ META_FILE_VERSION_KEY, META_CSAR_VERSION_KEY, - META_CREATED_BY_KEY, META_ENTRY_DEFINITIONS_KEY, - ] - OPTIONAL_KEYS = [ META_ENTRY_MANIFEST_FILE_KEY, META_ENTRY_HISTORY_FILE_KEY, - META_ENTRY_LICENSES_DIR_KEY, META_ENTRY_TESTS_DIR_KEY, - META_ENTRY_CERT_FILE_KEY, - ] + REQUIRED_KEYS = [ + META_FILE_VERSION_KEY, META_CSAR_VERSION_KEY, + META_CREATED_BY_KEY, META_ENTRY_DEFINITIONS_KEY, ] + OPTIONAL_KEYS = [ + META_ENTRY_MANIFEST_FILE_KEY, META_ENTRY_HISTORY_FILE_KEY, + META_ENTRY_LICENSES_DIR_KEY, META_ENTRY_TESTS_DIR_KEY, + META_ENTRY_CERT_FILE_KEY, ] class ToscaMeta261(ToscaMeta): @@ -219,4 +219,3 @@ def create_from_file(base_dir): meta_file_version=metadata.get(META_FILE_VERSION_KEY), meta_csar_version=metadata.get(META_CSAR_VERSION_KEY), meta_created_by=metadata.get(META_CREATED_BY_KEY)) - diff --git a/vnfsdk_pkgtools/packager/utils.py b/vnfsdk_pkgtools/packager/utils.py index 539a242..5624287 100644 --- a/vnfsdk_pkgtools/packager/utils.py +++ b/vnfsdk_pkgtools/packager/utils.py @@ -75,7 +75,7 @@ def cal_file_hash(root, path, algo): def _run_cmd(cmd, **kwargs): if isinstance(cmd, list): args = cmd - elif isinstance(cmd, string): + elif isinstance(cmd, str): args = [cmd] else: raise RuntimeError("cmd must be string or list") @@ -96,11 +96,10 @@ def _run_cmd(cmd, **kwargs): def sign(msg_file, cert_file, key_file): args = ["openssl", "cms", "-sign", "-binary"] kwargs = { - '-in': os.path.abspath(msg_file), - '-signer': os.path.abspath(cert_file), - '-inkey': os.path.abspath(key_file), - '-outform': 'PEM', - } + '-in': os.path.abspath(msg_file), + '-signer': os.path.abspath(cert_file), + '-inkey': os.path.abspath(key_file), + '-outform': 'PEM', } return _run_cmd(args, **kwargs) @@ -114,9 +113,8 @@ def verify(msg_file, cert_file, cms, no_verify_cert=False): f.write(cms) f.flush() kwargs = { - '-in': f.name, - '-inform': 'PEM', - '-content': os.path.abspath(msg_file), - '-certfile': os.path.abspath(cert_file), - } + '-in': f.name, + '-inform': 'PEM', + '-content': os.path.abspath(msg_file), + '-certfile': os.path.abspath(cert_file), } return _run_cmd(args, **kwargs) diff --git a/vnfsdk_pkgtools/validator/__init__.py b/vnfsdk_pkgtools/validator/__init__.py index c072543..269627a 100644 --- a/vnfsdk_pkgtools/validator/__init__.py +++ b/vnfsdk_pkgtools/validator/__init__.py @@ -18,9 +18,9 @@ import abc import six from stevedore import driver - NS = "vnfsdk.pkgtools.validator" + def get_validator(params): """Get validate driver and load it. @@ -40,7 +40,6 @@ class ValidatorBase(object): def __init__(self): self.tosca = None - @abc.abstractmethod def validate(self, reader): """Validate the csar package. diff --git a/vnfsdk_pkgtools/validator/toscaparser_validator.py b/vnfsdk_pkgtools/validator/toscaparser_validator.py index d1ccd9a..851effb 100644 --- a/vnfsdk_pkgtools/validator/toscaparser_validator.py +++ b/vnfsdk_pkgtools/validator/toscaparser_validator.py @@ -49,7 +49,7 @@ class ToscaparserValidator(validator.ValidatorBase): self.hpa_schema_version = defs.get('metadata', {}).get('version') self.hpa_schemas = defs.get('schemas', {}) self.hpa_mappings = defs.get('mappings', []) - #validate schema defined in hpa.yaml is correct + # validate schema defined in hpa.yaml is correct if not self.hpa_schema_version: msg = "No defined version in metadata" raise HpaSchemaDefError(msg) @@ -64,9 +64,9 @@ class ToscaparserValidator(validator.ValidatorBase): def validate(self, reader): entry_path = os.path.join(reader.destination, - reader.entry_definitions) + reader.entry_definitions) try: - #TODO set debug_mode due to upstream bug + # TODO set debug_mode due to upstream bug # https://jira.opnfv.org/browse/PARSER-181 self.tosca = ToscaTemplate(path=entry_path, no_required_paras_check=True, @@ -126,10 +126,10 @@ class ToscaparserValidator(validator.ValidatorBase): for (key, hpa_value) in six.iteritems(value): if key not in hpa_schema: msg = "node %s: %s is NOT a valid HPA key" - raise HpaValueError(msg % (refkey, key)) + raise HpaValueError(msg % (refkey, key)) try: hpa_dict = json.loads(hpa_value) - except: + except Exception: msg = "node %s, HPA key %s: %s is NOT a valid json encoded string" raise HpaValueError(msg % (refkey, key, hpa_value.encode('ascii', 'replace'))) if not isinstance(hpa_dict, dict): @@ -145,7 +145,7 @@ class ToscaparserValidator(validator.ValidatorBase): attr_schema = hpa_schema[key][attr] if not re.match(attr_schema, str(val)): msg = ("node %s, HPA key %s, attr %s: %s is not a valid HPA " - "attr value, expected re pattern is %s") + "attr value, expected re pattern is %s") raise HpaValueError(msg % (refkey, key, attr, val.encode('ascii', 'replace'), attr_schema)) def validate_hpa_value(self, refkey, hpa_schema, values): @@ -167,5 +167,3 @@ class ToscaparserValidator(validator.ValidatorBase): self.validate_hpa_value(refkey, self.hpa_schemas[mapping['schema']], value) - - diff --git a/vnfsdk_pkgtools/validator/utils.py b/vnfsdk_pkgtools/validator/utils.py index b26a290..32575a2 100644 --- a/vnfsdk_pkgtools/validator/utils.py +++ b/vnfsdk_pkgtools/validator/utils.py @@ -36,10 +36,10 @@ def load_definitions(config_file, defaults=None): if hasattr(err, 'problem_mark'): mark = err.problem_mark errmsg = ("Invalid YAML syntax in Definitions file %(file)s " - "at line: %(line)s, column: %(column)s." % - dict(file=config_file, - line=mark.line + 1, - column=mark.column + 1)) + "at line: %(line)s, column: %(column)s." % + dict(file=config_file, + line=mark.line + 1, + column=mark.column + 1)) else: errmsg = ("YAML error reading Definitions file %s" % config_file) LOG.error(errmsg) diff --git a/vnfsdk_pkgtools/version.py b/vnfsdk_pkgtools/version.py index 00126b7..a2b63ea 100644 --- a/vnfsdk_pkgtools/version.py +++ b/vnfsdk_pkgtools/version.py @@ -1,3 +1,3 @@ global __version__ -__version__='1.4.0pre' +__version__ = '1.4.0pre' diff --git a/vnfsdk_pkgtools/vnfreq/__init__.py b/vnfsdk_pkgtools/vnfreq/__init__.py index 4c27495..70e3294 100644 --- a/vnfsdk_pkgtools/vnfreq/__init__.py +++ b/vnfsdk_pkgtools/vnfreq/__init__.py @@ -20,9 +20,9 @@ import prettytable import six from stevedore import driver - NS = "vnfsdk.pkgtools.vnfreq" + def get_vnfreq_tester(name): """Get vnf requirement tester. @@ -87,4 +87,3 @@ class TesterBase(object): self.err = self._do_check(reader, tosca) except Exception as e: self.err = e - diff --git a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py index 4744eac..cf880e4 100644 --- a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py +++ b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py @@ -13,14 +13,11 @@ # under the License. # -import abc import os import six -from stevedore import driver from vnfsdk_pkgtools.packager import toscameta -from vnfsdk_pkgtools.validator import toscaparser_validator as tv from vnfsdk_pkgtools import vnfreq @@ -90,7 +87,7 @@ class R26881(vnfreq.TesterBase): if file and \ os.path.isfile(os.path.join(entry_path, file)) or \ os.path.isfile(os.path.join(reader.destination, file)): - valid_artifacts.append(file) + valid_artifacts.append(file) if not valid_artifacts: raise vnfreq.VnfRequirementError("No valid binaries or images for VNF instantion found") return 0 @@ -111,9 +108,8 @@ class R35851(vnfreq.TesterBase): for node in getattr(tosca.tosca, 'nodetemplates', []): if tosca.is_type(node, 'tosca.nodes.nfv.VduCp') or \ tosca.is_type(node, 'tosca.nodes.nfv.VnfVirtualLink'): - found = True - break + found = True + break if not found: raise vnfreq.VnfRequirementError("No basic network or application connectivity found") return 0 - -- cgit