diff options
author | Bin Yang <bin.yang@windriver.com> | 2018-05-16 11:37:59 +0800 |
---|---|---|
committer | Bin Yang <bin.yang@windriver.com> | 2018-05-16 11:37:59 +0800 |
commit | 2ab29f278f8a27d329fffe49a9feb065ca4abb61 (patch) | |
tree | 2ecff88ceb20d61a6ffc259e657995abc9e9ff74 | |
parent | b1d581f77eee6b1a592518ac7dca81448974cc02 (diff) |
Change the AAI call for query cloud region
This is to break the single AAI call into two
to reduce the data exchanged in case cloud region
assoicated with so many child objects
Change-Id: I8d23764be1da82d8298f84cbe1a95427dc26c333
Issue-ID: MULTICLOUD-232
Signed-off-by: Bin Yang <bin.yang@windriver.com>
-rw-r--r-- | share/common/msapi/extsys.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/share/common/msapi/extsys.py b/share/common/msapi/extsys.py index 99824ef2..626a38fc 100644 --- a/share/common/msapi/extsys.py +++ b/share/common/msapi/extsys.py @@ -24,8 +24,9 @@ def get_vim_by_id(vim_id): cloud_owner,cloud_region_id = decode_vim_id(vim_id) if cloud_owner and cloud_region_id: + # get cloud region without depth retcode, content, status_code = \ - restcall.req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s?depth=1" + restcall.req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s" % (cloud_owner,cloud_region_id),"GET") if retcode != 0: logger.error("Status code is %s, detail is %s.", status_code, content) @@ -34,18 +35,20 @@ def get_vim_by_id(vim_id): status_code, content) tmp_viminfo = json.JSONDecoder().decode(content) - #assume esr-system-info-id is composed by {cloud-owner} _ {cloud-region-id} -# retcode2,content2,status_code2 = \ -# restcall.req_to_aai(("/cloud-infrastructure/cloud-regions/cloud-region/%(owner)s/%(region)s" -# "/esr-system-info-list/esr-system-info/%(owner)s_%(region)s" % { -# "owner": cloud_owner, "region": cloud_region_id}), "GET") -# if retcode2 != 0: -# logger.error("Status code is %s, detail is %s.", status_code, content) -# raise VimDriverNewtonException( -# "Failed to query ESR system with id (%s:%s,%s)." % (vim_id,cloud_owner,cloud_region_id), -# status_code2, content2) -# tmp_authinfo = json.JSONDecoder().decode(content2) - tmp_authinfo = tmp_viminfo['esr-system-info-list']['esr-system-info'][0] if tmp_viminfo else None + # get esr-system-info under this cloud region + retcode2, content2, status_code2 = \ + restcall.req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s/esr-system-info-list" + % (cloud_owner,cloud_region_id),"GET") + if retcode2 != 0: + logger.error("Status code is %s, detail is %s.", status_code2, content2) + raise VimDriverNewtonException( + "Failed to query esr info for VIM with id (%s:%s,%s)." % (vim_id,cloud_owner,cloud_region_id), + status_code2, content2) + tmp_authinfo = json.JSONDecoder().decode(content2) + + # get the first auth info by default + tmp_authinfo = tmp_authinfo['esr-system-info'][0] if tmp_authinfo \ + and tmp_authinfo.get('esr-system-info', None) else None #convert vim information if tmp_viminfo and tmp_authinfo: |