diff options
Diffstat (limited to 'vnftest/onap/steps')
-rw-r--r-- | vnftest/onap/steps/onap_api_call.py | 49 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/checkin_vlm.yaml | 24 | ||||
-rw-r--r-- | vnftest/onap/steps/onboard/submit_vlm.yaml | 24 |
3 files changed, 80 insertions, 17 deletions
diff --git a/vnftest/onap/steps/onap_api_call.py b/vnftest/onap/steps/onap_api_call.py index ec53455..e03e00a 100644 --- a/vnftest/onap/steps/onap_api_call.py +++ b/vnftest/onap/steps/onap_api_call.py @@ -19,10 +19,11 @@ import os import yaml import copy -from vnftest.common.exceptions import MandatoryKeyException +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__) @@ -31,11 +32,12 @@ class OnapApiCall(base.Step): __step_type__ = "OnapApiCall" - def __init__(self, step_cfg, context_cfg): + def __init__(self, step_cfg, context_cfg, input_params): self.step_cfg = step_cfg self.context_cfg = context_cfg - self.input = None - self.output = None + 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__)) @@ -43,22 +45,36 @@ class OnapApiCall(base.Step): def setup(self): options = self.step_cfg['options'] self.rest_def_file = options.get("file") - self.input = options.get("input") - self.output = options.get("output") + 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() - result['output'] = {} + output = {} params = copy.deepcopy(consts.component_constants) - for input_parameter in self.input: - param_name = input_parameter['parameter_name'] - param_value = input_parameter['value'] - params[param_name] = param_value + self.eval_input(params) execution_result = self.execute_operation(params) result_body = execution_result['body'] - for output_parameter in self.output: + for output_parameter in self.output_cfg: param_name = output_parameter['parameter_name'] param_path = output_parameter['path'] path_list = param_path.split("|") @@ -66,11 +82,10 @@ class OnapApiCall(base.Step): 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)) - self.context_cfg[param_name] = param_value - result['output'][param_name] = param_value - result['status'] = 'PASS' + 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: diff --git a/vnftest/onap/steps/onboard/checkin_vlm.yaml b/vnftest/onap/steps/onboard/checkin_vlm.yaml new file mode 100644 index 0000000..93fdd07 --- /dev/null +++ b/vnftest/onap/steps/onboard/checkin_vlm.yaml @@ -0,0 +1,24 @@ +############################################################################## +# 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/submit_vlm.yaml b/vnftest/onap/steps/onboard/submit_vlm.yaml new file mode 100644 index 0000000..eb1683a --- /dev/null +++ b/vnftest/onap/steps/onboard/submit_vlm.yaml @@ -0,0 +1,24 @@ +############################################################################## +# 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"} |