Offline deploy test

Scenario:
* apt node host dnsmasq and nxign proxy,
  has connectivity to inet and become a proxy to
  mcp.mirror
* All other nodes uses ip of apt node as nameserver
* All other nodes do not have connectivity to internet

Change-Id: I94f5bba191f6846e5e10124f2850a6b4f8be1cca
diff --git a/tcp_tests/managers/underlay_ssh_manager.py b/tcp_tests/managers/underlay_ssh_manager.py
index 12ea22d..4a934ef 100644
--- a/tcp_tests/managers/underlay_ssh_manager.py
+++ b/tcp_tests/managers/underlay_ssh_manager.py
@@ -145,7 +145,8 @@
                 keys.append(rsakey.RSAKey.from_private_key(f))
         return keys
 
-    def __ssh_data(self, node_name=None, host=None, address_pool=None):
+    def __ssh_data(self, node_name=None, host=None, address_pool=None,
+                   node_role=None):
 
         ssh_data = None
 
@@ -164,6 +165,15 @@
                             break
                     else:
                         ssh_data = ssh
+        elif node_role is not None:
+            for ssh in self.config_ssh:
+                if node_role in ssh['roles']:
+                    if address_pool is not None:
+                        if address_pool == ssh['address_pool']:
+                            ssh_data = ssh
+                            break
+                    else:
+                        ssh_data = ssh
         if ssh_data is None:
             raise Exception('Auth data for node was not found using '
                             'node_name="{}" , host="{}" , address_pool="{}"'
@@ -220,6 +230,11 @@
                                    address_pool=address_pool)
         return ssh_data['host']
 
+    def host_by_node_role(self, node_role, address_pool=None):
+        ssh_data = self.__ssh_data(node_role=node_role,
+                                   address_pool=address_pool)
+        return ssh_data['host']
+
     def remote(self, node_name=None, host=None, address_pool=None):
         """Get SSHClient by a node name or hostname.