diff options
Diffstat (limited to 'vnftest/onap/steps')
-rw-r--r-- | vnftest/onap/steps/__init__.py | 0 | ||||
-rw-r--r-- | vnftest/onap/steps/base.py | 89 | ||||
-rw-r--r-- | vnftest/onap/steps/dummy/__init__.py | 0 | ||||
-rw-r--r-- | vnftest/onap/steps/dummy/dummy.py | 42 | ||||
-rw-r--r-- | vnftest/onap/steps/onap_api_call.py | 168 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/__init__.py | 0 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/checkin_vlm.yaml | 24 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/create_vlm.yaml | 28 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/submit_vlm.yaml | 24 |
9 files changed, 0 insertions, 375 deletions
diff --git a/vnftest/onap/steps/__init__.py b/vnftest/onap/steps/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/vnftest/onap/steps/__init__.py +++ /dev/null diff --git a/vnftest/onap/steps/base.py b/vnftest/onap/steps/base.py deleted file mode 100644 index d5c606a..0000000 --- a/vnftest/onap/steps/base.py +++ /dev/null @@ -1,89 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## -# vnftest comment: this is a modified copy of -# rally/rally/benchmark/steps/base.py - -""" Step base class -""" - -from __future__ import absolute_import -import vnftest.common.utils as utils - - -class Step(object): - - def setup(self): - """ default impl for step setup """ - pass - - def run(self, args): - """ catcher for not implemented run methods in subclasses """ - raise RuntimeError("run method not implemented") - - def teardown(self): - """ default impl for step teardown """ - pass - - @staticmethod - def get_types(): - """return a list of known runner type (class) names""" - steps = [] - for step in utils.itersubclasses(Step): - steps.append(step) - return steps - - @staticmethod - def get_cls(step_type): - """return class of specified type""" - for step in utils.itersubclasses(Step): - if step_type == step.__step_type__: - return step - - raise RuntimeError("No such step type %s" % step_type) - - @staticmethod - def get(step_type): - """Returns instance of a step runner for execution type. - """ - for step in utils.itersubclasses(Step): - if step_type == step.__step_type__: - return step.__module__ + "." + step.__name__ - - raise RuntimeError("No such step type %s" % step_type) - - @classmethod - def get_step_type(cls): - """Return a string with the step type, if defined""" - return str(getattr(cls, '__step_type__', None)) - - @classmethod - def get_description(cls): - """Return a single line string with the class description - - This function will retrieve the class docstring and return the first - line, or 'None' if it's empty. - """ - return cls.__doc__.splitlines()[0] if cls.__doc__ else str(None) - - def _push_to_outputs(self, keys, values): - return dict(zip(keys, values)) - - def _change_obj_to_dict(self, obj): - dic = {} - for k, v in vars(obj).items(): - try: - vars(v) - except TypeError: - dic[k] = v - return dic diff --git a/vnftest/onap/steps/dummy/__init__.py b/vnftest/onap/steps/dummy/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/vnftest/onap/steps/dummy/__init__.py +++ /dev/null diff --git a/vnftest/onap/steps/dummy/dummy.py b/vnftest/onap/steps/dummy/dummy.py deleted file mode 100644 index 27e9a32..0000000 --- a/vnftest/onap/steps/dummy/dummy.py +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## -from __future__ import absolute_import -import logging - -from vnftest.onap.steps import base - -LOG = logging.getLogger(__name__) - - -class Dummy(base.Step): - """Execute Dummy echo - """ - __step_type__ = "Dummy" - - def __init__(self, step_cfg, context_cfg): - self.step_cfg = step_cfg - self.context_cfg = context_cfg - self.setup_done = False - - def setup(self): - """step setup""" - self.setup_done = True - - def run(self, result): - """execute the benchmark""" - if not self.setup_done: - self.setup() - - result["hello"] = "vnftest" - LOG.info("Dummy echo hello vnftest!") diff --git a/vnftest/onap/steps/onap_api_call.py b/vnftest/onap/steps/onap_api_call.py deleted file mode 100644 index e03e00a..0000000 --- a/vnftest/onap/steps/onap_api_call.py +++ /dev/null @@ -1,168 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## -from __future__ import absolute_import - -import logging -import time -import os -import yaml -import copy - -from vnftest.common.exceptions import MandatoryKeyException, InputParameterMissing -from vnftest.onap.steps import base -from vnftest.common import rest_client -from vnftest.common import constants as consts -from vnftest.onap.contexts.csar import CSARContext - -LOG = logging.getLogger(__name__) - - -class OnapApiCall(base.Step): - - __step_type__ = "OnapApiCall" - - def __init__(self, step_cfg, context_cfg, input_params): - self.step_cfg = step_cfg - self.context_cfg = context_cfg - self.input_params = input_params - self.input_cfg = None - self.output_cfg = None - self.rest_def_file = None - self.setup_done = False - self.curr_path = os.path.dirname(os.path.abspath(__file__)) - - def setup(self): - options = self.step_cfg['options'] - self.rest_def_file = options.get("file") - self.input_cfg = options.get("input", {}) - self.output_cfg = options.get("output", {}) - self.setup_done = True - - def eval_input(self, params): - for input_parameter in self.input_cfg: - param_name = input_parameter['parameter_name'] - value = None - if 'value' in input_parameter: - value = input_parameter['value'] - elif 'source' in input_parameter: - source = input_parameter['source'] - if source == 'prev_step': - if param_name in self.input_params: - value = self.input_params[param_name] - else: - raise InputParameterMissing(param_name=param_name, source='input parameters') - if value is None: - raise InputParameterMissing(param_name=param_name, source="task configuration") - params[param_name] = value - - def run(self, result): - if not self.setup_done: - self.setup() - output = {} - params = copy.deepcopy(consts.component_constants) - self.eval_input(params) - execution_result = self.execute_operation(params) - result_body = execution_result['body'] - for output_parameter in self.output_cfg: - param_name = output_parameter['parameter_name'] - param_path = output_parameter['path'] - path_list = param_path.split("|") - param_value = result_body - for path_element in path_list: - param_value = param_value[path_element] - if param_value is None: - raise MandatoryKeyException(key_name='param_path', class_name=str(result_body)) - result[param_name] = param_value - output[param_name] = param_value - return output - - def execute_operation(self, params, attempt=0): - try: - return self.execute_operation_impl(params) - except Exception as e: - LOG.info(str(e)) - if attempt < 2: - time.sleep(15) - LOG.info("############# retry operation ##########") - attempt = attempt + 1 - return self.execute_operation(params, attempt) - else: - raise e - - def execute_operation_impl(self, params): - input_yaml = self.rest_def_file - LOG.info("########## processing " + input_yaml + "##########") - yaml_path = os.path.join(self.curr_path, input_yaml) - with open(yaml_path) as info: - operation = yaml.load(info) - operation = self.format(operation, params) - url = operation['url'] - headers = operation['headers'] - body = {} - if 'body' in operation: - body = operation['body'] - LOG.info(url) - LOG.info(headers) - LOG.info(body) - if 'file' in operation: - file_path = operation['file'] - LOG.info(file_path) - files = {'upload': open(file_path)} - result = rest_client.upload_file(url, headers, files, LOG) - else: - result = rest_client.call(url, - operation['method'], - headers, - body, - LOG) - if result['return_code'] >= 300: - raise RuntimeError( - "Operation failed. return_code:{}, message:{}".format(result['return_code'], result['body'])) - LOG.info("Results: " + str(result)) - return result - - def format(self, d, params): - ret = None - if isinstance(d, dict): - ret = {} - for k, v in d.iteritems(): - if isinstance(v, basestring): - v = self.format_string(v, params) - else: - v = self.format(v, params) - ret[k] = v - if isinstance(d, list): - ret = [] - for v in d: - if isinstance(v, basestring): - v = self.format_string(v, params) - else: - v = self.format(v, params) - ret.append(v) - if isinstance(d, basestring): - ret = self.format_string(d, params) - return ret - - def format_string(self, st, params): - try: - return st.format(**params) - except Exception as e: - s = str(e) - s = s.replace("'", "") - LOG.info(s) - params[s] = "" - LOG.info("param" + params[s]) - return st.format(**params) - - diff --git a/vnftest/onap/steps/onboard/__init__.py b/vnftest/onap/steps/onboard/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/vnftest/onap/steps/onboard/__init__.py +++ /dev/null diff --git a/vnftest/onap/steps/onboard/checkin_vlm.yaml b/vnftest/onap/steps/onboard/checkin_vlm.yaml deleted file mode 100644 index 93fdd07..0000000 --- a/vnftest/onap/steps/onboard/checkin_vlm.yaml +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## - ---- -method: "PUT" -url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-license-models/{vendor_id}/versions/0.1/actions" -headers: { - "Content-Type": "application/json", - "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==", - "USER_ID": "{sdc_designer_user}", - "Accept": "application/json" - } -body: {"action":"Checkin"} diff --git a/vnftest/onap/steps/onboard/create_vlm.yaml b/vnftest/onap/steps/onboard/create_vlm.yaml deleted file mode 100644 index dce110a..0000000 --- a/vnftest/onap/steps/onboard/create_vlm.yaml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## - ---- -method: "POST" -url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-license-models" -headers: { - "Content-Type": "application/json", - "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==", - "USER_ID": "{sdc_designer_user}", - "Accept": "application/json" - } -body: { - "vendorName": "{vendor_name}", - "description": "vlm via dovetail", - "iconRef": "icon" - }
\ No newline at end of file diff --git a/vnftest/onap/steps/onboard/submit_vlm.yaml b/vnftest/onap/steps/onboard/submit_vlm.yaml deleted file mode 100644 index eb1683a..0000000 --- a/vnftest/onap/steps/onboard/submit_vlm.yaml +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.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 -# -# 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 -############################################################################## - ---- -method: "PUT" -url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-license-models/{vendor_id}/versions/0.1/actions" -headers: { - "Content-Type": "application/json", - "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==", - "USER_ID": "{sdc_designer_user}", - "Accept": "application/json" - } -body: {"action":"Submit"} |