Changed pattern on how objects lookup themselves by name and project.
[snaps.git] / snaps / openstack / create_network.py
index c9c58e8..3d50eb5 100644 (file)
 import logging
 
 import enum
-from neutronclient.common.exceptions import NetworkNotFoundClient
+from neutronclient.common.exceptions import NetworkNotFoundClient, Unauthorized
 
 from snaps.config.network import NetworkConfig, SubnetConfig, PortConfig
 from snaps.openstack.openstack_creator import OpenStackNetworkObject
-from snaps.openstack.utils import neutron_utils
+from snaps.openstack.utils import neutron_utils, keystone_utils
 
 __author__ = 'spisarski'
 
@@ -51,9 +51,15 @@ class OpenStackNetwork(OpenStackNetworkObject):
         """
         super(self.__class__, self).initialize()
 
-        self.__network = neutron_utils.get_network(
-            self._neutron, network_settings=self.network_settings,
-            project_id=self.network_settings.get_project_id(self._os_creds))
+        try:
+            keystone = keystone_utils.keystone_client(self._os_creds)
+            self.__network = neutron_utils.get_network(
+                self._neutron, keystone,
+                network_settings=self.network_settings,
+                project_name=self._os_creds.project_name)
+        except Unauthorized as e:
+            logger.warn('Unable to lookup network with name %s - %s',
+                        self.network_settings.name, e)
 
         return self.__network