Esempio n. 1
0
def action(networkid):
    from CloudscalerLibcloud.utils.network import Network
    import libvirt

    network = Network()
    try:
        con = network.libvirtutil.connection
        bridges = []
        networkidHex = "%04x" % int(networkid)
        name = "routeros_%s" % networkidHex

        print("CLEANUP: %s/%s" % (networkid, networkidHex))
        dom = None
        try:
            dom = con.lookupByName(name)

            network.cleanup_external(dom)
            network.cleanup_gwmgmt(dom)
            bridges = list(network.libvirtutil._get_domain_bridges(dom))
            dom.destroy()
        except libvirt.libvirtError:
            pass
        if dom is not None:
            try:
                dom.undefine()
            except libvirt.libvirtError:
                pass
        network.libvirtutil.cleanupNetwork(networkid, bridges)
    finally:
        network.close()
    destinationfile = "/var/lib/libvirt/images/routeros/{:04x}/routeros.qcow2".format(
        networkid)
    if j.system.fs.exists(destinationfile):
        j.system.fs.remove(destinationfile)
Esempio n. 2
0
def action(networkid):
    import libvirt
    from CloudscalerLibcloud.utils.network import Network
    from CloudscalerLibcloud.utils.libvirtutil import LibvirtUtil
    libvirtutil = LibvirtUtil()
    network = Network(libvirtutil)
    bridges = []

    con = libvirtutil.connection
    destination = '/var/lib/libvirt/images/routeros/{0:04x}/routeros.qcow2'.format(
        networkid)
    try:
        network_id_hex = '%04x' % int(networkid)
        name = 'routeros_%s' % network_id_hex
        try:
            domain = con.lookupByName(name)
            if domain:
                bridges = list(network.libvirtutil._get_domain_bridges(domain))
                network.cleanup_gwmgmt(domain)
                network.cleanup_external(domain)
                domain.destroy()
                domain.undefine()
                j.system.fs.remove(destination)
                return True
            else:
                return True
        except libvirt.libvirtError:
            return False
    finally:
        network.libvirtutil.cleanupNetwork(networkid, bridges)
        con.close()
Esempio n. 3
0
def cleanup(name, networkid):
    import libvirt
    from CloudscalerLibcloud.utils.network import Network

    network = Network()
    con = network.libvirtutil.connection
    try:
        dom = con.lookupByName(name)
        network.cleanup_external(dom)
        network.cleanup_gwmgmt(dom)
        if dom.isActive():
            dom.destroy()
        dom.undefine()
    except libvirt.libvirtError:
        pass

    try:
        network.libvirt.cleanupNetwork(networkid)
    except:
        network.close()

    destinationfile = "/var/lib/libvirt/images/routeros/{:04x}/routeros.qcow2".format(
        networkid)
    if j.system.fs.exists(destinationfile):
        j.system.fs.remove(destinationfile)
Esempio n. 4
0
def action(machineid, force=False):
    from CloudscalerLibcloud.utils.libvirtutil import LibvirtUtil
    from CloudscalerLibcloud.utils.network import Network
    connection = LibvirtUtil()
    network = Network(connection)
    domain = connection.get_domain_obj(machineid)
    if domain:
        network.cleanup_external(domain)
    return connection.shutdown(machineid, force)
Esempio n. 5
0
def action(networkid, domainxml=None):
    from CloudscalerLibcloud.utils.network import Network
    from CloudscalerLibcloud.utils.libvirtutil import LibvirtUtil
    j.system.ovsnetconfig.cleanupIfUnused(networkid)
    if domainxml:
        libvirtutil = LibvirtUtil()
        network = Network(libvirtutil)
        network.cleanup_gwmgmt(domainxml)
        network.cleanup_external(domainxml)
        destination = '/var/lib/libvirt/images/routeros/{0:04x}/'.format(networkid)
        j.system.fs.removeDirTree(destination)