summaryrefslogtreecommitdiffstats
path: root/vnftest/onap/steps
diff options
context:
space:
mode:
authorMoshe <moshehoa@amdocs.com>2018-03-14 14:22:13 +0200
committerMoshe <moshehoa@amdocs.com>2018-03-14 14:23:25 +0200
commit30497ac60f062adba7dae751110dd9fc87ef04db (patch)
treed9814a8e8ee12e57e241d07a2719c091c1b92a46 /vnftest/onap/steps
parente01f70617a2f22b71cfce912b72a1dbb77f3f969 (diff)
Onboard package test case
Issue-ID: VNFSDK-196 Change-Id: I7ba6de4fe6c55b370f9787c23ad16f1afc26f678 Signed-off-by: Moshe <moshehoa@amdocs.com>
Diffstat (limited to 'vnftest/onap/steps')
-rw-r--r--vnftest/onap/steps/__init__.py0
-rw-r--r--vnftest/onap/steps/base.py89
-rw-r--r--vnftest/onap/steps/dummy/__init__.py0
-rw-r--r--vnftest/onap/steps/dummy/dummy.py42
-rw-r--r--vnftest/onap/steps/onap_api_call.py168
-rw-r--r--vnftest/onap/steps/onboard/__init__.py0
-rw-r--r--vnftest/onap/steps/onboard/checkin_vlm.yaml24
-rw-r--r--vnftest/onap/steps/onboard/create_vlm.yaml28
-rw-r--r--vnftest/onap/steps/onboard/submit_vlm.yaml24
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"}