Filter endpoint filter mismatch with keystoneauth1 77/67977/1
authorXiaohua Zhang <xiaohua.zhang@windriver.com>
Thu, 20 Sep 2018 04:53:04 +0000 (04:53 +0000)
committerXiaohua Zhang <xiaohua.zhang@windriver.com>
Thu, 20 Sep 2018 04:53:04 +0000 (04:53 +0000)
keystoneauth1 accept region_name as endpoint filter,
which will match either region_id or region of the
endpoint catalog

Change-Id: I7ba1f7904e4b3004565d826f4ea3cd345ce45f62
Issue-ID: MULTICLOUD-364
Signed-off-by: Xiaohua Zhang <xiaohua.zhang@windriver.com>
23 files changed:
newton/newton/resource/views/capacity.py
newton/newton/resource/views/events.py
ocata/ocata/resource/views/capacity.py
ocata/ocata/resource/views/events.py
pike/pike/resource/views/capacity.py
share/newton_base/openoapi/flavor.py
share/newton_base/openoapi/hosts.py
share/newton_base/openoapi/hypervisor.py
share/newton_base/openoapi/image.py
share/newton_base/openoapi/limits.py
share/newton_base/openoapi/network.py
share/newton_base/openoapi/server.py
share/newton_base/openoapi/subnet.py
share/newton_base/openoapi/tenants.py
share/newton_base/openoapi/volume.py
share/newton_base/openoapi/vport.py
share/newton_base/proxy/dnsaasdelegate.py
share/newton_base/proxy/identityV3.py
share/newton_base/proxy/proxy_utils.py
share/newton_base/proxy/services.py
share/newton_base/registration/registration.py
windriver/titanium_cloud/resource/views/capacity.py
windriver/titanium_cloud/vesagent/event_domain/fault_vm.py

index c9d465e..66d68b5 100644 (file)
@@ -54,7 +54,7 @@ class CapacityCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']
                        }
index 1f06c78..9338345 100644 (file)
@@ -53,7 +53,7 @@ class EventsCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']}
 
index b1f3191..eaf7912 100644 (file)
@@ -54,7 +54,7 @@ class CapacityCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']}
 
index 4b477a7..a5b7d82 100644 (file)
@@ -53,7 +53,7 @@ class EventsCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']}
 
index 7f7b9dd..c3bdc94 100644 (file)
@@ -54,7 +54,7 @@ class CapacityCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']}
 
