From 430153e1a9489a86cf0ff7942eceb0bf5f1c170c Mon Sep 17 00:00:00 2001 From: vrvarma Date: Fri, 13 Dec 2019 10:24:55 -0500 Subject: osdf rearchitecture into apps and libs Change-Id: I2db2f8e252bd5e60807b2ffabf5a5b193a789f7a Signed-off-by: vrvarma Issue-ID: OPTFRA-637 --- apps/placement/templates/conductor_interface.json | 39 ++++++ apps/placement/templates/plc_opt_request.jsont | 142 ++++++++++++++++++++++ apps/placement/templates/plc_opt_response.jsont | 10 ++ apps/placement/templates/policy_request.jsont | 3 + 4 files changed, 194 insertions(+) create mode 100755 apps/placement/templates/conductor_interface.json create mode 100755 apps/placement/templates/plc_opt_request.jsont create mode 100755 apps/placement/templates/plc_opt_response.jsont create mode 100755 apps/placement/templates/policy_request.jsont (limited to 'apps/placement/templates') diff --git a/apps/placement/templates/conductor_interface.json b/apps/placement/templates/conductor_interface.json new file mode 100755 index 0000000..030d6a0 --- /dev/null +++ b/apps/placement/templates/conductor_interface.json @@ -0,0 +1,39 @@ +{ + "name": "{{ name }}", + "files": {}, + "timeout": {{ timeout }}, + "num_solution": "{{ limit }}", + "template": { + "homing_template_version": "2017-10-10", + "parameters": { + {% set comma=joiner(",") %} + {% for key, value in request_params.items() %} {{ comma() }} + "{{key}}": {{ json.dumps(value) }} + {% endfor %} + }, + "locations": { + "customer_loc": { + "latitude": { "get_param": "customer_lat" }, + "longitude": { "get_param": "customer_long" } + } + }, + "demands": {{ json.dumps(demand_list) }}, + {% set comma_main = joiner(",") %} + "constraints": { + {% set comma=joiner(",") %} + {% for elem in policy_groups %} {{ comma() }} + {% for key, value in elem.items() %} + "{{key}}": {{ json.dumps(value) }} + {% endfor %} + {% endfor %} + }, + "optimization": { + {% set comma=joiner(",") %} + {% for elem in optimization_policies %} {{ comma() }} + {% for key, value in elem.items() %} + "{{key}}": {{ json.dumps(value) }} + {% endfor %} + {% endfor %} + } + } +} diff --git a/apps/placement/templates/plc_opt_request.jsont b/apps/placement/templates/plc_opt_request.jsont new file mode 100755 index 0000000..a218b8a --- /dev/null +++ b/apps/placement/templates/plc_opt_request.jsont @@ -0,0 +1,142 @@ +{ + "name": "{{ name }}", + "files": "{{ files }}", + "timeout": "{{ timeout }}", + "num_solution": "{{ limit }}", + "template": { + "CUST_ID": "{{ cust_id }}", + "E2EVPNKEY": "{{ e2evpnkey }}", + "UCPEHOST": "{{ ucpehost }}", + "WAN_PORT1_UP": "{{ wan_port1_up }}", + "WAN_PORT1_DOWN": "{{ wan_port1_down }}", + "EFFECTIVE_BANDWIDTH": "{{ effective_bandwidth }}", + "SERVICE_INST": "{{ service_inst }}", + "locations": { + "customer_loc": { + "host_name": "{{ ucpehost }}" + } + }, + "demands": [ + {% set comma=joiner(",") %} + {% for demand in demand_list %} {{ comma() }} + { + "{{ demand.vnf_name }}": [ + {% set comma2=joiner(",") %} + {% for property in demand.property %} + "inventory_provider": {{ property.inventory_provider }}, + "inventory_type": {{ property.inventory_type }}, + "service_type": {{ property.service_type }}, + "customer_id": {{ property.customer_id }}, + "candidate_id": {{ property.candidate_id }} + {% endfor %} + ] + } + {% endfor %} + ], + "constraints": { + {% set comma_main=joiner(",") %} + + {% if attribute_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for attribute in attribute_policy_list %} {{ comma() }} + attribute['identity'] : { + "type": {{ attribute['type'] }}, + "demands": {{ attribute['demands'] }}, + "properties": { + "evaluate": { + "hypervisor": {{ attribute['property']['hypervisor'] }}, + "aic_version": {{ attribute['property']['aicVersion'] }}, + "aic_type": {{ attribute['property']['aicType'] }}, + "dataplane": {{ attribute['property']['datatype'] }}, + "network_roles": {{ attribute['property']['networkRoles'] }}, + "complex": {{ attribute['property']['complex'] }} + } + } + } + {% endfor %} + + {% if distance_to_location_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for distance_location in distance_to_location_policy_list %} {{ comma() }} + distance_location['identity'] : { + "type": {{ distance_location['type'] }}, + "demands": {{ distance_location['demands'] }}, + "properties": { + "distance": {{ distance_location['property']['distance'] }}, + "location": {{ distance_location['property']['location'] }} + } + } + {% endfor %} + + {% if inventory_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for inventory in inventory_policy_list %} {{ comma() }} + inventory['identity'] : { + "type": {{ inventory['type'] }}, + "demands": {{ inventory['demands'] }} + } + {% endfor %} + + {% if resource_instance_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for resource_instance in resource_instance_policy_list %} {{ comma() }} + resource_instance['identity'] : { + "type": {{ resource_instance['type'] }}, + "demands": {{ resource_instance['demands'] }}, + "properties": { + "controller": {{ resource_instance['property']['controller'] }}, + "request": {{ resource_instance['property']['request'] }} + } + } + {% endfor %} + + {% if resource_region_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for resource_region in resource_region_policy_list %} {{ comma() }} + resource_region['identity'] : { + "type": {{ resource_region['type'] }}, + "demands": {{ resource_region['demands'] }}, + "properties": { + "controller": {{ resource_region['property']['controller'] }}, + "request": {{ resource_region['property']['request'] }} + } + } + {% endfor %} + + {% if zone_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for zone in zone_policy_list %} {{ comma() }} + zone['identity'] : { + "type": {{ zone['type'] }}, + "demands": {{ zone['demands'] }}, + "properties": { + "qualifier": {{ resource_region['property']['qualifier'] }}, + "category": {{ resource_region['property']['category'] }} + } + } + {% endfor %} + + {% if optmization_policy_list %} {{ comma_main() }} {% endif %} + {% set comma=joiner(",") %} + {% for optimization in optimization_policy_list %} {{ comma() }} + "optimization" : { + {{ optimization['objective'] }}: { + "sum": [ + {% set comma2=joiner(",") %} + {% for parameter in optimization['parameter'] %} {{ comma() }} + { + "product": [ + {{ parameter['weight'] }}, + { + "distance_between": [{{ parameter['customerLocation'] }},{{ parameter['demand'] }}] + } + ] + } + {% endfor %} + ] + } + } + {% endfor %} + } + } +} diff --git a/apps/placement/templates/plc_opt_response.jsont b/apps/placement/templates/plc_opt_response.jsont new file mode 100755 index 0000000..e5709e7 --- /dev/null +++ b/apps/placement/templates/plc_opt_response.jsont @@ -0,0 +1,10 @@ +{ + "requestId": "{{requestId}}", + "transactionId": "{{transacationId}}", + "requestStatus": "{{requestStatus}}", + "statusMessage": "{{statusMessage}}" + "solutions": { + "placementSolutions": {{ json.dumps(composite_solutions) }}, + "licenseSolutions":{{ json.dumps(license_solutions) }} + } +} diff --git a/apps/placement/templates/policy_request.jsont b/apps/placement/templates/policy_request.jsont new file mode 100755 index 0000000..3a9e201 --- /dev/null +++ b/apps/placement/templates/policy_request.jsont @@ -0,0 +1,3 @@ +{ + "policyName": "{{policy_name}}" {# we currently only support query by policy name only -- policyName #} +} -- cgit 1.2.3-korg