コード例 #1
0
ファイル: vmc-delete.py プロジェクト: dguglielmi/vmc-scripts
    if dom.isActive():
        perror("Can't delete %s because it running here" % todelete)
        conn.close()
        sys.exit(1)

    pinfo("Undefine \"%s\" on %s" % (todelete, h))
    dom.undefine()

    conn.close()

if conf.do_lvm:
    for disk in disk_todelete:

        lvremove_cmd = ["lvremove", disk]
        if conf.do_cluster:
            lv_deactivate(disk, conf.cluster_nodes)

        pinfo("Remove disk : " + disk)
        if locking_type() == 4:
            vmc_lock(conf.lockfile, "vmc-delete")
            unlock()
            if input("Please confirm %s removal by typing \"Yes\": " % disk) == 'Yes':
                subprocess.call(lvremove_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            lock(4)
            vmc_unlock(conf.lockfile)
        else:
            if input("Please confirm %s removal by typing \"Yes\": " % disk) == 'Yes':
                subprocess.call(lvremove_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
    for disk in disk_todelete:
        pinfo("Remove disk : " + disk)
コード例 #2
0
try:
    domain = sys.argv[1]
    if domain == "--help" or domain == "-h":
        usage()
except:
    usage()
    sys.exit(1)

conf = vmcConfig()

if not conf.do_lvm:
    die("VM storage is not set to LVM")

xml_file_path = conf.libvirt_domain_dir + "/" + domain + ".xml"
if not os.path.exists(xml_file_path):
    die(xml_file_path + " : doesn't exists")

xml_dom = parse(xml_file_path)

for disk in xml_dom.getElementsByTagName('disk'):
        if disk.attributes['device'].value == 'disk':
            d = disk.getElementsByTagName('source')[0].attributes['dev'].value
            if conf.do_cluster:
                pinfo("Deactivate LV %s on: %s" % (d, ', '.join(conf.cluster_nodes)))
                lv_deactivate(d, conf.cluster_nodes)
            else:
                pinfo("Deactivate LV %s " + d)
                lv_deactivate(d)