def shutdown(self, vcname): """ Shutdown the nodes of the specified virtual cluster. :param vcname: Name of running virtual cluster :return: True if cluster is shutdown, otherwise False """ nodes = self.get_cluster_status(vcname) for node in nodes: if nodes[node] == 'active': print " Shutting down node %s" % node exitcode=0 (out, exitcode) = pragma.utils.getRocksOutputAsList( "stop host vm %s" % node) if exitcode != 0: sys.stderr.write("Problem shutting down node %s: %s\n" % ( node, "\n".join(out))) sys.exit(1) time.sleep(1) nodes = self.get_cluster_status(vcname) disks = ImageManager.get_disks(vcname) for node in nodes: if nodes[node] != 'nostate': sys.stderr.write("Error, node %s not shut down\n" % node) return False ImageManager.wait_for_disk(vcname, disks[vcname]) return True
def shutdown(self, vcname): """ Shutdown the nodes of the specified virtual cluster. :param vcname: Name of running virtual cluster :return: True if cluster is shutdown, otherwise False """ nodes = self.get_cluster_status(vcname) for node in nodes: if nodes[node] == 'active': print " Shutting down node %s" % node exitcode = 0 (out, exitcode) = pragma.utils.getRocksOutputAsList( "stop host vm %s" % node) if exitcode != 0: sys.stderr.write("Problem shutting down node %s: %s\n" % (node, "\n".join(out))) sys.exit(1) time.sleep(1) nodes = self.get_cluster_status(vcname) disks = ImageManager.get_disks(vcname) for node in nodes: if nodes[node] != 'nostate': sys.stderr.write("Error, node %s not shut down\n" % node) return False ImageManager.wait_for_disk(vcname, disks[vcname]) return True
def deploy(self, repository): """ Deploy the specified virtual cluster :param repository: repository with xml in/out objects :return: """ # get references to xml in/out objects and temp directory vc_in = repository.getXmlInputObject(repository.cluster) vc_out = repository.getXmlOutputObject() temp_dir = repository.getStagingDir() network_conf = [ '/etc/udev/rules.d/70-persistent-net.rules', '/etc/sysconfig/network-scripts/ifcfg-eth*' ] new_config = { vc_out.filename: "/root/vc-out.xml" } image_manager = ImageManager.factory(vc_in, vc_out, temp_dir) # prepare and boot frontend image_manager.prepare_frontend(network_conf, new_config) self.boot(image_manager.fe_name) # prepare and boot computes for node in vc_out.get_compute_names(): compute_config = { vc_out.get_vc_out(node): "/root/vc-out.xml" } image_manager.prepare_compute(node, network_conf, compute_config) self.boot(node) image_manager.boot_cleanup()
def clean(self, vcname): """ Unallocate virtual cluster and clean up disks. :param vcname: Name of virtual cluster to be cleaned :return: True if clean was successful, otherwise False """ nodes = self.get_cluster_status(vcname) for node in nodes: if nodes[node] == 'active': sys.stderr.write("Error: node %s still active; please shutdown cluster first.\n" % node) return False for node in nodes: (out, exitcode) = pragma.utils.getRocksOutputAsList( "list host vm %s showdisks=true" % node) if exitcode != 0: sys.stderr.write("Problem quering node %s: %s\n" % ( node, "\n".join(out))) return False fields = re.split("\s+", out[1]) if ImageManager.clean_disk(node, fields[6], fields[4]) == False: sys.stderr.write("Problem cleaning disk of node %s\n" % node) return False print " Unallocating cluster %s" % vcname (out, exitcode) = pragma.utils.getRocksOutputAsList( "remove cluster %s" % vcname) for line in out: print " %s" % line return True
def deploy(self, repository): """ Deploy the specified virtual cluster :param repository: repository with xml in/out objects :return: """ # get references to xml in/out objects and temp directory vc_in = repository.getXmlInputObject(repository.cluster) vc_out = repository.getXmlOutputObject() temp_dir = repository.getStagingDir() network_conf = [ '/etc/udev/rules.d/70-persistent-net.rules', '/etc/sysconfig/network-scripts/ifcfg-eth*' ] new_config = {vc_out.filename: "/root/vc-out.xml"} image_manager = ImageManager.factory(vc_in, vc_out, temp_dir) # prepare and boot frontend image_manager.prepare_frontend(network_conf, new_config) self.boot(image_manager.fe_name) # prepare and boot computes for node in vc_out.get_compute_names(): compute_config = {vc_out.get_vc_out(node): "/root/vc-out.xml"} image_manager.prepare_compute(node, network_conf, compute_config) self.boot(node) image_manager.boot_cleanup()
def clean(self, vcname): """ Unallocate virtual cluster and clean up disks. :param vcname: Name of virtual cluster to be cleaned :return: True if clean was successful, otherwise False """ nodes = self.get_cluster_status(vcname) for node in nodes: if nodes[node] == 'active': sys.stderr.write( "Error: node %s still active; please shutdown cluster first.\n" % node) return False for node in nodes: (out, exitcode) = pragma.utils.getRocksOutputAsList( "list host vm %s showdisks=true" % node) if exitcode != 0: sys.stderr.write("Problem quering node %s: %s\n" % (node, "\n".join(out))) return False fields = re.split("\s+", out[1]) if ImageManager.clean_disk(node, fields[6], fields[4]) == False: sys.stderr.write("Problem cleaning disk of node %s\n" % node) return False print " Unallocating cluster %s" % vcname (out, exitcode) = pragma.utils.getRocksOutputAsList( "remove cluster %s" % vcname) for line in out: print " %s" % line return True