index 18a1398..b0a6bf6 100644 (file)
@@ -64,7 +64,7 @@ class Flavors(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -192,7 +192,7 @@ class Flavors(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -338,7 +338,7 @@ class Flavors(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 7a311b3..e136c40 100644 (file)
@@ -52,7 +52,7 @@ class Hosts(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index bfde0f5..455bad6 100755 (executable)
@@ -72,7 +72,7 @@ class Hypervisors(APIView):
         vim["domain"] = "Default"\r
         sess = VimDriverUtils.get_session(vim, tenantid)\r
 \r
-        self.service['region_id'] = vim['openstack_region_id'] \\r
+        self.service['region_name'] = vim['openstack_region_id'] \\r
             if vim.get('openstack_region_id') \\r
             else vim['cloud_region_id']\r
 \r
index 8561527..e40980d 100644 (file)
@@ -58,7 +58,7 @@ class imageThread (threading.Thread):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id']\
+            self.service['region_name'] = vim['openstack_region_id']\
                            if vim.get('openstack_region_id')\
                            else vim['cloud_region_id']
 
@@ -117,7 +117,7 @@ class Images(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -194,7 +194,7 @@ class Images(APIView):
             #req_body = json.JSONEncoder().encode({"image": image})
             req_body = json.JSONEncoder().encode(image)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -251,7 +251,7 @@ class Images(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index d260ab7..4404972 100644 (file)
@@ -49,7 +49,7 @@ class Limits(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -72,7 +72,7 @@ class Limits(APIView):
             # prepare request resource to vim instance
             req_resouce = "/v2.0/quotas/%s" % tenantid
 
-            self.service_network['region_id'] = vim['openstack_region_id'] \
+            self.service_network['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -86,7 +86,7 @@ class Limits(APIView):
             # prepare request resource to vim instance
             req_resouce = "/limits"
 
-            self.service_volume['region_id'] = vim['openstack_region_id'] \
+            self.service_volume['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 9475ee2..2206143 100644 (file)
@@ -74,7 +74,7 @@ class Networks(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -140,7 +140,7 @@ class Networks(APIView):
                                                   self.keys_mapping, True)
             req_body = json.JSONEncoder().encode({"network": network})
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -187,7 +187,7 @@ class Networks(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 0dd813c..57f7619 100644 (file)
@@ -63,7 +63,7 @@ class ServerVolumeAttachThread (threading.Thread):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -113,7 +113,7 @@ class ServerVolumeAttachThread (threading.Thread):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -167,7 +167,7 @@ class Servers(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -247,7 +247,7 @@ class Servers(APIView):
         sess = VimDriverUtils.get_session(vim, tenantid)
         req_resouce = "servers/%s/os-interface" % serverid
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -276,7 +276,7 @@ class Servers(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -415,7 +415,7 @@ class Servers(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -477,7 +477,7 @@ class Servers(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 1d4f761..a5cef9c 100644 (file)
@@ -76,7 +76,7 @@ class Subnets(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -142,7 +142,7 @@ class Subnets(APIView):
                                                   self.keys_mapping, True)
             req_body = json.JSONEncoder().encode({"subnet": subnet})
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -191,7 +191,7 @@ class Subnets(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index a8b9746..7143941 100644 (file)
@@ -53,7 +53,7 @@ class Tenants(APIView):
 
             sess = VimDriverUtils.get_session(vim)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 100d239..70b786b 100644 (file)
@@ -77,7 +77,7 @@ class Volumes(APIView):
         vim = VimDriverUtils.get_vim_info(vimid)
         sess = VimDriverUtils.get_session(vim, tenantid)
 
-        self.service['region_id'] = vim['openstack_region_id'] \
+        self.service['region_name'] = vim['openstack_region_id'] \
             if vim.get('openstack_region_id') \
             else vim['cloud_region_id']
 
@@ -143,7 +143,7 @@ class Volumes(APIView):
                                                   self.keys_mapping, True)
             req_body = json.JSONEncoder().encode({"volume": volume})
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -190,7 +190,7 @@ class Volumes(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 195b820..5a79926 100644 (file)
@@ -78,7 +78,7 @@ class Vports(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
@@ -219,7 +219,7 @@ class Vports(APIView):
             vim = VimDriverUtils.get_vim_info(vimid)
             sess = VimDriverUtils.get_session(vim, tenantid)
 
-            self.service['region_id'] = vim['openstack_region_id'] \
+            self.service['region_name'] = vim['openstack_region_id'] \
                 if vim.get('openstack_region_id') \
                 else vim['cloud_region_id']
 
index 07ba1b5..7480633 100644 (file)
@@ -128,7 +128,7 @@ class DnsaasDelegate(Services):
             service = {
                 'service_type': servicetype,
                 'interface': interface,
-                'region_id': vim['openstack_region_id']
+                'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']
             }
index 0b51a1d..7932b8e 100644 (file)
@@ -195,7 +195,7 @@ class TokensV2(Tokens):
                         v2_catalog1_endpoints = {
                             "id": v3_endpoint['id'],
                             "region":v3_endpoint['region'],
-                            "region_id": v3_endpoint['region_id'],
+                            "region_name": v3_endpoint['region_id'],
                             'interface':v3_endpoint['interface']
                         }
                         if v3_endpoint['interface'] == 'public':
index 28f5f3a..e82b429 100644 (file)
@@ -36,17 +36,18 @@ class ProxyUtils(object):
         if not content:
             return content
 
+        content_str = json.dumps(content)
+
         for (servicetype, service_metadata) in metadata_catalog.items():
-            real_prefix = service_metadata['prefix']
-            proxy_prefix = service_metadata['proxy_prefix']
+            real_prefix = service_metadata.get('prefix', None)
+            proxy_prefix = service_metadata.get('proxy_prefix', None)
 
-            if content:
+            if real_prefix and proxy_prefix:
                 # filter the resp content and replace all endpoint prefix
-                tmp_content = json.dumps(content)
                 tmp_pattern = re.compile(real_prefix+r'([^:])')
-                tmp_content = tmp_pattern.sub(proxy_prefix+r'\1', tmp_content)
-                content = json.loads(tmp_content)
+                content_str = tmp_pattern.sub(proxy_prefix+r'\1', content_str)
 
+        content = json.loads(content_str)
         return content
 
     @staticmethod
index 36ae984..631ee35 100644 (file)
@@ -103,9 +103,8 @@ class Services(APIView):
             service = {
                 'service_type': servicetype,
                 'interface': interface,
-                       'region_id': vim['openstack_region_id']
-                           if vim.get('openstack_region_id')
-                           else vim['cloud_region_id']
+                'region_name': vim['openstack_region_id']
+                     if vim.get('openstack_region_id') else vim['cloud_region_id']
             }
 
 
@@ -113,7 +112,7 @@ class Services(APIView):
             if querystr:
                 req_resource += "?" + querystr
 
-            self._logger.info("service " + action + " request with uri %s" % (req_resource))
+            self._logger.info("service " + action + " request with uri %s,%s" % (req_resource, service))
             if(action == "get"):
                 resp = sess.get(req_resource, endpoint_filter=service,
                                 headers={"Content-Type": "application/json",
@@ -186,13 +185,13 @@ class Services(APIView):
             interface = 'public'
             service = {'service_type': servicetype,
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']
                        }
 
 
-            self._logger.info("service head request with uri %s" % (req_resource))
+            self._logger.info("service head request with uri %s, %s" % (req_resource, service))
             resp = sess.head(req_resource, endpoint_filter=service)
             self._logger.info("service head response status %s" % (resp.status_code))
 
index 01748f8..d5b75cf 100644 (file)
@@ -42,7 +42,7 @@ class Registry(APIView):
             vimid, content_key):
         service = {'service_type': service_type,
                    'interface': 'public',
-                   'region_id': viminfo['openstack_region_id']
+                   'region_name': viminfo['openstack_region_id']
                        if viminfo.get('openstack_region_id')
                        else viminfo['cloud_region_id']}
 
@@ -591,7 +591,7 @@ class Registry(APIView):
                     req_resource = schema
                     service = {'service_type': "image",
                                'interface': 'public',
-                               'region_id': viminfo['openstack_region_id']
+                               'region_name': viminfo['openstack_region_id']
                                if viminfo.get('openstack_region_id')
                                else viminfo['cloud_region_id']
                                }
@@ -638,7 +638,7 @@ class Registry(APIView):
                         req_resource = "/os-hypervisors/detail?hypervisor_hostname_pattern=%s" % k
                         service = {'service_type': "compute",
                                    'interface': 'public',
-                                   'region_id': viminfo['openstack_region_id']
+                                   'region_name': viminfo['openstack_region_id']
                                    if viminfo.get('openstack_region_id')
                                    else viminfo['cloud_region_id']
                                    }
index 0619e83..25b29da 100644 (file)
@@ -54,7 +54,7 @@ class CapacityCheck(APIView):
             interface = 'public'
             service = {'service_type': 'compute',
                        'interface': interface,
-                       'region_id': vim['openstack_region_id']
+                       'region_name': vim['openstack_region_id']
                            if vim.get('openstack_region_id')
                            else vim['cloud_region_id']
                        }
index 9b6d022..c3f878e 100644 (file)
@@ -22,6 +22,7 @@ import time
 from django.conf import settings
 from titanium_cloud.vesagent.vespublish import publishAnyEventToVES
 from common.utils import restcall
+from common.msapi.helper import Helper as helper
 
 import datetime
 import time