Add initial failover tests

* Warm restart of node by role
* Warm shutdown node by role
* Run func tests after fail

Need to do: assert test results for fails

Change-Id: I51934227340a60d5150e14f5004f2c3575264a36
diff --git a/tcp_tests/managers/envmanager_devops.py b/tcp_tests/managers/envmanager_devops.py
index c800cc2..8afb177 100644
--- a/tcp_tests/managers/envmanager_devops.py
+++ b/tcp_tests/managers/envmanager_devops.py
@@ -330,6 +330,39 @@
             raise exceptions.EnvironmentIsNotSet()
         self.__env.destroy()
 
+    def destroy_node(self, node_name):
+        """Destroy node"""
+        node = self.__env.get_node(name=node_name)
+        node.destroy()
+
+    def start_node(self, node_name):
+        """Start node"""
+        node = self.__env.get_node(name=node_name)
+        node.start()
+
+    def reboot_node(self, node_name):
+        """Reboot node"""
+        node = self.__env.get_node(name=node_name)
+        node.reboot()
+
+    def remove_node(self, node_name):
+        """Remove node"""
+        node = self.__env.get_node(name=node_name)
+        node.remove()
+
+    def wait_for_node_state(self, node_name, state, timeout):
+        node = self.__env.get_node(name=node_name)
+        if 'active' in state:
+            helpers.wait(lambda: node.is_active(),
+                         timeout=timeout,
+                         timeout_msg=('Node {0} failed '
+                                      'to become active'.format(node)))
+        else:
+            helpers.wait(lambda: not node.is_active(),
+                         timeout=timeout,
+                         timeout_msg=('Node {0} failed '
+                                      'to become active'.format(node)))
+
     def has_snapshot(self, name):
         return self.__env.has_snapshot(name)
 
@@ -353,6 +386,15 @@
         LOG.debug('Trying to get nodes by role {0}'.format(node_role))
         return self.__env.get_nodes(role=node_role)
 
+    def __get_nodes_by_name(self, node_name):
+        """Get node by given role name
+
+        :param node_name: string
+        :rtype: devops.models.Node
+        """
+        LOG.debug('Trying to get nodes by role {0}'.format(node_name))
+        return self.__env.get_nodes(name=node_name)
+
     @property
     def master_nodes(self):
         """Get all master nodes