aboutsummaryrefslogtreecommitdiffstats
path: root/osdf
diff options
context:
space:
mode:
authorAnkitkumar Patel <ankit@research.att.com>2018-03-27 17:19:26 -0400
committerAnkitkumar Patel <ankit@research.att.com>2018-03-27 17:22:42 -0400
commita79d2cdd881bbafaf672b20ec540ee1c34ddfb3a (patch)
tree800bfc9e4f1616f8e250340844bb8f192993da1d /osdf
parentca43ea7c87abbcaa71617de50598449ff5ff007c (diff)
SO response build module updated
SO response build module is updated based on the HAS API. Issue-ID: OPTFRA-208 Change-Id: I57ed198967d2dc9a58f1221eb57fda56fcb5fd2d Signed-off-by: Ankitkumar Patel <ankit@research.att.com>
Diffstat (limited to 'osdf')
-rw-r--r--osdf/optimizers/placementopt/conductor/conductor.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/osdf/optimizers/placementopt/conductor/conductor.py b/osdf/optimizers/placementopt/conductor/conductor.py
index dc67517..8f286ec 100644
--- a/osdf/optimizers/placementopt/conductor/conductor.py
+++ b/osdf/optimizers/placementopt/conductor/conductor.py
@@ -126,27 +126,32 @@ def conductor_response_processor(conductor_response, raw_response, req_id):
"""
composite_solutions = []
name_map = {"physical-location-id": "cloudClli", "host_id": "vnfHostName",
- "cloud_version": "cloudVersion", "cloud_owner": "cloudOwner"}
+ "cloud_version": "cloudVersion", "cloud_owner": "cloudOwner",
+ "cloud": "cloudRegionId", "service": "serviceInstanceId", "is_rehome": "isRehome",
+ "location_id": "locationId", "location_type": "locationType"}
for reco in conductor_response['plans'][0]['recommendations']:
for resource in reco.keys():
c = reco[resource]['candidate']
solution = {
'resourceModuleName': resource,
- 'serviceResourceId': reco[resource]['service_resource_id'],
- 'inventoryType': c['inventory_type'],
- 'serviceInstanceId': c['candidate_id'] if c['inventory_type'] == "service" else "",
- 'cloudRegionId': c['location_id'],
+ 'serviceResourceId': reco[resource].get('service_resource_id', ""),
+ 'solution': {"identifier": c['inventory_type'],
+ 'identifiers': [c['candidate_id']],
+ 'cloudOwner': c.get('cloud_owner', "")},
'assignmentInfo': []
}
+ for key, value in c.items():
+ if key in ["location_id", "location_type", "is_rehome", "host_id"]:
+ try:
+ solution['assignmentInfo'].append({"key": name_map.get(key, key), "value": value})
+ except KeyError:
+ debug_log.debug("The key[{}] is not mapped and will not be returned in assignment info".format(key))
for key, value in reco[resource]['attributes'].items():
try:
- solution['assignmentInfo'].append({"variableName": name_map[key], "variableValue": value})
+ solution['assignmentInfo'].append({"key": name_map.get(key, key), "value": value})
except KeyError:
debug_log.debug("The key[{}] is not mapped and will not be returned in assignment info".format(key))
-
- if c.get('host_id'):
- solution['assignmentInfo'].append({'variableName': name_map['host_id'], 'variableValue': c['host_id']})
composite_solutions.append(solution)
request_state = conductor_response['plans'][0]['status']
@@ -155,14 +160,15 @@ def conductor_response_processor(conductor_response, raw_response, req_id):
solution_info = {}
if composite_solutions:
- solution_info['placementInfo'] = composite_solutions
+ solution_info.setdefault('placementSolutions', [])
+ solution_info['placementSolutions'].append(composite_solutions)
resp = {
"transactionId": transaction_id,
"requestId": req_id,
"requestState": request_state,
"statusMessage": status_message,
- "solutionInfo": solution_info
+ "solutions": solution_info
}
return resp