Deprecating launch app and ansible support.
[snaps.git] / snaps / openstack / create_instance.py
index 45666d5..b158a25 100644 (file)
@@ -96,7 +96,7 @@ class OpenStackVmInstance(OpenStackComputeObject):
         """
         self.initialize()
 
-        if len(self.__ports) == 0:
+        if len(self.__ports) != len(self.instance_settings.port_settings):
             self.__ports = self.__create_ports(
                 self.instance_settings.port_settings)
         if not self.__vm:
@@ -346,12 +346,13 @@ class OpenStackVmInstance(OpenStackComputeObject):
 
         for port_setting in port_settings:
             port = neutron_utils.get_port(
-                self.__neutron, self.__keystone, port_settings=port_setting)
+                self.__neutron, self.__keystone, port_settings=port_setting,
+                project_name=self._os_creds.project_name)
             if not port:
                 port = neutron_utils.create_port(
                     self.__neutron, self._os_creds, port_setting)
-                if port:
-                    ports.append((port_setting.name, port))
+            if port:
+                ports.append((port_setting.name, port))
 
         return ports
 
@@ -390,8 +391,10 @@ class OpenStackVmInstance(OpenStackComputeObject):
         port = self.get_port_by_name(port_name)
         if port:
             if subnet_name:
+                network = neutron_utils.get_network_by_id(
+                    self.__neutron, port.network_id)
                 subnet = neutron_utils.get_subnet(
-                    self.__neutron, subnet_name=subnet_name)
+                    self.__neutron, network, subnet_name=subnet_name)
                 if not subnet:
                     logger.warning('Cannot retrieve port IP as subnet could '
                                    'not be located with name - %s',
@@ -471,9 +474,12 @@ class OpenStackVmInstance(OpenStackComputeObject):
                           playbook
         :param fip_name: the name of the floating IP to use for applying the
                          playbook (default - will take the first)
-        :return: the return value from ansible
         """
-        return ansible_utils.apply_playbook(
+        from warnings import warn
+        warn('This method will be removed in a subsequent release',
+             DeprecationWarning)
+
+        ansible_utils.apply_playbook(
             pb_file_loc, [self.get_floating_ip(fip_name=fip_name).ip],
             self.get_image_user(),
             ssh_priv_key_file_path=self.keypair_settings.private_filepath,