def _recover_network_isolation(self, cluster_name, fail_node_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: logging.error("RecoverManager : cluster not found") return fail_node = cluster.get_node_by_name(fail_node_name) logging.info( "RecoverManager : start to recover the network isolation of node %s" % (fail_node)) self._recover_vm(cluster, fail_node) return self._recover_node_by_reboot(fail_node)
def _recover_hardware_fault(self, cluster_name, fail_node_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: logging.error("RecoverManager : cluster not found") return fail_node = cluster.get_node_by_name(fail_node_name) logging.info( "RecoverManager : start to recover the hardware fault of node %s" % (fail_node)) self._recover_vm(cluster, fail_node) return self._recover_node_by_reboot(fail_node)
def _recover_power_off(self, cluster_name, fail_node_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: logging.error("RecoverManager : cluster not found") return fail_node = cluster.get_node_by_name(fail_node_name) print "fail node is %s, power fail" % fail_node.name print "start recovery vm" self._recover_vm(cluster, fail_node) print "end recovery vm" return self._recover_node_by_start(fail_node)
def _recover_os_hanged(self, cluster_name, fail_node_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: logging.error("RecoverManager : cluster not found") return fail_node = cluster.get_node_by_name(fail_node_name) print "fail node is %s, OS fail" % fail_node.name logging.info("fail node is %s, OS fail", fail_node.name) print "start recovery vm" self._recover_vm(cluster, fail_node) print "end recovery vm" return self._recover_node_by_reboot(fail_node)
def _recover_instance_crash(self, cluster_name, failed_instance_name): cluster = ResourceManager.get_cluster(cluster_name) if not cluster: logging.warning( "RecoverManager, _recover_instance_crash: cluster not found") return failed_instance = cluster.get_protected_instance_by_instance_name( failed_instance_name) if failed_instance == None: logging.warning( "RecoverManager, _recover_instance_crash: failed instance not found" ) return logging.info( "RecoverManager : start to recover the instance crash of instance %s" % (failed_instance_name)) result = failed_instance.recover_instance_crash() return result