diff options
-rw-r--r-- | share/common/msapi/extsys.py | 20 | ||||
-rw-r--r-- | windriver/titanium_cloud/resource/views/capacity.py | 13 | ||||
-rw-r--r-- | windriver/titanium_cloud/urls.py | 4 | ||||
-rw-r--r-- | windriver/titanium_cloud/vesagent/vesagent_ctrl.py | 2 |
4 files changed, 36 insertions, 3 deletions
diff --git a/share/common/msapi/extsys.py b/share/common/msapi/extsys.py index 772a526e..c0cc7f27 100644 --- a/share/common/msapi/extsys.py +++ b/share/common/msapi/extsys.py @@ -19,6 +19,7 @@ from common.utils import restcall logger = logging.getLogger(__name__) + def get_vim_by_id(vim_id): cloud_owner,cloud_region_id = decode_vim_id(vim_id) @@ -93,6 +94,25 @@ def delete_vim_by_id(vim_id): # return non zero if failed to decode cloud owner and region id return 1 +def encode_vim_id(cloud_owner, cloud_region_id): + ''' + compose vim_id by cloud_owner and cloud_region, make sure the vimid can be converted back when talking to AAI,etc. + This is a backward compatibility design to reuse the existing implementation code + :param cloud_owner: + :param cloud_region: + :return: + ''' + + # since the {cloud_owner}/{cloud_region_id"} is globally unique, the concatenated one as below will be unique as well. + vim_id = cloud_owner + "_" + cloud_region_id + + #other options: + #1, store it into cache so the decode and just look up the cache for decoding + #2, use other delimiter in case '_' is used by cloud owner/cloud region id + # , e.g. '.', '#', hence the decode need to try more than one time + + return vim_id + def decode_vim_id(vim_id): m = re.search(r'^([0-9a-zA-Z-]+)_([0-9a-zA-Z_-]+)$', vim_id) cloud_owner, cloud_region_id = m.group(1), m.group(2) diff --git a/windriver/titanium_cloud/resource/views/capacity.py b/windriver/titanium_cloud/resource/views/capacity.py index 6adb8785..26a673c0 100644 --- a/windriver/titanium_cloud/resource/views/capacity.py +++ b/windriver/titanium_cloud/resource/views/capacity.py @@ -140,3 +140,16 @@ class CapacityCheck(APIView): return Response(data={'result': hasEnoughResource, 'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + +class CapacityCheckV1(APIView): + + def __init__(self): + self._logger = logger + + def post(self, request, cloud_owner="", cloud_region_id=""): + self._logger.info("vimid, data> %s,%s, %s" % (cloud_owner, cloud_region_id, request.data)) + self._logger.debug("META> %s" % request.META) + + vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id) + return super(CapacityCheckV1, self).post(request, vimid) diff --git a/windriver/titanium_cloud/urls.py b/windriver/titanium_cloud/urls.py index cc538d63..f1ee90a5 100644 --- a/windriver/titanium_cloud/urls.py +++ b/windriver/titanium_cloud/urls.py @@ -58,8 +58,8 @@ urlpatterns = [ # url(r'^api/multicloud-titanium_cloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/' # '(?P<tenantid>[0-9a-zA-Z_-]{20,})/', include('titanium_cloud.requests.urls')), # CapacityCheck -# url(r'^api/multicloud-titanium_cloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/capacity_check/?$', -# capacity.CapacityCheck.as_view()), + url(r'^api/multicloud-titanium_cloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/capacity_check/?$', + capacity.CapacityCheckV1.as_view()), # events # url(r'^api/multicloud-titanium_cloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/events_check/?$', # events.EventsCheck.as_view()), diff --git a/windriver/titanium_cloud/vesagent/vesagent_ctrl.py b/windriver/titanium_cloud/vesagent/vesagent_ctrl.py index 207ae561..d93ccc22 100644 --- a/windriver/titanium_cloud/vesagent/vesagent_ctrl.py +++ b/windriver/titanium_cloud/vesagent/vesagent_ctrl.py @@ -423,5 +423,5 @@ class VesAgentCtrlV1(VesAgentCtrl): self._logger.debug("with META: %s" % request.META) #temp realization for API upgrading only, assume cloud_owner does not contains "_" , refactor it later - vimid = cloud_owner+"_"+cloud_region_id + vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id) return super(VesAgentCtrlV1,self).get(request, vimid) |