예제 #1
0
 def _lookup_res(self, resource_source, res_name):
     res = resource_source(Name=res_name)
     n = len(res)
     if n == 0:
         return None
     elif n > 1:
         raise exceptions.HyperVClusterException(
             _('Duplicate resource name %s found.') % res_name)
     else:
         return res[0]
예제 #2
0
    def _init_hyperv_conn(self, host):
        try:
            self._conn_cluster = self._get_wmi_conn(
                self._MS_CLUSTER_NAMESPACE % host)
            self._cluster = self._conn_cluster.MSCluster_Cluster()[0]

            # extract this node name from cluster's path
            path = self._cluster.path_()
            self._this_node = re.search(r'\\\\(.*)\\root', path,
                                        re.IGNORECASE).group(1)
        except AttributeError:
            raise exceptions.HyperVClusterException(
                _("Could not initialize cluster wmi connection."))
예제 #3
0
 def check_cluster_state(self):
     if len(self._get_cluster_nodes()) < 1:
         raise exceptions.HyperVClusterException(
             _("Not enough cluster nodes."))