Added fixed_ip support for standalone-ironic

This commit adds support for connect_method fixed in case of
standalone ironic. Previously it supported only floating_ip.

Change-Id: I6c0631972b9e898ec492a9de355c29e79ca2aa5c
diff --git a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
index 0137db8..fdd3b9d 100644
--- a/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
+++ b/ironic_tempest_plugin/tests/scenario/baremetal_standalone_manager.py
@@ -146,6 +146,18 @@
         return floating_ip['floating_ip_address']
 
     @classmethod
+    def get_server_ip(cls, node_id):
+        """Get the server fixed IP.
+
+        :param node_id: Name or UUID of the node.
+        :returns: IP address of associated fixed IP.
+        """
+        vif = cls.get_node_vifs(node_id)[0]
+        body = cls.ports_client.show_port(vif)['port']
+        fixed_ip = body['fixed_ips'][0]
+        return fixed_ip['ip_address']
+
+    @classmethod
     def cleanup_floating_ip(cls, ip_address):
         """Removes floating IP."""
         body = cls.os_admin.floating_ips_client.list_floatingips()
@@ -337,11 +349,19 @@
         if cls.deploy_interface:
             boot_kwargs['deploy_interface'] = cls.deploy_interface
         cls.node = cls.boot_node(cls.driver, cls.image_ref, **boot_kwargs)
-        cls.node_ip = cls.add_floatingip_to_node(cls.node['uuid'])
+        if CONF.validation.connect_method == 'floating':
+            cls.node_ip = cls.add_floatingip_to_node(cls.node['uuid'])
+        elif CONF.validation.connect_method == 'fixed':
+            cls.node_ip = cls.get_server_ip(cls.node['uuid'])
+        else:
+            m = ('Configuration option "[validation]/connect_method" '
+                 'must be set.')
+            raise lib_exc.InvalidConfiguration(m)
 
     @classmethod
     def resource_cleanup(cls):
-        cls.cleanup_floating_ip(cls.node_ip)
+        if CONF.validation.connect_method == 'floating':
+            cls.cleanup_floating_ip(cls.node_ip)
         vifs = cls.get_node_vifs(cls.node['uuid'])
         # Remove ports before deleting node, to catch regression for cases
         # when user did this prior unprovision node.