summaryrefslogtreecommitdiffstats
path: root/newton/newton/registration
diff options
context:
space:
mode:
authorBin Yang <bin.yang@windriver.com>2017-09-08 13:43:00 +0800
committerBin Yang <bin.yang@windriver.com>2017-09-08 13:43:00 +0800
commit08fd690840bea327695aca0e816345c5ce7e3cbf (patch)
tree5e391f89518680bcd610f101d1d1a2154c58494d /newton/newton/registration
parent56ce57f8a325eab4786d1b4b7d10570a9698faca (diff)
Populate EPA Capabilities info into AAI
parse and discover EPA CAPs and populate them into AAI fix API call to query ESR Change-Id: I8b5e0429d3fbc9e17390b9c4df9cd12c1f0a42b4 Issue-Id: MULTICLOUD-58 Signed-off-by: Bin Yang <bin.yang@windriver.com>
Diffstat (limited to 'newton/newton/registration')
-rw-r--r--newton/newton/registration/views/registration.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/newton/newton/registration/views/registration.py b/newton/newton/registration/views/registration.py
index 96d1864e..fa388b73 100644
--- a/newton/newton/registration/views/registration.py
+++ b/newton/newton/registration/views/registration.py
@@ -602,7 +602,46 @@ class Registry(APIView):
pass
+ def update_epa_caps(self, cloud_owner, cloud_region_id, epa_caps_info):
+ '''
+ populate cloud EPA Capabilities information into AAI
+ :param cloud_owner:
+ :param cloud_region_id:
+ :param epa_caps_info: dict of meta data about cloud-region's epa caps
+
+ :return:
+ '''
+
+ cloud_epa_caps = {
+ 'cloud-epa-caps': json.dumps(epa_caps_info),
+ }
+
+ if cloud_owner and cloud_region_id:
+ retcode, content, status_code = \
+ req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s/"
+ % (cloud_owner, cloud_region_id, ), "PUT", content=cloud_epa_caps)
+
+ self._logger.debug(
+ "update_epa_caps,vimid:%s_%s req_to_aai: update cloud-epa-caps, return %s, %s, %s"
+ % (cloud_owner,cloud_region_id, retcode, content, status_code))
+
+ return retcode
+ return 1 # unknown cloud owner,region_id
+
def discover_epa_resources(self, request, vimid="", session=None, viminfo=None):
+ cloud_epa_caps_info = {}
+ cloud_extra_info = viminfo.get('cloud_extra_info')
+ if cloud_extra_info:
+ cloud_epa_caps_info.update(json.loads(cloud_extra_info))
+ pass
+
+ cloud_owner, cloud_region_id = extsys.decode_vim_id(vimid)
+ ret = self.update_epa_caps(cloud_owner, cloud_region_id, cloud_epa_caps_info)
+ if ret != 0:
+ # failed to update image
+ self._logger.debug("failed to populate EPA CAPs info into AAI: %s, ret:%s"
+ % (vimid, ret))
+
pass
def update_proxy_identity_endpoint(self, cloud_owner, cloud_region_id, url):