aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukasz Rajewski <lukasz.rajewski@orange.com>2020-02-19 15:14:25 +0100
committerLukasz Rajewski <lukasz.rajewski@orange.com>2020-02-20 10:10:06 +0100
commit42ecc70c1f5a05c4de5dda414a7964398552b47d (patch)
tree5ad135e7775c72b09de6a57ccef8cc623f82a52a
parent7e52797291d42161a2e43e18040616fe1f7b31bd (diff)
APPC CDT Automation
The patch modifies vFWDT configuration scripts in order to automate the configuration of APPC artifacts instead of CDT. As a result it makes use case closer for CSIT automation Change-Id: I5ab2785093515ee0b224c8f3e8a5d9eb600e52f9 Issue-ID: APPC-1731 Signed-off-by: Lukasz Rajewski <lukasz.rajewski@orange.com>
-rwxr-xr-xtutorials/vFWDT/playbooks/configure_ansible.sh26
-rwxr-xr-xtutorials/vFWDT/playbooks/darkstatbin391544 -> 0 bytes
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/action-template.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/all-actions-content.json77
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/reference-all-actions.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params-list.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params-list.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params.json9
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/traffic.json13
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/upgrade.json15
-rwxr-xr-xtutorials/vFWDT/workflow/templates/cdt-templates/vpgn/traffic.json13
-rwxr-xr-xtutorials/vFWDT/workflow/workflow.py163
13 files changed, 361 insertions, 0 deletions
diff --git a/tutorials/vFWDT/playbooks/configure_ansible.sh b/tutorials/vFWDT/playbooks/configure_ansible.sh
index 5c197963..c49153f8 100755
--- a/tutorials/vFWDT/playbooks/configure_ansible.sh
+++ b/tutorials/vFWDT/playbooks/configure_ansible.sh
@@ -17,6 +17,32 @@
#
# ============LICENSE_END=========================================================
+if [ ! -f playbooks/onap.pem ]; then
+ echo "onap.pem file does not exist"
+ exit
+fi
+
+K8S_NODE_IP=`kubectl get nodes -o=wide | grep 01 | awk {'print $6'}`
+
+CDT_REQ_DIR="workflow/templates/cdt-requests"
+
+echo "APPC Artifacts configuration"
+
+for f in $CDT_REQ_DIR/*.json; do
+ echo ""
+ echo "Uploading $f"
+ RES=`curl -k -s -X POST -H "Content-Type: application/json" -d @$f https://$K8S_NODE_IP:30211/cdtService/getDesigns`
+ echo "$RES"
+
+ if [[ $RES != *'"code":"400","message":"success"'* ]]; then
+ echo "CDT Artifact Upload failed"
+ exit
+ fi
+done
+
+echo "APPC Artifacts configuration completed"
+
+echo "APPC Ansible configuration"
ANSIBLE=`kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | grep appc-ansible`
echo $ANSIBLE
diff --git a/tutorials/vFWDT/playbooks/darkstat b/tutorials/vFWDT/playbooks/darkstat
deleted file mode 100755
index e80f43fe..00000000
--- a/tutorials/vFWDT/playbooks/darkstat
+++ /dev/null
Binary files differ
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/action-template.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/action-template.json
new file mode 100755
index 00000000..9e7429a6
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/action-template.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "action": "DistributeTrafficCheck",
+ "artifact-name": "template_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.0.1",
+ "artifact-contents": "{\r\n \"InventoryNames\": \"VM\",\r\n \"PlaybookName\": \"${book_name}\",\r\n \"AutoNodeList\": True,\r\n \"EnvParameters\": {\r\n \"ConfigFileName\": \"../traffic_distribution_config.json\",\r\n \"vnf_instance\": \"vfwdt\",\r\n },\r\n \"FileParameters\": {\r\n \"traffic_distribution_config.json\": \"${file_parameter_content}\"\r\n },\r\n \"Timeout\": 3600\r\n}"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/all-actions-content.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/all-actions-content.json
new file mode 100755
index 00000000..4269f0e1
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/all-actions-content.json
@@ -0,0 +1,77 @@
+{
+ "reference_data": [
+ {
+ "action": "DistributeTraffic",
+ "action-level": "vnf",
+ "scope": {
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "vnfc-type-list": [],
+ "vnfc-type": ""
+ },
+ "template": "Y",
+ "vm": [],
+ "device-protocol": "ANSIBLE",
+ "user-name": "admin",
+ "port-number": "8000",
+ "artifact-list": [
+ {
+ "artifact-name": "template_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "config_template"
+ },
+ {
+ "artifact-name": "pd_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.yaml",
+ "artifact-type": "parameter_definitions"
+ },
+ {
+ "artifact-name": "param_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "param_values"
+ }
+ ],
+ "scopeType": "vnf-type"
+ },
+ {
+ "action": "AllAction",
+ "action-level": "vnf",
+ "scope": {
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "vnfc-type-list": [],
+ "vnfc-type": ""
+ },
+ "artifact-list": [
+ {
+ "artifact-name": "reference_AllAction_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "reference_template"
+ }
+ ]
+ },
+ {
+ "action": "DistributeTrafficCheck",
+ "action-level": "vnf",
+ "scope": {
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "vnfc-type-list": [],
+ "vnfc-type": ""
+ },
+ "template": "Y",
+ "vm": [],
+ "device-protocol": "ANSIBLE",
+ "user-name": "admin",
+ "port-number": "8000",
+ "artifact-list": [
+ {
+ "artifact-name": "template_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "config_template"
+ },
+ {
+ "artifact-name": "pd_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.yaml",
+ "artifact-type": "parameter_definitions"
+ },
+ {
+ "artifact-name": "param_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "param_values"
+ }
+ ],
+ "scopeType": "vnf-type"
+ }
+ ]
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/reference-all-actions.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/reference-all-actions.json
new file mode 100755
index 00000000..c99112ae
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/reference-all-actions.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "action": "AllAction",
+ "artifact-name": "reference_AllAction_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.1",
+ "artifact-contents": "{\"reference_data\":[{\"action\":\"DistributeTraffic\",\"action-level\":\"vnf\",\"scope\":{\"vnf-type\":\"vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0\",\"vnfc-type-list\":[],\"vnfc-type\":\"\"},\"template\":\"Y\",\"vm\":[],\"device-protocol\":\"ANSIBLE\",\"user-name\":\"admin\",\"port-number\":\"8000\",\"artifact-list\":[{\"artifact-name\":\"template_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json\",\"artifact-type\":\"config_template\"},{\"artifact-name\":\"pd_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.yaml\",\"artifact-type\":\"parameter_definitions\"},{\"artifact-name\":\"param_DistributeTraffic_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json\",\"artifact-type\":\"param_values\"}],\"scopeType\":\"vnf-type\"},{\"action\":\"AllAction\",\"action-level\":\"vnf\",\"scope\":{\"vnf-type\":\"vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0\",\"vnfc-type-list\":[],\"vnfc-type\":\"\"},\"artifact-list\":[{\"artifact-name\":\"reference_AllAction_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json\",\"artifact-type\":\"reference_template\"}]},{\"action\":\"DistributeTrafficCheck\",\"action-level\":\"vnf\",\"scope\":{\"vnf-type\":\"vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0\",\"vnfc-type-list\":[],\"vnfc-type\":\"\"},\"template\":\"Y\",\"vm\":[],\"device-protocol\":\"ANSIBLE\",\"user-name\":\"admin\",\"port-number\":\"8000\",\"artifact-list\":[{\"artifact-name\":\"template_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json\",\"artifact-type\":\"config_template\"},{\"artifact-name\":\"pd_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.yaml\",\"artifact-type\":\"parameter_definitions\"},{\"artifact-name\":\"param_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json\",\"artifact-type\":\"param_values\"}],\"scopeType\":\"vnf-type\"}]}"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params-list.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params-list.json
new file mode 100755
index 00000000..a0104861
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params-list.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "action": "DistributeTrafficCheck",
+ "artifact-name": "param_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.json",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.0.1",
+ "artifact-contents": "[{\"book_name\":\"\",\"file_parameter_content\":\"\"}]"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params.json
new file mode 100755
index 00000000..1824592f
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/traffic-params.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vPKG 81793128-bca7 0",
+ "action": "DistributeTrafficCheck",
+ "artifact-name": "pd_DistributeTrafficCheck_vFWDT2020-02-0314:40:_vFWDT_vPKG81793128-bca70_0.0.1V.yaml",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.0.1",
+ "artifact-contents": "---\nkind: \"Property Definition\"\nversion: V1\nvnf-parameter-list:\n- name: book_name\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n- name: file_parameter_content\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params-list.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params-list.json
new file mode 100755
index 00000000..5d029269
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params-list.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vFWSNK 3f9e7507-b8de 0",
+ "action": "UpgradeSoftware",
+ "artifact-name": "param_UpgradeSoftware_vFWDT2020-02-0314:40:_vFWDT_vFWSNK3f9e7507-b8de0_0.0.1V.json",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.0.1",
+ "artifact-contents": "[{\"book_name\":\"\",\"new-software-version\":\"\",\"existing-software-version\":\"\",\"file_parameter_content\":\"\"}]"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params.json b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params.json
new file mode 100755
index 00000000..cf656f37
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/templates/upgrade-params.json
@@ -0,0 +1,9 @@
+{
+ "userID": "demo",
+ "vnf-type": "vFWDT 2020-02-03 14:40:/vFWDT_vFWSNK 3f9e7507-b8de 0",
+ "action": "UpgradeSoftware",
+ "artifact-name": "pd_UpgradeSoftware_vFWDT2020-02-0314:40:_vFWDT_vFWSNK3f9e7507-b8de0_0.0.1V.yaml",
+ "artifact-type": "APPC-CONFIG",
+ "artifact-version": "0.0.1",
+ "artifact-contents": "---\nkind: \"Property Definition\"\nversion: V1\nvnf-parameter-list:\n- name: book_name\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n- name: new-software-version\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n- name: existing-software-version\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n- name: file_parameter_content\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n"
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/traffic.json b/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/traffic.json
new file mode 100755
index 00000000..404cd2f5
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/traffic.json
@@ -0,0 +1,13 @@
+{
+ "InventoryNames": "VM",
+ "PlaybookName": "${()=(book_name)}",
+ "AutoNodeList": true,
+ "EnvParameters": {
+ "ConfigFileName": "../traffic_distribution_config.json",
+ "vnf_instance": "vfwdt"
+ },
+ "FileParameters": {
+ "traffic_distribution_config.json": "${()=(file_parameter_content)}"
+ },
+ "Timeout": 3600
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/upgrade.json b/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/upgrade.json
new file mode 100755
index 00000000..49c64d0e
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/vfw-sink/upgrade.json
@@ -0,0 +1,15 @@
+{
+ "InventoryNames": "VM",
+ "PlaybookName": "${()=(book_name)}",
+ "AutoNodeList": true,
+ "EnvParameters": {
+ "ConfigFileName": "../config.json",
+ "vnf_instance": "vfwdt",
+ "new_software_version": "${()=(new-software-version)}",
+ "existing_software_version": "${()=(existing-software-version)}"
+ },
+ "FileParameters": {
+ "config.json": "${()=(file_parameter_content)}"
+ },
+ "Timeout": 3600
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/templates/cdt-templates/vpgn/traffic.json b/tutorials/vFWDT/workflow/templates/cdt-templates/vpgn/traffic.json
new file mode 100755
index 00000000..404cd2f5
--- /dev/null
+++ b/tutorials/vFWDT/workflow/templates/cdt-templates/vpgn/traffic.json
@@ -0,0 +1,13 @@
+{
+ "InventoryNames": "VM",
+ "PlaybookName": "${()=(book_name)}",
+ "AutoNodeList": true,
+ "EnvParameters": {
+ "ConfigFileName": "../traffic_distribution_config.json",
+ "vnf_instance": "vfwdt"
+ },
+ "FileParameters": {
+ "traffic_distribution_config.json": "${()=(file_parameter_content)}"
+ },
+ "Timeout": 3600
+} \ No newline at end of file
diff --git a/tutorials/vFWDT/workflow/workflow.py b/tutorials/vFWDT/workflow/workflow.py
index 1ddcde54..cbeac413 100755
--- a/tutorials/vFWDT/workflow/workflow.py
+++ b/tutorials/vFWDT/workflow/workflow.py
@@ -1003,6 +1003,167 @@ def _execute_lcm_requests(workflow, onap_ip, check_result):
_execute_lcm_requests(lcm_requests[i]["workflow"], onap_ip, check_result)
+def _generate_cdt_artifact_request(req_id, artifact, action, vnfc_type):
+ req = {
+ 'input': {
+ 'design-request': {
+ 'request-id': req_id,
+ 'action': "uploadArtifact",
+ 'payload': json.dumps(artifact['payload'])
+ }
+ }
+ }
+
+ file = "{}_{}_{}.json".format(artifact['type'], action.lower(), vnfc_type)
+ dirname = "templates/cdt-requests"
+ #print(file)
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
+ f = open("{}/{}".format(dirname, file), 'w')
+ f.write(json.dumps(req, indent=4))
+ f.close()
+
+ return req
+
+
+def _get_name_of_artifact(prefix, action, vnf_type):
+ return "{}_{}_{}_0.0.1V.json".format(prefix, action, vnf_type)
+
+
+def _set_artifact_payload(vnf_type, vnfc_type, action, artifact):
+ sw_upgrade = False
+ if action == "DistributeTraffic" or action == "DistributeTrafficCheck" or action == "AllAction":
+ pass
+ elif action == "UpgradeSoftware" or action == "UpgradePreCheck" or action == "UpgradePostCheck":
+ sw_upgrade = True
+ else:
+ raise Exception("{} action not supported".format(action))
+
+ artifact_contents = ''
+ if artifact['type'] == 'config_template':
+ file = 'templates/cdt-templates/templates/action-template.json'
+ template_file = 'templates/cdt-templates/{}/{}'
+ if sw_upgrade:
+ template_file = template_file.format(vnfc_type, 'upgrade.json')
+ else:
+ template_file = template_file.format(vnfc_type, 'traffic.json')
+
+ artifact_contents = json.dumps(json.loads(open(template_file).read()))
+ elif artifact['type'] == 'parameter_definitions':
+ file = 'templates/cdt-templates/templates/{}'
+ if sw_upgrade:
+ file = file.format('upgrade-params.json')
+ else:
+ file = file.format('traffic-params.json')
+ elif artifact['type'] == 'param_values':
+ file = 'templates/cdt-templates/templates/{}'
+ if sw_upgrade:
+ file = file.format('upgrade-params-list.json')
+ else:
+ file = file.format('traffic-params-list.json')
+ elif artifact['type'] == 'reference_template':
+ file = 'templates/cdt-templates/templates/reference-all-actions.json'
+ else:
+ raise Exception("{} not supported artifact type".format(artifact['type']))
+
+ payload = json.loads(open(file).read())
+ payload['vnf-type'] = vnf_type
+ payload['artifact-name'] = artifact['name']
+ payload['action'] = action
+
+ if artifact['type'] == 'config_template':
+ artifact['artifact-contents'] = artifact_contents
+ artifact['payload'] = payload
+
+
+def _generate_artifacts_for_cdt(vnf_type, vnf_type_formatted, vnfc_type, action):
+ artifacts = []
+ artifacts.append({
+ 'name': _get_name_of_artifact("template", action, vnf_type_formatted),
+ 'type': 'config_template',
+ 'payload': {'test': 'test'}
+ })
+ artifacts.append({
+ 'name': _get_name_of_artifact("pd", action, vnf_type_formatted),
+ 'type': 'parameter_definitions',
+ 'payload': {'test': 'test'}
+ })
+ artifacts.append({
+ 'name': _get_name_of_artifact("param", action, vnf_type_formatted),
+ 'type': 'param_values',
+ 'payload': {'test': 'test'}
+ })
+
+ _set_artifact_payload(vnf_type, vnfc_type, action, artifacts[0])
+ _set_artifact_payload(vnf_type, vnfc_type, action, artifacts[1])
+ _set_artifact_payload(vnf_type, vnfc_type, action, artifacts[2])
+
+ return artifacts
+
+
+def _generate_cdt_payloads_for_vnf(vnf_info, vnfc_type, actions):
+ req_id = str(uuid.uuid4()).replace('-','')
+ vnf_type_formatted = vnf_info['vnf-type'].replace(' ','').replace('/', '_')
+ artifacts = {
+ 'AllAction': [{
+ 'name': _get_name_of_artifact("reference", 'AllAction', vnf_type_formatted),
+ 'type': 'reference_template'
+ }]
+ }
+
+ all_action_artifact = artifacts['AllAction'][0]
+
+ _set_artifact_payload(vnf_info['vnf-type'], vnfc_type, 'AllAction', all_action_artifact)
+
+ for action in actions:
+ action_artifacts = _generate_artifacts_for_cdt(vnf_info['vnf-type'], vnf_type_formatted, vnfc_type, action)
+ artifacts[action] = action_artifacts
+
+ all_action_artifacts = list()
+
+ for action in artifacts:
+ artifact_list = list()
+ action_info = {
+ 'action': action,
+ 'action-level': "vnf",
+ 'scope': {
+ 'vnf-type': vnf_info['vnf-type'],
+ 'vnfc-type-list': [],
+ 'vnfc-type': ""
+ },
+ 'artifact-list': artifact_list
+ }
+
+ if action != 'AllAction':
+ action_info.update({
+ 'template': "Y",
+ 'vm': [],
+ 'device-protocol': "ANSIBLE",
+ 'user-name': "admin",
+ 'port-number': "8000",
+ 'scopeType': "vnf-type"
+ })
+
+ for action_artifact in artifacts[action]:
+ artifact_list.append({'artifact-name': action_artifact['name'], 'artifact-type': action_artifact['type']})
+ if action != 'AllAction':
+ req = _generate_cdt_artifact_request(req_id, action_artifact, action, vnfc_type)
+ #print(json.dumps(req, indent=4))
+
+ #print(json.dumps(action_info, indent=4))
+ all_action_artifacts.append(action_info)
+
+ all_action_artifact['payload']['artifact-contents'] = json.dumps({'reference_data': all_action_artifacts})
+ req = _generate_cdt_artifact_request(req_id, all_action_artifact, 'AllAction', vnfc_type)
+ #print(json.dumps(req, indent=4))
+
+
+def _generate_cdt_payloads(aai_data):
+ vfw_actions = ["DistributeTrafficCheck", "UpgradeSoftware", "UpgradePreCheck", "UpgradePostCheck", "UpgradeSoftware"]
+ vpgn_actions = ["DistributeTraffic", "DistributeTrafficCheck"]
+ _generate_cdt_payloads_for_vnf(aai_data["vfw-model-info"], "vfw-sink", vfw_actions)
+ _generate_cdt_payloads_for_vnf(aai_data["vpgn-model-info"], "vpgn", vpgn_actions)
+
def execute_workflow(vfw_vnf_id, rancher_ip, onap_ip, use_oof_cache, if_close_loop_vfw, info_only, check_result, new_version=None):
print("\nExecuting workflow for VNF ID '{}' on Rancher with IP {} and ONAP with IP {}".format(
@@ -1030,6 +1191,8 @@ def execute_workflow(vfw_vnf_id, rancher_ip, onap_ip, use_oof_cache, if_close_lo
f.write(inventory)
f.close()
+ _generate_cdt_payloads(aai_data)
+
if info_only:
return
print("\nDistribute Traffic Workflow Execution:")