Use outputs section for getting ip addresses

Instead of direct call in test we may also test attributes and show good
example of how to use get_attr functions.

Change-Id: I4c2e78fe6c1fc8808f0180592b60c091613a3af9
diff --git a/scenario/templates/test_neutron_loadbalancer.yaml b/scenario/templates/test_neutron_loadbalancer.yaml
index fad7db8..a7e9f9c 100644
--- a/scenario/templates/test_neutron_loadbalancer.yaml
+++ b/scenario/templates/test_neutron_loadbalancer.yaml
@@ -32,7 +32,7 @@
         - remote_ip_prefix: 0.0.0.0/0
           protocol: icmp
 
-  server1 :
+  server1:
     type: OS::Nova::Server
     properties:
       name: Server1
@@ -52,7 +52,7 @@
           - 'python -m SimpleHTTPServer '
           - { get_param: port }
 
-  server2 :
+  server2:
     type: OS::Nova::Server
     properties:
       name: Server2
@@ -106,3 +106,12 @@
       members:
       - { get_resource: server1 }
 
+outputs:
+  serv1_ip:
+    value: {get_attr: [server1, networks, private, 0]}
+  serv2_ip:
+    value: {get_attr: [server2, networks, private, 0]}
+  vip:
+    value: {get_attr: [test_pool, vip, address]}
+  fip:
+    value: {get_attr: [floating_ip, floating_ip_address]}
diff --git a/scenario/test_neutron_loadbalancer.py b/scenario/test_neutron_loadbalancer.py
index bc2d77c..3f49251 100644
--- a/scenario/test_neutron_loadbalancer.py
+++ b/scenario/test_neutron_loadbalancer.py
@@ -64,23 +64,11 @@
             parameters=parameters
         )
 
-        server1_id = self.client.resources.get(
-            sid, 'server1').physical_resource_id
-        server2_id = self.client.resources.get(
-            sid, 'server2').physical_resource_id
-        floating_ip_id = self.client.resources.get(
-            sid, 'floating_ip').physical_resource_id
-        floating_ip = self.network_client.show_floatingip(
-            floating_ip_id)['floatingip']['floating_ip_address']
-        pool_id = self.client.resources.get(
-            sid, 'test_pool').physical_resource_id
-        vip_id = self.network_client.show_pool(pool_id)['pool']['vip_id']
-
-        vip = self.network_client.show_vip(vip_id)['vip']['address']
-        server1_ip = self.compute_client.servers.get(
-            server1_id).networks['private'][0]
-        server2_ip = self.compute_client.servers.get(
-            server2_id).networks['private'][0]
+        stack = self.client.stacks.get(sid)
+        floating_ip = self._stack_output(stack, 'fip')
+        vip = self._stack_output(stack, 'vip')
+        server1_ip = self._stack_output(stack, 'serv1_ip')
+        server2_ip = self._stack_output(stack, 'serv2_ip')
 
         # Check connection and info about received responces
         self.check_connectivity(server1_ip)