aboutsummaryrefslogtreecommitdiffstats
path: root/sdv/valid
diff options
context:
space:
mode:
authorSridhar K. N. Rao <sridhar.rao@spirent.com>2021-09-20 12:45:42 +0530
committerSridhar K. N. Rao <sridhar.rao@spirent.com>2021-09-20 12:47:36 +0530
commitbfd37762bdf91a7f89d4ebc259454ddb2f5e7b3d (patch)
treedba519dd11f94e216079c65d43e4166cf8c5fe5a /sdv/valid
parent43c4b47a9e0d64ffdaa77a743f0be388f49eb558 (diff)
Cleanup-Update: Remove unused code and update PDF
This patch removes unused code and update the pdf. Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com> Change-Id: I9785c4301869f7b93ccad074cf0ad6ffc77724a0
Diffstat (limited to 'sdv/valid')
-rwxr-xr-xsdv/valid276
1 files changed, 0 insertions, 276 deletions
diff --git a/sdv/valid b/sdv/valid
deleted file mode 100755
index e06afdd..0000000
--- a/sdv/valid
+++ /dev/null
@@ -1,276 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright 2020 Spirent Communications
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-"""VALID main script.
-"""
-
-import logging
-import os
-import sys
-import argparse
-import time
-import datetime
-from conf import settings
-import core.component_factory as component_factory
-from core.loader import Loader
-
-VERBOSITY_LEVELS = {
- 'debug': logging.DEBUG,
- 'info': logging.INFO,
- 'warning': logging.WARNING,
- 'error': logging.ERROR,
- 'critical': logging.CRITICAL
-}
-
-_CURR_DIR = os.path.dirname(os.path.realpath(__file__))
-_LOGGER = logging.getLogger()
-
-def parse_arguments():
- """
- Parse command line arguments.
- """
- class _SplitValidationTypesAction(argparse.Action):
- """
- Parse and split '--test-params' arguments.
-
- This expects either a single list validation types
- e.g: --validation-type 'configuration, state'
- """
- def __call__(self, parser, namespace, values, option_string=None):
- values = values.strip()
- input_list = values.split(',')
- print(input_list)
- parameter_list = []
- for vtype in input_list:
- vtype = vtype.strip()
- if vtype:
- vtype = vtype.lower()
- parameter_list.append(str(vtype))
- # results = {'_PARAMS_LIST':parameter_list}
- setattr(namespace, self.dest, parameter_list)
-
- parser = argparse.ArgumentParser(prog=__file__, formatter_class=
- argparse.ArgumentDefaultsHelpFormatter)
- parser.add_argument('--version', action='version', version='%(prog)s 0.1')
- parser.add_argument('--list-validations', action='store_true',
- help='list all validations')
- parser.add_argument('--list-vurls', action='store_true',
- help='list all Software pre-dep Hyperlinks validations and exit')
- parser.add_argument('--list-vconfig', action='store_true',
- help='list all Software pre-dep Configuration validations and exit')
- parser.add_argument('--list-vstate', action='store_true',
- help='list all Software post-dep State validations and exit')
- parser.add_argument('--list-vsecurity', action='store_true',
- help='list all Software post-dep Security validations and exit')
- parser.add_argument('--list-vnwlinks', action='store_true',
- help='list all Network-Links validations and exit')
- parser.add_argument('--list-vresmod', action='store_true',
- help='list all Resource-Model validations and exit')
- parser.add_argument('--validation', action=_SplitValidationTypesAction,
- help='The type of Validation to perform - resmod, nwlinks,\
- urls, configuration, state, security')
- args = vars(parser.parse_args())
-
- return args
-
-
-def configure_logging(level):
- """Configure logging.
- """
- name, ext = os.path.splitext(settings.getValue('LOG_FILE_DEFAULT'))
- rename_default = "{name}_{uid}{ex}".format(name=name,
- uid=settings.getValue(
- 'LOG_TIMESTAMP'),
- ex=ext)
- log_file_default = os.path.join(
- settings.getValue('RESULTS_PATH'), rename_default)
- _LOGGER.setLevel(logging.DEBUG)
- stream_logger = logging.StreamHandler(sys.stdout)
- stream_logger.setLevel(VERBOSITY_LEVELS[level])
- stream_logger.setFormatter(logging.Formatter(
- '[%(levelname)-5s] %(asctime)s : (%(name)s) - %(message)s'))
- _LOGGER.addHandler(stream_logger)
- file_logger = logging.FileHandler(filename=log_file_default)
- file_logger.setLevel(logging.DEBUG)
- file_logger.setFormatter(logging.Formatter(
- '%(asctime)s : %(message)s'))
- _LOGGER.addHandler(file_logger)
-
-def handle_list_options(args):
- """ Process --list cli arguments if needed
-
- :param args: A dictionary with all CLI arguments
- """
- if args['list_vurls']:
- print(Loader().get_swpreurlsvalidators_printable())
- sys.exit(0)
-
- if args['list_vconfig']:
- print(Loader().get_swpreconfigvalidators_printable())
- sys.exit(0)
-
- if args['list_vstate']:
- print(Loader().get_swpoststatevalidators_printable())
- sys.exit(0)
-
- if args['list_vsecurity']:
- print(Loader().get_swpostsecurityvalidators_printable())
- sys.exit(0)
-
- if args['list_vnwlinks']:
- print(Loader().get_nwlinksvalidators_printable())
- sys.exit(0)
-
-
-# Sflo: questions/3041986/apt-command-line-interface-like-yes-no-input
-def sanity_check(question, default="yes"):
- """Ask a yes/no question via raw_input() and return their answer.
-
- "question" is a string that is presented to the user.
- "default" is the presumed answer if the user just hits <Enter>.
- It must be "yes" (the default), "no" or None (meaning
- an answer is required of the user).
-
- The "answer" return value is True for "yes" or False for "no".
- """
- valid = {"yes": True, "y": True, "ye": True,
- "no": False, "n": False}
- if default is None:
- prompt = " [y/n] "
- elif default == "yes":
- prompt = " [Y/n] "
- elif default == "no":
- prompt = " [y/N] "
- else:
- raise ValueError("invalid default answer: '%s'" % default)
-
- while True:
- sys.stdout.write(question + prompt)
- choice = input().lower()
- if default is not None and choice == '':
- return valid[default]
- elif choice in valid:
- return valid[choice]
- else:
- sys.stdout.write("Please respond with 'yes' or 'no' "
- "(or 'y' or 'n').\n")
-
-
-def main():
- """Main function.
- """
- args = parse_arguments()
-
- if not sanity_check("Have you configured the testcases ?"):
- print("Please configure testcases and rerun")
- sys.exit(1)
-
- print(args)
-
- # define the timestamp to be used by logs and results
- date = datetime.datetime.fromtimestamp(time.time())
- timestamp = date.strftime('%Y-%m-%d_%H-%M-%S')
- settings.setValue('LOG_TIMESTAMP', timestamp)
-
-
- # configure settings
- settings.load_from_dir(os.path.join(_CURR_DIR, 'conf'))
-
- # if required, handle list-* operations
- handle_list_options(args)
-
- results_dir = "results_" + timestamp
- results_path = os.path.join(settings.getValue('LOG_DIR'), results_dir)
- settings.setValue('RESULTS_PATH', results_path)
- # create results directory
- if not os.path.exists(results_path):
- os.makedirs(results_path)
-
- configure_logging(settings.getValue('VERBOSITY'))
-
- loader = Loader()
- validations = settings.getValue('VALIDATIONS')
-
- # Get the Validation Types.
- if args['validation']:
- validations = args.validation_type
-
- validator_objs = []
- for validation in validations:
- if 'urls' in validation:
- validators = loader.get_swpreurlsvalidators()
- if settings.getValue('SW_PRE_URLS_VALIDATOR') not in validators:
- _LOGGER.error('There are no urls validators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('SW_PRE_URLS_VALIDATOR'),
- settings.getValue('SW_PRE_URLS_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_swpreurlsvalidator(
- loader.get_swpreurlsvalidator_class())
- validator_objs.append(validator_ctrl)
- if 'configuration' in validation:
- validators = loader.get_swpreconfigvalidators()
- if settings.getValue('SW_PRE_CONFIG_VALIDATOR') not in validators:
- _LOGGER.error('There are no configvalidators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('SW_PRE_CONFIG_VALIDATOR'),
- settings.getValue('SW_PRE_CONFIG_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_swpreconfigvalidator(
- loader.get_swpreconfigvalidator_class())
- validator_objs.append(validator_ctrl)
- if 'state' in validation:
- validators = loader.get_swpoststatevalidators()
- if settings.getValue('SW_POST_STATE_VALIDATOR') not in validators:
- _LOGGER.error('There are no statevalidators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('SW_POST_STATE_VALIDATOR'),
- settings.getValue('SW_POST_STATE_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_swpoststatevalidator(
- loader.get_swpoststatevalidator_class())
- validator_objs.append(validator_ctrl)
- if 'security' in validation:
- validators = loader.get_swpostsecurityvalidators()
- if settings.getValue('SW_POST_SECURITY_VALIDATOR') not in validators:
- _LOGGER.error('There are no securityvalidators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('SW_POST_SECURITY_VALIDATOR'),
- settings.getValue('SW_POST_SECURITY_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_swpostsecurityvalidator(
- loader.get_swpostsecurityvalidator_class())
- validator_objs.append(validator_ctrl)
- if 'nwlinks' in validation:
- validators = loader.get_nwlinksvalidators()
- if settings.getValue('NW_LINKS_VALIDATOR') not in validators:
- _LOGGER.error('There are no nwlinksvalidators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('NW_LINKS_VALIDATOR'),
- settings.getValue('NW_LINKS_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_nwlinksvalidator(
- loader.get_nwlinksvalidator_class())
- validator_objs.append(validator_ctrl)
- if 'resmod' in validation:
- validators = loader.get_resmodvalidators()
- if settings.getValue('RES_MOD_VALIDATOR') not in validators:
- _LOGGER.error('There are no resmodvalidators matching \'%s\' found in'
- ' \'%s\'. Exiting...', settings.getValue('RES_MOD_VALIDATOR'),
- settings.getValue('RES_MOD_VALID_DIR'))
- sys.exit(1)
- validator_ctrl = component_factory.create_resmodvalidator(
- loader.get_resmodvalidator_class())
- validator_objs.append(validator_ctrl)
-
-
-if __name__ == "__main__":
- main()