Enable get_project_by_id when only tenant_id is provided 63/56963/1
authorLinda Wang <wangwulin@huawei.com>
Wed, 4 Apr 2018 03:19:52 +0000 (03:19 +0000)
committerLinda Wang <wangwulin@huawei.com>
Wed, 2 May 2018 09:15:05 +0000 (09:15 +0000)
This is to improve:
https://gerrit.opnfv.org/gerrit/#/c/52675/

Change-Id: I7228e5eadcc121fe94a869c6cbbeac412d972868
Signed-off-by: Linda Wang <wangwulin@huawei.com>
(cherry picked from commit 390d31e3a6eaa0968474d19d71ec804d0c6c071a)

snaps/openstack/utils/neutron_utils.py

index 3fb8b9a..2bde999 100644 (file)
@@ -128,8 +128,12 @@ def get_network(neutron, keystone, network_settings=None, network_name=None,
     for network, netInsts in networks.items():
         for inst in netInsts:
             if project_name:
-                project = keystone_utils.get_project_by_id(
-                    keystone, inst['project_id'])
+                if 'project_id' in inst.keys():
+                    project = keystone_utils.get_project_by_id(
+                        keystone, inst['project_id'])
+                else:
+                    project = keystone_utils.get_project_by_id(
+                        keystone, inst['tenant_id'])
                 if project and project.name == project_name:
                     return __map_network(neutron, inst)
             else:
@@ -382,8 +386,12 @@ def get_router(neutron, keystone, router_settings=None, router_name=None,
     os_routers = neutron.list_routers(**router_filter)
     for os_router in os_routers['routers']:
         if project_name:
-            project = keystone_utils.get_project_by_id(
-                keystone, os_router['project_id'])
+            if 'project_id' in os_router.keys():
+                project = keystone_utils.get_project_by_id(
+                    keystone, os_router['project_id'])
+            else:
+                project = keystone_utils.get_project_by_id(
+                    keystone, os_router['tenant_id'])
             if project and project.name == project_name:
                 return __map_router(neutron, os_router)
 
@@ -549,8 +557,12 @@ def get_port(neutron, keystone, port_settings=None, port_name=None,
     ports = neutron.list_ports(**port_filter)
     for port in ports['ports']:
         if project_name:
-            project = keystone_utils.get_project_by_id(
-                keystone, port['project_id'])
+            if 'project_id' in port.keys():
+                project = keystone_utils.get_project_by_id(
+                    keystone, port['project_id'])
+            else:
+                project = keystone_utils.get_project_by_id(
+                    keystone, port['tenant_id'])
             if project and project.name == project_name:
                 return Port(**port)
         else:
@@ -653,8 +665,12 @@ def get_security_group(neutron, keystone, sec_grp_settings=None,
     groups = neutron.list_security_groups(**sec_grp_filter)
     for group in groups['security_groups']:
         if project_name:
-            project = keystone_utils.get_project_by_id(
-                keystone, group['tenant_id'])
+            if 'project_id' in group.keys():
+                project = keystone_utils.get_project_by_id(
+                    keystone, group['project_id'])
+            else:
+                project = keystone_utils.get_project_by_id(
+                    keystone, group['tenant_id'])
             if project and project_name == project.name:
                 return __map_os_security_group(neutron, group)
         else: