summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Donley <christopher.donley@huawei.com>2018-05-30 19:55:33 +0000
committerGerrit Code Review <gerrit@onap.org>2018-05-30 19:55:33 +0000
commite65155cab8d6d74989f1dd0bd1a493e1c91a30d9 (patch)
tree9112d60bee675751d2bfe0e029929ec8960f49cc
parentbfb67b927b59525028420e4477b1310fb6a69335 (diff)
parent82aeca18c66dc4c312a57f24ed3c4c33a2063070 (diff)
Merge "Refactor api definition yamls to support jinja2"
-rw-r--r--etc/vnftest/vnf_descriptors/vnf_descriptor_sample.yaml24
-rw-r--r--tests/onap/test_cases/onap_vnftest_tc001.yaml24
-rw-r--r--tests/onap/test_cases/onap_vnftest_tc002.yaml40
-rw-r--r--tests/onap/test_cases/onap_vnftest_tc003.yaml17
-rw-r--r--vnftest/common/utils.py7
-rw-r--r--vnftest/contexts/base.py15
-rw-r--r--vnftest/core/task.py10
-rw-r--r--vnftest/core/testcase.py5
-rw-r--r--vnftest/onap/common/vf_module_crawler.py (renamed from vnftest/onap/common/vnf_type_crawler.py)20
-rw-r--r--vnftest/onap/lifecycle/create_customer.yaml67
-rw-r--r--vnftest/onap/lifecycle/create_region.yaml45
-rw-r--r--vnftest/onap/lifecycle/create_service.yaml23
-rw-r--r--vnftest/onap/lifecycle/create_service_instance.yaml65
-rw-r--r--vnftest/onap/lifecycle/create_vf_module.yaml118
-rw-r--r--vnftest/onap/lifecycle/create_vnf_instance.yaml93
-rw-r--r--vnftest/onap/lifecycle/monitor_request.yaml19
-rw-r--r--vnftest/onap/lifecycle/preload_sdnc.yaml78
-rw-r--r--vnftest/onap/onap_api_call.py52
-rw-r--r--vnftest/onap/onboard/accept_resource_test.yaml20
-rw-r--r--vnftest/onap/onboard/accept_service_test.yaml18
-rw-r--r--vnftest/onap/onboard/add_resource_instance.yaml35
-rw-r--r--vnftest/onap/onboard/add_service.yaml111
-rw-r--r--vnftest/onap/onboard/approve_distribution.yaml18
-rw-r--r--vnftest/onap/onboard/checkin_vlm.yaml18
-rw-r--r--vnftest/onap/onboard/checkin_vsp.yaml19
-rw-r--r--vnftest/onap/onboard/create_package_vsp.yaml21
-rw-r--r--vnftest/onap/onboard/create_vlm.yaml25
-rw-r--r--vnftest/onap/onboard/create_vsp.yaml38
-rw-r--r--vnftest/onap/onboard/distribute.yaml18
-rw-r--r--vnftest/onap/onboard/import_vsp.yaml125
-rw-r--r--vnftest/onap/onboard/monitor_distribution.yaml18
-rw-r--r--vnftest/onap/onboard/process_package.yaml15
-rw-r--r--vnftest/onap/onboard/start_resource_test.yaml16
-rw-r--r--vnftest/onap/onboard/start_service_test.yaml15
-rw-r--r--vnftest/onap/onboard/submit_resource_for_testing.yaml19
-rw-r--r--vnftest/onap/onboard/submit_service_for_testing.yaml19
-rw-r--r--vnftest/onap/onboard/submit_vlm.yaml19
-rw-r--r--vnftest/onap/onboard/submit_vsp.yaml19
-rw-r--r--vnftest/onap/onboard/upload_package.yaml17
39 files changed, 632 insertions, 713 deletions
diff --git a/etc/vnftest/vnf_descriptors/vnf_descriptor_sample.yaml b/etc/vnftest/vnf_descriptors/vnf_descriptor_sample.yaml
index 21008df..7e746e5 100644
--- a/etc/vnftest/vnf_descriptors/vnf_descriptor_sample.yaml
+++ b/etc/vnftest/vnf_descriptors/vnf_descriptor_sample.yaml
@@ -17,4 +17,26 @@
type: CSAR
vnf_name: sample_firewall
vnf_id: 123456
-csar_package_location: /etc/nvftest/sample_fw.csar \ No newline at end of file
+package_location: /etc/nvftest/sample_fw.csar
+
+# List the vf modules to be instantiated in order (if relevant)
+vf_modules:
+-
+ module_name: module_0
+ # List the input parameters for the VF module as expected by the orchestrator
+ input_parameters:
+ -
+ name: param_0
+ value: value_0
+ -
+ name: param_1
+ value: value_1
+-
+ module_name: module_1
+ input_parameters:
+ -
+ name: param_0
+ value: value_0
+ -
+ name: param_1
+ value: value_1
diff --git a/tests/onap/test_cases/onap_vnftest_tc001.yaml b/tests/onap/test_cases/onap_vnftest_tc001.yaml
index 0bc34aa..26a5672 100644
--- a/tests/onap/test_cases/onap_vnftest_tc001.yaml
+++ b/tests/onap/test_cases/onap_vnftest_tc001.yaml
@@ -90,7 +90,7 @@ steps:
value: "{vsp_id}"
-
parameter_name: "package_file_path"
- value: "{context|vnf_descriptor|csar_package_location}"
+ value: "{context.vnf_descriptor.package_location}"
runner:
type: Iteration
run_step: "setup,run"
@@ -158,22 +158,7 @@ steps:
-
parameter_name: "resource_id"
value: "[uniqueId]"
- -
- parameter_name: "vnf_type"
- value: "[name]"
- type: VnfTypeCrawler
- -
- parameter_name: "module_model_invariant_id"
- value: "[invariantUUID]"
- type: VnfTypeCrawler
- -
- parameter_name: "module_model_version_id"
- value: "[groupUUID]"
- type: VnfTypeCrawler
- -
- parameter_name: "module_model_version"
- value: "[version]"
- type: VnfTypeCrawler
+
runner:
type: Iteration
run_step: "setup,run"
@@ -360,8 +345,9 @@ steps:
parameter_name: "service_model_version"
value: "[version]"
-
- parameter_name: "service_model_customization_id"
- value: "[componentInstances][0][groupInstances][0][customizationUUID]"
+ parameter_name: "vf_modules_list"
+ type: VfModuleCrawler
+
runner:
type: Iteration
run_step: "setup,run"
diff --git a/tests/onap/test_cases/onap_vnftest_tc002.yaml b/tests/onap/test_cases/onap_vnftest_tc002.yaml
index d2e2bee..341c1c8 100644
--- a/tests/onap/test_cases/onap_vnftest_tc002.yaml
+++ b/tests/onap/test_cases/onap_vnftest_tc002.yaml
@@ -24,7 +24,6 @@ description: >
{% set customer_name = customer_name or ['test_customer_', rnd ]|join %}
{% set service_instance_name = service_instance_name or ['test_service_instance_', rnd ]|join %}
{% set vnf_instance_name = vnf_instance_name or ['test_vnf_instance_', rnd ]|join %}
-{% set vnf_name = vnf_name or ['test_vnf_', rnd ]|join %}
# Mandatory input parameters
{% set service_model_version_id = service_model_version_id or '\"\u007Bservice_model_version_id\u007D\"' %}
@@ -41,10 +40,7 @@ description: >
{% set resource_model_customization_name = resource_model_customization_name or '\"\u007Bresource_model_customization_name\u007D\"' %}
{% set distributed_service_id = distributed_service_id or '\"\u007Bdistributed_service_id\u007D\"' %}
{% set resource_instance_model_name = resource_instance_model_name or '\"\u007Bresource_instance_model_name\u007D\"' %}
-{% set vnf_type = vnf_type or '\"\u007Bvnf_type\u007D\"' %}
-{% set module_model_invariant_id = module_model_invariant_id or '\"\u007Bmodule_model_invariant_id\u007D\"' %}
-{% set module_model_version_id = module_model_version_id or '\"\u007Bmodule_model_version_id\u007D\"' %}
-{% set module_model_version = module_model_version or '\"\u007Bmodule_model_version\u007D\"' %}
+{% set vf_modules_list = vf_modules_list or {}%}
steps:
-
@@ -57,10 +53,10 @@ steps:
value: {{cloud_owner}}
-
parameter_name: "tenant_id"
- value: "{context|creds|tenant_id}"
+ value: "{context.creds.tenant_id}"
-
parameter_name: "tenant_name"
- value: "{context|creds|tenant_name}"
+ value: "{context.creds.tenant_name}"
runner:
type: Iteration
run_step: "setup,run"
@@ -86,12 +82,12 @@ steps:
value: {{cloud_owner}}
-
parameter_name: "tenant_id"
- value: "{context|creds|tenant_id}"
+ value: "{context.creds.tenant_id}"
-
type: OnapApiCall
options:
file: "lifecycle/create_service_instance.yaml"
- delay: 30
+ delay: 60
input:
-
parameter_name: "service_instance_name"
@@ -173,7 +169,7 @@ steps:
value: {{resource_model_customization_name}}
-
parameter_name: "tenant_id"
- value: "{context|creds|tenant_id}"
+ value: "{context.creds.tenant_id}"
-
parameter_name: "service_model_name"
value: {{service_model_name}}
@@ -220,12 +216,18 @@ steps:
type: Iteration
run_step: "setup,run"
+{% for vf_module_definition in vnf_descriptor.vf_modules %}
+ {% set vf_module = vf_modules_list[vf_module_definition.module_name] %}
+ {% set vnf_name = ['test_vnf_', rnd, '_', vf_module_definition.module_name ]|join %}
-
type: OnapApiCall
options:
file: "lifecycle/preload_sdnc.yaml"
input:
-
+ parameter_name: "vnf_parameters"
+ value: {{vf_module_definition.input_parameters}}
+ -
parameter_name: "vnf_name"
value: {{vnf_name}}
-
@@ -242,7 +244,7 @@ steps:
value: "{service_instance_id}"
-
parameter_name: "vnf_type"
- value: {{vnf_type}}
+ value: {{vf_module.groupName}}
runner:
type: Iteration
run_step: "setup,run"
@@ -264,22 +266,22 @@ steps:
value: {{vnf_name}}
-
parameter_name: "module_model_invariant_id"
- value: {{module_model_invariant_id}}
+ value: {{vf_module.invariantUUID}}
-
parameter_name: "module_model_version_id"
- value: {{module_model_version_id}}
+ value: {{vf_module.groupUUID}}
-
parameter_name: "vnf_type"
- value: {{vnf_type}}
+ value: {{vf_module.groupName}}
-
parameter_name: "module_model_version"
- value: {{module_model_version}}
+ value: {{vf_module.version}}
-
- parameter_name: "service_model_customization_id"
- value: {{service_model_customization_id}}
+ parameter_name: "module_model_customization_id"
+ value: {{vf_module.customizationUUID}}
-
parameter_name: "tenant_id"
- value: "{context|creds|tenant_id}"
+ value: "{context.creds.tenant_id}"
-
parameter_name: "service_model_name"
value: {{service_model_name}}
@@ -344,6 +346,6 @@ steps:
runner:
type: Iteration
run_step: "setup,run"
-
+{% endfor %}
context:
type: CSAR \ No newline at end of file
diff --git a/tests/onap/test_cases/onap_vnftest_tc003.yaml b/tests/onap/test_cases/onap_vnftest_tc003.yaml
index 304513a..d3b173d 100644
--- a/tests/onap/test_cases/onap_vnftest_tc003.yaml
+++ b/tests/onap/test_cases/onap_vnftest_tc003.yaml
@@ -21,13 +21,12 @@ description: >
{% set service_instance_id = service_instance_id or '\"\u007Bservice_instance_id\u007D\"' %}
{% set vnf_instance_id = vnf_instance_id or '\"\u007Bvnf_instance_id\u007D\"' %}
{% set vf_module_instance_id = vf_module_instance_id or '\"\u007Bvf_module_instance_id\u007D\"' %}
-{% set vnf_type = vnf_type or '\"\u007Bvnf_type\u007D\"' %}
-{% set module_model_invariant_id = module_model_invariant_id or '\"\u007Bmodule_model_invariant_id\u007D\"' %}
-{% set module_model_version_id = module_model_version_id or '\"\u007Bmodule_model_version_id\u007D\"' %}
-{% set module_model_version = module_model_version or '\"\u007Bmodule_model_version\u007D\"' %}
{% set service_model_customization_id = service_model_customization_id or '\"\u007Bservice_model_customization_id\u007D\"' %}
+{% set vf_modules_list = vf_modules_list or {}%}
steps:
+{% for vf_module_definition in vnf_descriptor.vf_modules %}
+ {% set vf_module = vf_modules_list[vf_module_definition.module_name] %}
-
type: OnapApiCall
options:
@@ -44,16 +43,16 @@ steps:
value: {{vf_module_instance_id}}
-
parameter_name: "module_model_invariant_id"
- value: {{module_model_invariant_id}}
+ value: {{vf_module.invariantUUID}}
-
parameter_name: "module_model_version_id"
- value: {{module_model_version_id}}
+ value: {{vf_module.groupUUID}}
-
parameter_name: "vnf_type"
- value: {{vnf_type}}
+ value: {{vf_module.name}}
-
parameter_name: "module_model_version"
- value: {{module_model_version}}
+ value: {{vf_module.version}}
-
parameter_name: "service_model_customization_id"
value: {{service_model_customization_id}}
@@ -87,7 +86,7 @@ steps:
equals: "COMPLETE"
retries: 15
interval: 5
-
+{% endfor %}
runner:
type: Iteration
run_step: "setup,run"
diff --git a/vnftest/common/utils.py b/vnftest/common/utils.py
index fbc8391..ad1b2f3 100644
--- a/vnftest/common/utils.py
+++ b/vnftest/common/utils.py
@@ -424,3 +424,10 @@ def open_relative_file(path, task_path):
if e.errno == errno.ENOENT:
return open(os.path.join(task_path, path))
raise
+
+
+class dotdict(dict):
+ """dot.notation access to dictionary attributes"""
+ __getattr__ = dict.get
+ __setattr__ = dict.__setitem__
+ __delattr__ = dict.__delitem__
diff --git a/vnftest/contexts/base.py b/vnftest/contexts/base.py
index 6cb90e9..abfef57 100644
--- a/vnftest/contexts/base.py
+++ b/vnftest/contexts/base.py
@@ -24,11 +24,14 @@ class Context(object):
"""Class that represents a context in the logical model"""
list = []
vnf_descriptor = {}
+ creds = {}
@classmethod
- def load_vnf_descriptor(cls, vnf_descriptor_path):
+ def initialize(cls, vnf_descriptor_path):
with open(vnf_descriptor_path) as f:
cls.vnf_descriptor = yaml.safe_load(f)
+ for key, value in openstack_utils.get_credentials().iteritems():
+ cls.creds[key] = value
@staticmethod
def split_name(name, sep='.'):
@@ -41,17 +44,9 @@ class Context(object):
def __init__(self):
Context.list.append(self)
- self.context_params = None
def init(self, attrs):
- self.context_params = {}
- for key, value in Context.vnf_descriptor.iteritems():
- key = "context|vnf_descriptor|" + key
- self.context_params[key] = value
-
- for key, value in openstack_utils.get_credentials().iteritems():
- key = "context|creds|" + key
- self.context_params[key] = value
+ pass
@staticmethod
def get_cls(context_type):
diff --git a/vnftest/core/task.py b/vnftest/core/task.py
index 8ce897b..939696c 100644
--- a/vnftest/core/task.py
+++ b/vnftest/core/task.py
@@ -73,7 +73,7 @@ class Task(object): # pragma: no cover
output_config['DEFAULT']['dispatcher'] = out_types
def start(self, args, **kwargs):
- Context.load_vnf_descriptor(args.vnfdescriptor)
+ Context.initialize(args.vnfdescriptor)
atexit.register(self.atexit_handler)
task_id = getattr(args, 'task_id')
@@ -120,10 +120,12 @@ class Task(object): # pragma: no cover
# parse task_files
for i in range(0, len(task_files)):
one_task_start_time = time.time()
+ # the output of the previous task is the input of the new task
+ inputs = copy.deepcopy(self.outputs)
parser.path = task_files[i]
steps, run_in_parallel, meet_precondition, ret_context = \
parser.parse_task(self.task_id, task_args[i],
- task_args_fnames[i])
+ task_args_fnames[i], inputs)
self.context = ret_context
@@ -426,16 +428,18 @@ class TaskParser(object): # pragma: no cover
return valid_task_files, valid_task_args, valid_task_args_fnames
- def parse_task(self, task_id, task_args=None, task_args_file=None):
+ def parse_task(self, task_id, task_args=None, task_args_file=None, inputs=None):
"""parses the task file and return an context and step instances"""
LOG.info("Parsing task config: %s", self.path)
try:
kw = {}
+ kw.update(inputs)
if task_args_file:
with open(task_args_file) as f:
kw.update(parse_task_args("task_args_file", f.read()))
kw.update(parse_task_args("task_args", task_args))
+ kw['vnf_descriptor'] = Context.vnf_descriptor
except TypeError:
raise TypeError()
diff --git a/vnftest/core/testcase.py b/vnftest/core/testcase.py
index ef3e535..ea07243 100644
--- a/vnftest/core/testcase.py
+++ b/vnftest/core/testcase.py
@@ -74,8 +74,9 @@ class Testcase(object):
return record
def _parse_testcase(self, testcase_info):
-
- rendered_testcase = TaskTemplate.render(testcase_info)
+ kw = {}
+ kw['vnf_descriptor'] = {}
+ rendered_testcase = TaskTemplate.render(testcase_info, **kw)
testcase_cfg = yaml_load(rendered_testcase)
test_precondition = testcase_cfg.get('precondition', {})
diff --git a/vnftest/onap/common/vnf_type_crawler.py b/vnftest/onap/common/vf_module_crawler.py
index 9e03dc0..ffc215c 100644
--- a/vnftest/onap/common/vnf_type_crawler.py
+++ b/vnftest/onap/common/vf_module_crawler.py
@@ -19,13 +19,17 @@ import logging
LOG = logging.getLogger(__name__)
-class VnfTypeCrawler(DefaultCrawler):
- __crawler_type__ = 'VnfTypeCrawler'
+class VfModuleCrawler(DefaultCrawler):
+ __crawler_type__ = 'VfModuleCrawler'
def crawl(self, dictionary, path):
- index = 0
- vnf_type = dictionary['groups'][0]['name']
- if ".." not in vnf_type:
- index = 1
- dictionary = dictionary['groups'][index]
- return super(VnfTypeCrawler, self).crawl(dictionary, path)
+ result = {}
+ for componentInstance in dictionary['componentInstances']:
+ for groupInstance in componentInstance['groupInstances']:
+ # get the module name without additions. Example:
+ # original name: TestVsp2007..policyVNF_infinity..module-5
+ # name without additions: policyVNF_infinity
+ module_name = groupInstance['groupName'].split("..")
+ module_name = str(module_name[1])
+ result[module_name] = groupInstance
+ return result
diff --git a/vnftest/onap/lifecycle/create_customer.yaml b/vnftest/onap/lifecycle/create_customer.yaml
index 97327ba..e950eb4 100644
--- a/vnftest/onap/lifecycle/create_customer.yaml
+++ b/vnftest/onap/lifecycle/create_customer.yaml
@@ -13,39 +13,34 @@
##############################################################################
---
-method: "PUT"
-url: "http://{aai_ip}:30232/aai/v8/business/customers/customer/{customer_name}"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic QUFJOkFBSQ==",
- "X-FromAppId": "AAI",
- "X-TransactionId": "get_aai_subscr"
- }
-body: {
- "global-customer-id": "{customer_name}",
- "service-subscriptions": {
- "service-subscription": [{
- "relationship-list": {
- "relationship": [{
- "related-to": "tenant",
- "relationship-data": [{
- "relationship-key": "cloud-region.cloud-owner",
- "relationship-value": "{cloud_owner}"
- },
- {
- "relationship-key": "cloud-region.cloud-region-id",
- "relationship-value": "RegionOne"
- },
- {
- "relationship-key": "tenant.tenant-id",
- "relationship-value": "{tenant_id}"
- }]
- }]
- },
- "service-type": "vFW"
- }]
- },
- "subscriber-name": "{customer_name}",
- "subscriber-type": "INFRA"
- }
+method: PUT
+url: http://{{aai_ip}}:30232/aai/v8/business/customers/customer/{{customer_name}}
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic QUFJOkFBSQ==
+ X-FromAppId: AAI
+ X-TransactionId: get_aai_subscr
+
+body:
+ global-customer-id: {{customer_name}}
+ service-subscriptions:
+ service-subscription:
+ -
+ service-type: vFW
+ relationship-list:
+ relationship:
+ -
+ related-to: tenant
+ relationship-data:
+ -
+ relationship-key: cloud-region.cloud-owner
+ relationship-value: {{cloud_owner}}
+ -
+ relationship-key: cloud-region.cloud-region-id
+ relationship-value: RegionOne
+ -
+ relationship-key: tenant.tenant-id
+ relationship-value: {{tenant_id}}
+ subscriber-name: {{customer_name}}
+ subscriber-type: INFRA
diff --git a/vnftest/onap/lifecycle/create_region.yaml b/vnftest/onap/lifecycle/create_region.yaml
index 1a67f41..41da02a 100644
--- a/vnftest/onap/lifecycle/create_region.yaml
+++ b/vnftest/onap/lifecycle/create_region.yaml
@@ -13,28 +13,23 @@
##############################################################################
---
-method: "PUT"
-url: "http://{aai_ip}:30232/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/{cloud_owner}/RegionOne"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic QUFJOkFBSQ==",
- "X-FromAppId": "AAI",
- "X-TransactionId": "get_aai_subscr"
- }
-body: {
- "cloud-owner": "{cloud_owner}",
- "cloud-region-id": "RegionOne",
- "cloud-region-version": "v1",
- "cloud-type": "SharedNode",
- "cloud-zone": "CloudZone",
- "owner-defined-type": "OwnerType",
- "tenants": {
- "tenant": [
- {
- "tenant-id": "{tenant_id}",
- "tenant-name": "{tenant_name}"
- }
- ]
- }
- }
+method: PUT
+url: http://{{aai_ip}}:30232/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/{{cloud_owner}}/RegionOne
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic QUFJOkFBSQ==
+ X-FromAppId: AAI
+ X-TransactionId: get_aai_subscr
+body:
+ cloud-owner: {{cloud_owner}}
+ cloud-region-id: RegionOne
+ cloud-region-version: v1
+ cloud-type: SharedNode
+ cloud-zone: CloudZone
+ owner-defined-type: OwnerType
+ tenants:
+ tenant:
+ -
+ tenant-id: {{tenant_id}}
+ tenant-name: {{tenant_name}} \ No newline at end of file
diff --git a/vnftest/onap/lifecycle/create_service.yaml b/vnftest/onap/lifecycle/create_service.yaml
index 7b8c107..0e1abda 100644
--- a/vnftest/onap/lifecycle/create_service.yaml
+++ b/vnftest/onap/lifecycle/create_service.yaml
@@ -11,15 +11,16 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "PUT"
-url: "http://{aai_ip}:30232/aai/v8/service-design-and-creation/services/service/vFW"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic QUFJOkFBSQ==",
- "X-FromAppId": "AAI",
- "X-TransactionId": "get_aai_subscr"
- }
-body: {"service-description":"vFW","service-id":"vFW"}
+method: PUT
+url: http://{{aai_ip}}:30232/aai/v8/service-design-and-creation/services/service/vFW
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic QUFJOkFBSQ==
+ X-FromAppId: AAI
+ X-TransactionId: get_aai_subscr
+
+body:
+ service-description: vFW
+ service-id: vFW
diff --git a/vnftest/onap/lifecycle/create_service_instance.yaml b/vnftest/onap/lifecycle/create_service_instance.yaml
index 93850b7..996c580 100644
--- a/vnftest/onap/lifecycle/create_service_instance.yaml
+++ b/vnftest/onap/lifecycle/create_service_instance.yaml
@@ -11,42 +11,35 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "POST"
-url: "http://{mso_ip}/ecomp/mso/infra/serviceInstances/v5"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "X-FromAppId": "MSO",
- "X-TransactionId": "demo"
- }
-body: {
- "requestDetails": {
- "requestInfo": {
- "source": "VID",
- "requestorId": "vid1",
- "suppressRollback": "true",
- "instanceName": "{service_instance_name}"
- },
- "modelInfo": {
- "modelVersionId": "{service_model_version_id}",
- "modelVersion": "{service_model_version}",
- "modelName": "{service_model_normalized_name}",
- "modelInvariantId": "{service_model_invariant_id}",
- "modelType": "service"
- },
- "requestParameters": {
- "userParams": [
+method: POST
+url: http://{{mso_ip}}/ecomp/mso/infra/serviceInstances/v5
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ X-FromAppId: MSO
+ X-TransactionId: demo
+
+body:
+ requestDetails:
+ requestInfo:
+ source: VID
+ requestorId: vid1
+ suppressRollback: true
+ instanceName: {{service_instance_name}}
+
+ modelInfo:
+ modelVersionId: {{service_model_version_id}}
+ modelVersion: {{service_model_version}}
+ modelName: {{service_model_normalized_name}}
+ modelInvariantId: {{service_model_invariant_id}}
+ modelType: service
- ],
- "aLaCarte": "true",
- "subscriptionServiceType": "vFW"
- },
- "subscriberInfo": {
- "globalSubscriberId": "{customer_name}"
- }
- }
- }
+ requestParameters:
+ userParams: []
+ aLaCarte: true
+ subscriptionServiceType: vFW
+ subscriberInfo:
+ globalSubscriberId: {{customer_name}} \ No newline at end of file
diff --git a/vnftest/onap/lifecycle/create_vf_module.yaml b/vnftest/onap/lifecycle/create_vf_module.yaml
index ed46c7d..1728a07 100644
--- a/vnftest/onap/lifecycle/create_vf_module.yaml
+++ b/vnftest/onap/lifecycle/create_vf_module.yaml
@@ -11,68 +11,58 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "POST"
-url: "http://{mso_ip}/ecomp/mso/infra/serviceInstances/v5/{service_instance_id}/vnfs/{vnf_instance_id}/vfModules"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "X-FromAppId": "MSO",
- "X-TransactionId": "demo",
- "Accept": "application/json"
- }
-body: {
- "requestDetails": {
- "requestInfo": {
- "instanceName": "{vnf_name}",
- "source": "VID",
- "suppressRollback": "true",
- "requestorId": "vid1"
- },
- "modelInfo": {
- "modelType": "vfModule",
- "modelInvariantId": "{module_model_invariant_id}",
- "modelVersionId": "{module_model_version_id}",
- "modelName": "{vnf_type}",
- "modelVersion": "{module_model_version}",
- "modelCustomizationId": "{service_model_customization_id}",
- "modelCustomizationName": "{vnf_type}"
- },
- "requestParameters": {
- "usePreload": "true"
- },
- "cloudConfiguration": {
- "lcpCloudRegionId": "RegionOne",
- "tenantId": "{tenant_id}"
- },
- "relatedInstanceList": [
- {
- "relatedInstance": {
- "instanceId": "{service_instance_id}",
- "modelInfo": {
- "modelType": "service",
- "modelName": "{service_model_name}",
- "modelInvariantId": "{service_model_invariant_id}",
- "modelVersion": "{service_model_version}",
- "modelVersionId": "{distributed_service_id}"
- }
- }
- },
- {
- "relatedInstance": {
- "instanceId": "{vnf_instance_id}",
- "modelInfo": {
- "modelType": "vnf",
- "modelName": "{resource_model_name}",
- "modelInvariantId": "{resource_model_invariant_id}",
- "modelVersion": "{resource_model_version}",
- "modelVersionId": "{resource_model_version_id}",
- "modelCustomizationId": "{resource_model_customization_id}",
- "modelCustomizationName": "{resource_model_customization_name}"
- }
- }
- }
- ]
- }
- }
+method: POST
+url: http://{{mso_ip}}/ecomp/mso/infra/serviceInstances/v5/{{service_instance_id}}/vnfs/{{vnf_instance_id}}/vfModules
+headers:
+ Content-Type: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ X-FromAppId: MSO
+ X-TransactionId: demo
+ Accept: application/json
+
+body:
+ requestDetails:
+ requestInfo:
+ instanceName: {{vnf_name}}
+ source: VID
+ suppressRollback: true
+ requestorId: vid1
+
+ modelInfo:
+ modelType: vfModule
+ modelInvariantId: {{module_model_invariant_id}}
+ modelVersionId: {{module_model_version_id}}
+ modelName: {{vnf_type}}
+ modelVersion: {{module_model_version}}
+ modelCustomizationId: {{module_model_customization_id}}
+ modelCustomizationName: {{vnf_type}}
+
+ requestParameters:
+ usePreload: true
+
+ cloudConfiguration:
+ lcpCloudRegionId: RegionOne
+ tenantId: {{tenant_id}}
+
+ relatedInstanceList:
+ -
+ relatedInstance:
+ instanceId: {{service_instance_id}}
+ modelInfo:
+ modelType: service
+ modelName: {{service_model_name}}
+ modelInvariantId: {{service_model_invariant_id}}
+ modelVersion: {{service_model_version}}
+ modelVersionId: {{distributed_service_id}}
+ -
+ relatedInstance:
+ instanceId: {{vnf_instance_id}}
+ modelInfo:
+ modelType: vnf
+ modelName: {{resource_model_name}}
+ modelInvariantId: {{resource_model_invariant_id}}
+ modelVersion: {{resource_model_version}}
+ modelVersionId: {{resource_model_version_id}}
+ modelCustomizationId: {{resource_model_customization_id}}
+ modelCustomizationName: {{resource_model_customization_name}} \ No newline at end of file
diff --git a/vnftest/onap/lifecycle/create_vnf_instance.yaml b/vnftest/onap/lifecycle/create_vnf_instance.yaml
index 653b97d..441a776 100644
--- a/vnftest/onap/lifecycle/create_vnf_instance.yaml
+++ b/vnftest/onap/lifecycle/create_vnf_instance.yaml
@@ -11,57 +11,48 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "POST"
-url: "http://{mso_ip}/ecomp/mso/infra/serviceInstances/v5/{service_instance_id}/vnfs/"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "X-FromAppId": "MSO",
- "X-TransactionId": "demo"
- }
-body: {
- "requestDetails": {
- "requestInfo": {
- "instanceName":"{vnf_instance_name}",
- "source": "VID",
- "suppressRollback": "true",
- "requestorId": "vid1",
- "productFamilyId": "vFW"
- },
- "modelInfo": {
- "modelType": "vnf",
- "modelInvariantId": "{resource_model_invariant_id}",
- "modelVersionId": "{resource_model_version_id}",
- "modelName": "{resource_model_name}",
- "modelVersion": "{resource_model_version}",
- "modelCustomizationId": "{resource_model_customization_id}",
- "modelCustomizationName": "{resource_model_customization_name}"
- },
- "requestParameters": {
- "userParams": []
- },
- "cloudConfiguration": {
- "lcpCloudRegionId": "RegionOne",
- "tenantId": "{tenant_id}"
- },
- "relatedInstanceList": [
- {
- "relatedInstance": {
- "instanceId": "{service_instance_id}",
- "modelInfo": {
- "modelType": "service",
- "modelName": "{service_model_name}",
- "modelInvariantId": "{service_model_invariant_id}",
- "modelVersion": "{service_model_version}",
- "modelVersionId": "{distributed_service_id}"
- }
- }
- }
- ]
- }
- }
+method: POST
+url: http://{{mso_ip}}/ecomp/mso/infra/serviceInstances/v5/{{service_instance_id}}/vnfs/
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ X-FromAppId: MSO
+ X-TransactionId: demo
+
+body:
+ requestDetails:
+ requestInfo:
+ instanceName: {{vnf_instance_name}}
+ source: VID
+ suppressRollback: true
+ requestorId: vid1
+ productFamilyId: vFW
+
+ modelInfo:
+ modelType: vnf
+ modelInvariantId: {{resource_model_invariant_id}}
+ modelVersionId: {{resource_model_version_id}}
+ modelName: {{resource_model_name}}
+ modelVersion: {{resource_model_version}}
+ modelCustomizationId: {{resource_model_customization_id}}
+ modelCustomizationName: {{resource_model_customization_name}}
+
+ requestParameters:
+ userParams: []
+ cloudConfiguration:
+ lcpCloudRegionId: RegionOne
+ tenantId: {{tenant_id}}
+ relatedInstanceList:
+ -
+ relatedInstance:
+ instanceId: {{service_instance_id}}
+ modelInfo:
+ modelType: service
+ modelName: {{service_model_name}}
+ modelInvariantId: {{service_model_invariant_id}}
+ modelVersion: {{service_model_version}}
+ modelVersionId: {{distributed_service_id}}
diff --git a/vnftest/onap/lifecycle/monitor_request.yaml b/vnftest/onap/lifecycle/monitor_request.yaml
index 4304f0e..9593967 100644
--- a/vnftest/onap/lifecycle/monitor_request.yaml
+++ b/vnftest/onap/lifecycle/monitor_request.yaml
@@ -11,14 +11,13 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "GET"
-url: "http://{mso_ip}/ecomp/mso/infra/orchestrationRequests/v2/{request_id}"
-headers: {
- "Content-Type": "application/json",
- "Accept": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "X-FromAppId": "AAI",
- "X-TransactionId": "get_aai_subscr"
- }
+method: GET
+url: http://{{mso_ip}}/ecomp/mso/infra/orchestrationRequests/v2/{{request_id}}
+headers:
+ Content-Type: application/json
+ Accept: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ X-FromAppId: AAI
+ X-TransactionId: get_aai_subscr
+
diff --git a/vnftest/onap/lifecycle/preload_sdnc.yaml b/vnftest/onap/lifecycle/preload_sdnc.yaml
index 4053dd0..627831c 100644
--- a/vnftest/onap/lifecycle/preload_sdnc.yaml
+++ b/vnftest/onap/lifecycle/preload_sdnc.yaml
@@ -11,44 +11,42 @@
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
-
---
-method: "POST"
-url: "http://{aai_ip}:30202/restconf/operations/VNF-API:preload-vnf-topology-operation"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==",
- "X-FromAppId": "AAI",
- "X-TransactionId": "0a3f6713-ba96-4971-a6f8-c2da85a3176e",
- "Accept": "application/json"
- }
-body: {
- "input": {
- "request-information": {
- "notification-url": "openecomp.org",
- "order-number": "1",
- "order-version": "1",
- "request-action": "PreloadVNFRequest",
- "request-id": "test"
- },
- "sdnc-request-header": {
- "svc-action": "reserve",
- "svc-notification-url": "http:openecomp.org:8080",
- "svc-request-id": "test"
- },
- "vnf-topology-information": {
- "vnf-assignments": {
- "availability-zones": [],
- "vnf-networks": [],
- "vnf-vms": []
- },
- "vnf-topology-identifier": {
- "generic-vnf-name": "{vnf_instance_name}",
- "generic-vnf-type": "{service_model_name}/{resource_instance_model_name} 0",
- "service-type": "{service_instance_id}",
- "vnf-name": "{vnf_name}",
- "vnf-type": "{vnf_type}"
- }
- }
- }
- }
+method: POST
+url: http://{{aai_ip}}:30202/restconf/operations/VNF-API:preload-vnf-topology-operation
+headers:
+ Content-Type: application/json
+ Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==
+ X-FromAppId: AAI
+ X-TransactionId: 0a3f6713-ba96-4971-a6f8-c2da85a3176e
+ Accept: application/json
+
+body:
+ input:
+ request-information:
+ notification-url: openecomp.org
+ order-number: 1
+ order-version: 1
+ request-action: PreloadVNFRequest
+ request-id: test
+ sdnc-request-header:
+ svc-action: reserve
+ svc-notification-url: "http://openecomp.org:8080"
+ svc-request-id: test
+ vnf-topology-information:
+ vnf-assignments:
+ availability-zones: []
+ vnf-networks: []
+ vnf-vms: []
+ vnf-parameters:
+ {% for vnf_parameter in vnf_parameters %}
+ -
+ vnf-parameter-name: {{vnf_parameter.name}}
+ vnf-parameter-value: {{vnf_parameter.value}}
+ {% endfor %}
+ vnf-topology-identifier:
+ generic-vnf-name: {{vnf_instance_name}}
+ generic-vnf-type: {{service_model_name}}/{{resource_instance_model_name}} 0
+ service-type: {{service_instance_id}}
+ vnf-name: {{vnf_name}}
+ vnf-type: {{vnf_type}}
diff --git a/vnftest/onap/onap_api_call.py b/vnftest/onap/onap_api_call.py
index a19138b..417e259 100644
--- a/vnftest/onap/onap_api_call.py
+++ b/vnftest/onap/onap_api_call.py
@@ -22,10 +22,13 @@ import yaml
from vnftest.common import constants as consts
from vnftest.common import rest_client
+from vnftest.common.utils import dotdict
from vnftest.common.exceptions import MandatoryKeyException, InputParameterMissing
from vnftest.crawlers.base import Crawler
-from vnftest.onap.common.vnf_type_crawler import VnfTypeCrawler
+from vnftest.onap.common.vf_module_crawler import VfModuleCrawler
from vnftest.steps import base
+import jinja2
+import jinja2.meta
LOG = logging.getLogger(__name__)
@@ -53,7 +56,10 @@ class OnapApiCall(base.Step):
self.input_cfg = options.get("input", {})
self.output_cfg = options.get("output", {})
self.sla_cfg = self.step_cfg.get('sla', {'retries': 0})
- self.input_params.update(self.context.context_params)
+ context_dict = {}
+ context_dict['creds'] = dotdict(self.context.creds)
+ context_dict['vnf_descriptor'] = dotdict(self.context.vnf_descriptor)
+ self.input_params['context'] = dotdict(context_dict)
self.setup_done = True
def eval_input(self, params):
@@ -68,6 +74,7 @@ class OnapApiCall(base.Step):
params[param_name] = value
def run(self, result, attempt=0):
+ LOG.info("** Handling: " + str(self.rest_def_file))
output = self.run_impl(result)
try:
self.handle_sla(output)
@@ -92,7 +99,7 @@ class OnapApiCall(base.Step):
result_body = execution_result['body']
for output_parameter in self.output_cfg:
param_name = output_parameter['parameter_name']
- param_value = output_parameter['value']
+ param_value = output_parameter.get('value', "[]")
if param_value.find("[") > -1:
crawler_type = output_parameter.get('type', 'default')
crawler_class = Crawler.get_cls(crawler_type)
@@ -107,7 +114,6 @@ class OnapApiCall(base.Step):
def execute_operation(self, params, attempt=0):
if self.delay > 0:
time.sleep(self.delay)
-
try:
return self.execute_operation_impl(params)
except Exception as e:
@@ -121,12 +127,7 @@ class OnapApiCall(base.Step):
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)
+ operation = self.load_file(params)
url = operation['url']
headers = operation['headers']
body = {}
@@ -152,30 +153,10 @@ class OnapApiCall(base.Step):
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
-
@staticmethod
def format_string(st, params):
+ if not isinstance(st, basestring):
+ return st
try:
return st.format(**params)
except Exception as e:
@@ -192,3 +173,10 @@ class OnapApiCall(base.Step):
value = self.format_string(value_def, output)
expected_value = self.sla_cfg['equals']
assert value == expected_value
+
+ def load_file(self, params):
+ yaml_path = os.path.join(self.curr_path, self.rest_def_file)
+ with open(yaml_path) as f:
+ operation_template = f.read()
+ operation = jinja2.Template(operation_template).render(**params)
+ return yaml.load(operation)
diff --git a/vnftest/onap/onboard/accept_resource_test.yaml b/vnftest/onap/onboard/accept_resource_test.yaml
index 60a079e..2479f52 100644
--- a/vnftest/onap/onboard/accept_resource_test.yaml
+++ b/vnftest/onap/onboard/accept_resource_test.yaml
@@ -13,12 +13,14 @@
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/resources/{resource_id}/lifecycleState/certify"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_tester_user}",
- "Accept": "application/json"
- }
-body: {"userRemarks":"certified"}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/resources/{{resource_id}}/lifecycleState/certify
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_tester_user}}
+ Accept: application/json
+
+body:
+ userRemarks: certified
+
diff --git a/vnftest/onap/onboard/accept_service_test.yaml b/vnftest/onap/onboard/accept_service_test.yaml
index d942084..6d38244 100644
--- a/vnftest/onap/onboard/accept_service_test.yaml
+++ b/vnftest/onap/onboard/accept_service_test.yaml
@@ -13,12 +13,12 @@
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{sdc_service_id}/lifecycleState/certify"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_tester_user}",
- "Accept": "application/json"
- }
-body: {"userRemarks":"certified"}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{sdc_service_id}}/lifecycleState/certify
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_tester_user}}
+ Accept: application/json
+body:
+ userRemarks: certified
diff --git a/vnftest/onap/onboard/add_resource_instance.yaml b/vnftest/onap/onboard/add_resource_instance.yaml
index a1af66c..e217bd7 100644
--- a/vnftest/onap/onboard/add_resource_instance.yaml
+++ b/vnftest/onap/onboard/add_resource_instance.yaml
@@ -13,21 +13,20 @@
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{sdc_service_id}/resourceInstance"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {
- "uniqueId": "{resource_instance_unique_id}",
- "posX": "500",
- "posY": "100",
- "name": "{resource_instance_name}",
- "componentVersion": "1.0",
- "originType": "VF",
- "icon": "defaulticon",
- "componentUid": "{resource_version_id}"
- } \ No newline at end of file
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{sdc_service_id}}/resourceInstance
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ uniqueId: {{resource_instance_unique_id}}
+ posX: 500
+ posY: 100
+ name: {{resource_instance_name}}
+ componentVersion: 1.0
+ originType: VF
+ icon: defaulticon
+ componentUid: {{resource_version_id}}
diff --git a/vnftest/onap/onboard/add_service.yaml b/vnftest/onap/onboard/add_service.yaml
index 9602a6b..91a6eff 100644
--- a/vnftest/onap/onboard/add_service.yaml
+++ b/vnftest/onap/onboard/add_service.yaml
@@ -12,71 +12,46 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {
- "artifacts": {
-
- },
- "toscaArtifacts": {
-
- },
- "contactId": "{sdc_designer_user}",
- "categories": [
- {
- "name": "Network L4+",
- "normalizedName": "network l4+",
- "uniqueId": "serviceNewCategory.network l4+",
- "icons": [
- "network_l_4"
- ],
- "subcategories": null,
- "ownerId": null
- }
- ],
- "description": "service test",
- "icon": "defaulticon",
- "componentInstancesProperties": {
-
- },
- "componentInstancesAttributes": {
-
- },
- "name": "{service_name}",
- "tags": [
- "{service_name}"
- ],
- "capabilities": {
-
- },
- "requirements": {
-
- },
- "deploymentArtifacts": {
-
- },
- "componentType": "SERVICE",
- "projectCode": "100100",
- "componentInstances": [
-
- ],
- "properties": [
-
- ],
- "attributes": [
-
- ],
- "groups": [
-
- ],
- "ecompGeneratedNaming": "true",
- "serviceApiArtifacts": {
-
- }
- }
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ artifacts:
+ toscaArtifacts:
+ contactId: {{sdc_designer_user}}
+ categories:
+ -
+ name: Network L4+
+ normalizedName: network l4+
+ uniqueId: serviceNewCategory.network l4+
+ icons:
+ -
+ network_l_4
+
+ subcategories: null
+ ownerId: null
+ description: service test
+ icon: defaulticon
+ componentInstancesProperties:
+ componentInstancesAttributes:
+ name: {{service_name}}
+ tags:
+ -
+ {{service_name}}
+
+ capabilities:
+ requirements:
+ deploymentArtifacts:
+ componentType: SERVICE
+ projectCode: 100100
+ componentInstances: []
+ properties: []
+ attributes: []
+ groups: []
+ ecompGeneratedNaming: true
+ serviceApiArtifacts:
diff --git a/vnftest/onap/onboard/approve_distribution.yaml b/vnftest/onap/onboard/approve_distribution.yaml
index b1efc48..a0f6a0d 100644
--- a/vnftest/onap/onboard/approve_distribution.yaml
+++ b/vnftest/onap/onboard/approve_distribution.yaml
@@ -12,12 +12,12 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{service_version_id}/distribution-state/approve"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_governance_user}",
- "Accept": "application/json"
- }
-body: {"userRemarks":"approved"}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{service_version_id}}/distribution-state/approve
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_governance_user}}
+ Accept: application/json
+body:
+ userRemarks: approved
diff --git a/vnftest/onap/onboard/checkin_vlm.yaml b/vnftest/onap/onboard/checkin_vlm.yaml
index 93fdd07..be77446 100644
--- a/vnftest/onap/onboard/checkin_vlm.yaml
+++ b/vnftest/onap/onboard/checkin_vlm.yaml
@@ -13,12 +13,12 @@
##############################################################################
---
-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"}
+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/onboard/checkin_vsp.yaml b/vnftest/onap/onboard/checkin_vsp.yaml
index 399aa47..d0b9067 100644
--- a/vnftest/onap/onboard/checkin_vsp.yaml
+++ b/vnftest/onap/onboard/checkin_vsp.yaml
@@ -12,12 +12,13 @@
# the License
##############################################################################
---
-method: "PUT"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products/{vsp_id}/versions/0.1/actions"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {"action":"Checkin"}
+method: PUT
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products/{{vsp_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/onboard/create_package_vsp.yaml b/vnftest/onap/onboard/create_package_vsp.yaml
index a961b86..85a7bc5 100644
--- a/vnftest/onap/onboard/create_package_vsp.yaml
+++ b/vnftest/onap/onboard/create_package_vsp.yaml
@@ -1,7 +1,7 @@
##############################################################################
# Copyright 2018 EuropeanSoftwareMarketingLtd.
# ===================================================================
-# Licensed under the ApacheLicense, Version2.0 (the"License");
+# 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
@@ -12,12 +12,13 @@
# the License
##############################################################################
---
-method: "PUT"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products/{vsp_id}/versions/0.1/actions"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {"action":"Create_Package"}
+method: PUT
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products/{{vsp_id}}/versions/0.1/actions
+headers:
+ Content-Type: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ action: Create_Package
diff --git a/vnftest/onap/onboard/create_vlm.yaml b/vnftest/onap/onboard/create_vlm.yaml
index dce110a..25418a9 100644
--- a/vnftest/onap/onboard/create_vlm.yaml
+++ b/vnftest/onap/onboard/create_vlm.yaml
@@ -13,16 +13,15 @@
##############################################################################
---
-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
+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/onboard/create_vsp.yaml b/vnftest/onap/onboard/create_vsp.yaml
index d9721a2..01d5d64 100644
--- a/vnftest/onap/onboard/create_vsp.yaml
+++ b/vnftest/onap/onboard/create_vsp.yaml
@@ -12,23 +12,21 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {
- "vendorId": "{vendor_id}",
- "name": "{vsp_name}",
- "category": "resourceNewCategory.application l4+",
- "subCategory": "resourceNewCategory.application l4+.firewall",
- "description": "vlm via dovetail",
- "onboardingMethod": "NetworkPackage",
- "vendorName": "dovetailVendor",
- "icon": "icon",
- "licensingData": {
- }
- } \ No newline at end of file
+method: POST
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products
+headers:
+ Content-Type: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ vendorId: {{vendor_id}}
+ name: {{vsp_name}}
+ category: resourceNewCategory.application l4+
+ subCategory: resourceNewCategory.application l4+.firewall
+ description: vlm via dovetail
+ onboardingMethod: NetworkPackage
+ vendorName: dovetailVendor
+ icon: icon
+ licensingData: \ No newline at end of file
diff --git a/vnftest/onap/onboard/distribute.yaml b/vnftest/onap/onboard/distribute.yaml
index 7deb9a1..70415bf 100644
--- a/vnftest/onap/onboard/distribute.yaml
+++ b/vnftest/onap/onboard/distribute.yaml
@@ -12,12 +12,12 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{service_version_id}/distribution/PROD/activate"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_operations_user}",
- "Accept": "application/json"
- }
-body: {}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{service_version_id}}/distribution/PROD/activate
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_operations_user}}
+ Accept: application/json
+
+body:
diff --git a/vnftest/onap/onboard/import_vsp.yaml b/vnftest/onap/onboard/import_vsp.yaml
index d3a3100..539b427 100644
--- a/vnftest/onap/onboard/import_vsp.yaml
+++ b/vnftest/onap/onboard/import_vsp.yaml
@@ -12,80 +12,53 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/resources"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {
- "artifacts": {
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/resources
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
- },
- "toscaArtifacts": {
-
- },
- "contactId": "{sdc_designer_user}",
- "categories": [
- {
- "name": "Application L4+",
- "normalizedName": "application l4+",
- "uniqueId": "resourceNewCategory.application l4+",
- "icons": null,
- "subcategories": [
- {
- "name": "Firewall",
- "normalizedName": "firewall",
- "uniqueId": "resourceNewCategory.application l4+.firewall",
- "icons": [
- "firewall"
- ],
- "groupings": null,
- "ownerId": null
- }
- ],
- "ownerId": null
- }
- ],
- "description": "dovetail initiated",
- "icon": "defaulticon",
- "componentInstancesProperties": {
-
- },
- "componentInstancesAttributes": {
-
- },
- "name": "{vsp_name}",
- "tags": [
- "{vsp_name}"
- ],
- "capabilities": {
-
- },
- "requirements": {
-
- },
- "deploymentArtifacts": {
-
- },
- "componentType": "RESOURCE",
- "vendorName": "dovetailVendor",
- "vendorRelease": "1.0",
- "componentInstances": [
-
- ],
- "properties": [
-
- ],
- "attributes": [
-
- ],
- "groups": [
-
- ],
- "resourceType": "VF",
- "csarUUID": "{vsp_id}",
- "csarVersion": "1.0"
- }
+body:
+ artifacts:
+ toscaArtifacts:
+ contactId: {{sdc_designer_user}}
+ categories:
+ -
+ name: Application L4+
+ normalizedName: application l4+
+ uniqueId: resourceNewCategory.application l4+
+ icons: null
+ subcategories:
+ -
+ name: Firewall
+ normalizedName: firewall
+ uniqueId: resourceNewCategory.application l4+.firewall
+ icons:
+ -
+ firewall
+ groupings: null
+ ownerId: null
+ ownerId: null
+ description: dovetail initiated
+ icon: defaulticon
+ componentInstancesProperties:
+ componentInstancesAttributes:
+ name: {{vsp_name}}
+ tags:
+ -
+ {{vsp_name}}
+ capabilities:
+ requirements:
+ deploymentArtifacts:
+ componentType: RESOURCE
+ vendorName: dovetailVendor
+ vendorRelease: 1.0
+ componentInstances: []
+ properties: []
+ attributes: []
+ groups: []
+ resourceType: VF
+ csarUUID: {{vsp_id}}
+ csarVersion: 1.0
diff --git a/vnftest/onap/onboard/monitor_distribution.yaml b/vnftest/onap/onboard/monitor_distribution.yaml
index 07216d0..40ad7ad 100644
--- a/vnftest/onap/onboard/monitor_distribution.yaml
+++ b/vnftest/onap/onboard/monitor_distribution.yaml
@@ -12,12 +12,12 @@
# the License
##############################################################################
---
-method: "GET"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{distributed_service_id}/distribution"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_operations_user}",
- "Accept": "application/json"
- }
-body: {}
+method: GET
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{distributed_service_id}}/distribution
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_operations_user}}
+ Accept: application/json
+
+body:
diff --git a/vnftest/onap/onboard/process_package.yaml b/vnftest/onap/onboard/process_package.yaml
index ee8f791..20dc082 100644
--- a/vnftest/onap/onboard/process_package.yaml
+++ b/vnftest/onap/onboard/process_package.yaml
@@ -12,11 +12,10 @@
# the License
##############################################################################
---
-method: "PUT"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products/{vsp_id}/versions/0.1/orchestration-template-candidate/process"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- } \ No newline at end of file
+method: PUT
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products/{{vsp_id}}/versions/0.1/orchestration-template-candidate/process
+headers:
+ Content-Type: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
diff --git a/vnftest/onap/onboard/start_resource_test.yaml b/vnftest/onap/onboard/start_resource_test.yaml
index d6ba7b3..b55c909 100644
--- a/vnftest/onap/onboard/start_resource_test.yaml
+++ b/vnftest/onap/onboard/start_resource_test.yaml
@@ -12,12 +12,12 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/resources/{resource_id}/lifecycleState/startCertification"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_tester_user}",
- "Accept": "application/json"
- }
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/resources/{{resource_id}}/lifecycleState/startCertification
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_tester_user}}
+ Accept: application/json
+
body: {}
diff --git a/vnftest/onap/onboard/start_service_test.yaml b/vnftest/onap/onboard/start_service_test.yaml
index a9d9da4..dff74b9 100644
--- a/vnftest/onap/onboard/start_service_test.yaml
+++ b/vnftest/onap/onboard/start_service_test.yaml
@@ -12,12 +12,11 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{sdc_service_id}/lifecycleState/startCertification"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_tester_user}",
- "Accept": "application/json"
- }
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{sdc_service_id}}/lifecycleState/startCertification
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_tester_user}}
+ Accept: application/json
body: {}
diff --git a/vnftest/onap/onboard/submit_resource_for_testing.yaml b/vnftest/onap/onboard/submit_resource_for_testing.yaml
index 4bdc2be..22dbb64 100644
--- a/vnftest/onap/onboard/submit_resource_for_testing.yaml
+++ b/vnftest/onap/onboard/submit_resource_for_testing.yaml
@@ -12,12 +12,13 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/resources/{resource_id}/lifecycleState/certificationRequest"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {"userRemarks":"resource submited for testing"}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/resources/{{resource_id}}/lifecycleState/certificationRequest
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ userRemarks: resource submited for testing
diff --git a/vnftest/onap/onboard/submit_service_for_testing.yaml b/vnftest/onap/onboard/submit_service_for_testing.yaml
index fe57ded..1910695 100644
--- a/vnftest/onap/onboard/submit_service_for_testing.yaml
+++ b/vnftest/onap/onboard/submit_service_for_testing.yaml
@@ -12,12 +12,13 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_catalog_port}/sdc1/feProxy/rest/v1/catalog/services/{sdc_service_id}/lifecycleState/certificationRequest"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic YmVlcDpib29w",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {"userRemarks":"resource submited for testing"}
+method: POST
+url: http://{{sdc_ip}}:{{sdc_catalog_port}}/sdc1/feProxy/rest/v1/catalog/services/{{sdc_service_id}}/lifecycleState/certificationRequest
+headers:
+ Content-Type: application/json
+ Authorization: Basic YmVlcDpib29w
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ userRemarks: resource submited for testing
diff --git a/vnftest/onap/onboard/submit_vlm.yaml b/vnftest/onap/onboard/submit_vlm.yaml
index eb1683a..8fcd234 100644
--- a/vnftest/onap/onboard/submit_vlm.yaml
+++ b/vnftest/onap/onboard/submit_vlm.yaml
@@ -13,12 +13,13 @@
##############################################################################
---
-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"}
+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
diff --git a/vnftest/onap/onboard/submit_vsp.yaml b/vnftest/onap/onboard/submit_vsp.yaml
index c255cd7..38fe218 100644
--- a/vnftest/onap/onboard/submit_vsp.yaml
+++ b/vnftest/onap/onboard/submit_vsp.yaml
@@ -12,12 +12,13 @@
# the License
##############################################################################
---
-method: "PUT"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products/{vsp_id}/versions/0.1/actions"
-headers: {
- "Content-Type": "application/json",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-body: {"action":"Submit"}
+method: PUT
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products/{{vsp_id}}/versions/0.1/actions
+headers:
+ Content-Type: application/json
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+
+body:
+ action: Submit
diff --git a/vnftest/onap/onboard/upload_package.yaml b/vnftest/onap/onboard/upload_package.yaml
index 958782f..43bdae3 100644
--- a/vnftest/onap/onboard/upload_package.yaml
+++ b/vnftest/onap/onboard/upload_package.yaml
@@ -12,12 +12,11 @@
# the License
##############################################################################
---
-method: "POST"
-url: "http://{sdc_ip}:{sdc_port}/onboarding-api/v1.0/vendor-software-products/{vsp_id}/versions/0.1/orchestration-template-candidate"
-headers: {
- "Content-Type": "multipart/form-data",
- "Authorization": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
- "USER_ID": "{sdc_designer_user}",
- "Accept": "application/json"
- }
-file: "{package_file_path}" \ No newline at end of file
+method: POST
+url: http://{{sdc_ip}}:{{sdc_port}}/onboarding-api/v1.0/vendor-software-products/{{vsp_id}}/versions/0.1/orchestration-template-candidate
+headers:
+ Content-Type: multipart/form-data
+ Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+ USER_ID: {{sdc_designer_user}}
+ Accept: application/json
+file: {{package_file_path}} \ No newline at end of file