当前位置: 首页>>代码示例>>Java>>正文


Java Domain类代码示例

本文整理汇总了Java中org.libvirt.Domain的典型用法代码示例。如果您正苦于以下问题:Java Domain类的具体用法?Java Domain怎么用?Java Domain使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Domain类属于org.libvirt包,在下文中一共展示了Domain类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getFreeMemory

import org.libvirt.Domain; //导入依赖的package包/类
private Long getFreeMemory(final Connect conn, final LibvirtComputingResource libvirtComputingResource) {
    try {
        long allocatedMem = 0;
        final int[] ids = conn.listDomains();
        for (final int id : ids) {
            final Domain dm = conn.domainLookupByID(id);
            allocatedMem += dm.getMaxMemory() * 1024L;
            s_logger.debug("vm: " + dm.getName() + " mem: " + dm.getMaxMemory() * 1024L);
        }
        final Long remainingMem = libvirtComputingResource.getTotalMemory() - allocatedMem;
        s_logger.debug("remaining mem" + remainingMem);
        return remainingMem;
    } catch (final Exception e) {
        s_logger.debug("failed to get free memory", e);
        return null;
    }
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:18,代码来源:LibvirtStartCommandWrapper.java

示例2: vifHotPlug

import org.libvirt.Domain; //导入依赖的package包/类
private void vifHotPlug(final Connect conn, final String vmName, final String broadcastUri, final String macAddr)
        throws InternalErrorException, LibvirtException {
    final NicTO nicTo = new NicTO();
    nicTo.setMac(macAddr);
    nicTo.setType(TrafficType.Public);
    if (broadcastUri == null) {
        nicTo.setBroadcastType(BroadcastDomainType.Native);
    } else {
        final URI uri = BroadcastDomainType.fromString(broadcastUri);
        nicTo.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
        nicTo.setBroadcastUri(uri);
    }

    final Domain vm = getDomain(conn, vmName);
    vm.attachDevice(getVifDriver(nicTo.getType()).plug(nicTo, "Default - VirtIO capable OS (64-bit)", "").toString());
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:17,代码来源:LibvirtComputingResource.java

示例3: getVmState

import org.libvirt.Domain; //导入依赖的package包/类
public PowerState getVmState(final Connect conn, final String vmName) {
    int retry = 3;
    Domain vms = null;
    while (retry-- > 0) {
        try {
            vms = conn.domainLookupByName(vmName);
            final PowerState s = convertToPowerState(vms.getInfo().state);
            return s;
        } catch (final LibvirtException e) {
            logger.warn("Can't get vm state " + vmName + e.getMessage() + "retry:" + retry);
        } finally {
            try {
                if (vms != null) {
                    vms.free();
                }
            } catch (final LibvirtException l) {
                logger.trace("Ignoring libvirt error.", l);
            }
        }
    }
    return PowerState.PowerOff;
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:23,代码来源:LibvirtComputingResource.java

示例4: restoreVMSnapshotMetadata

import org.libvirt.Domain; //导入依赖的package包/类
public void restoreVMSnapshotMetadata(final Domain dm, final String vmName, final List<Ternary<String, Boolean, String>> vmsnapshots) {
    logger.debug("Restoring the metadata of vm snapshots of vm " + vmName);
    for (final Ternary<String, Boolean, String> vmsnapshot : vmsnapshots) {
        final String snapshotName = vmsnapshot.first();
        final Boolean isCurrent = vmsnapshot.second();
        final String snapshotXML = vmsnapshot.third();
        logger.debug("Restoring vm snapshot " + snapshotName + " on " + vmName + " with XML:\n " + snapshotXML);
        try {
            int flags = 1; // VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = 1
            if (isCurrent) {
                flags += 2; // VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = 2
            }
            dm.snapshotCreateXML(snapshotXML, flags);
        } catch (final LibvirtException e) {
            logger.debug("Failed to restore vm snapshot " + snapshotName + ", continue");
        }
    }
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:19,代码来源:LibvirtComputingResource.java

示例5: getVncPort

import org.libvirt.Domain; //导入依赖的package包/类
public Integer getVncPort(final Connect conn, final String vmName) throws LibvirtException {
    final LibvirtDomainXmlParser parser = new LibvirtDomainXmlParser();
    Domain dm = null;
    try {
        dm = conn.domainLookupByName(vmName);
        final String xmlDesc = dm.getXMLDesc(0);
        parser.parseDomainXml(xmlDesc);
        return parser.getVncPort();
    } finally {
        try {
            if (dm != null) {
                dm.free();
            }
        } catch (final LibvirtException l) {
            logger.trace("Ignoring libvirt error.", l);
        }
    }
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:19,代码来源:LibvirtComputingResource.java

示例6: listAllDomains

import org.libvirt.Domain; //导入依赖的package包/类
private List<Domain> listAllDomains(Connect connect) throws LibvirtException {
    List<Domain> domains = new ArrayList<Domain>();

    // get defined but inactive domains
    for (String name : connect.listDefinedDomains()) {
        if (name != null) {
            domains.add(connect.domainLookupByName(name));
        }
    }

    // get active domains
    for (int id : connect.listDomains()) {
        domains.add(connect.domainLookupByID(id));
    }

    return domains;
}
 
开发者ID:fduminy,项目名称:jtestplatform,代码行数:18,代码来源:DomainCache.java

示例7: findFreeDomainId

import org.libvirt.Domain; //导入依赖的package包/类
@Nullable
private Integer findFreeDomainId(List<Domain> domains) throws LibvirtException {
    Set<Integer> domainIds = new HashSet<Integer>(domains.size());
    for (Domain domain : domains) {
        if (domain.getName().startsWith(DOMAIN_NAME_PREFIX)) {
            domainIds.add(Integer.parseInt(domain.getName().substring(DOMAIN_NAME_PREFIX.length())));
        }
    }

    Integer domainId = null;
    for (int id = networkConfig.getMinSubNetIpAddress(); id <= networkConfig.getMaxSubNetIpAddress(); id++) {
        if (!domainIds.contains(id)) {
            domainId = id;
            break;
        }
    }
    return domainId;
}
 
开发者ID:fduminy,项目名称:jtestplatform,代码行数:19,代码来源:DomainCache.java

示例8: getMacAddress

import org.libvirt.Domain; //导入依赖的package包/类
private static String getMacAddress(Domain domain) throws LibvirtException {
    String macAddress = null;

    String xml = domain.getXMLDesc(0);

    //TODO it's bad, we should use an xml parser. create and add it in the libvirt-model project.
    String begin = "<mac address='";
    int idx = xml.indexOf(begin);
    if (idx >= 0) {
        idx += begin.length();
        int idx2 = xml.indexOf('\'', idx);
        if (idx2 >= 0) {
            macAddress = xml.substring(idx, idx2);
        }
    }

    return macAddress;
}
 
开发者ID:fduminy,项目名称:jtestplatform,代码行数:19,代码来源:DomainCache.java

示例9: call

import org.libvirt.Domain; //导入依赖的package包/类
@Override
public Domain call() throws LibvirtException {
    long flags = 1 << 0;

    // set compression flag for migration, if libvirt version supports it
    if (dconn.getLibVirVersion() >= 1000003) {
        flags |= 1 << 11;
    }

    if (migrateStorage) {
        flags |= 1 << 6;
    }

    if (autoConvergence && dconn.getLibVirVersion() >= 1002003) {
        flags |= 1 << 13;
    }

    return dm.migrate(dconn, flags, dxml, vmName, "tcp:" + destIp, libvirtComputingResource.getMigrateSpeed());
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:20,代码来源:MigrateKVMAsync.java

示例10: getFreeMemory

import org.libvirt.Domain; //导入依赖的package包/类
private Long getFreeMemory(final Connect conn, final LibvirtComputingResource libvirtComputingResource){
    try {
        long allocatedMem = 0;
        int[] ids = conn.listDomains();
        for(int id :ids) {
            Domain dm = conn.domainLookupByID(id);
            allocatedMem += dm.getMaxMemory() * 1024L;
            s_logger.debug("vm: " + dm.getName() + " mem: " + dm.getMaxMemory() * 1024L);
        }
        Long remainingMem = libvirtComputingResource.getTotalMemory() - allocatedMem;
        s_logger.debug("remaining mem" + remainingMem);
        return remainingMem;
    } catch (Exception e) {
        s_logger.debug("failed to get free memory", e);
        return null;
    }
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:18,代码来源:LibvirtStartCommandWrapper.java

示例11: vifHotUnPlug

import org.libvirt.Domain; //导入依赖的package包/类
private void vifHotUnPlug (final Connect conn, final String vmName, final String macAddr) throws InternalErrorException, LibvirtException {

        Domain vm = null;
        vm = getDomain(conn, vmName);
        final List<InterfaceDef> pluggedNics = getInterfaces(conn, vmName);
        for (final InterfaceDef pluggedNic : pluggedNics) {
            if (pluggedNic.getMacAddress().equalsIgnoreCase(macAddr)) {
                vm.detachDevice(pluggedNic.toString());
                // We don't know which "traffic type" is associated with
                // each interface at this point, so inform all vif drivers
                for (final VifDriver vifDriver : getAllVifDrivers()) {
                    vifDriver.unplug(pluggedNic);
                }
            }
        }
    }
 
开发者ID:apache,项目名称:cloudstack,代码行数:17,代码来源:LibvirtComputingResource.java

示例12: getVmState

import org.libvirt.Domain; //导入依赖的package包/类
public PowerState getVmState(final Connect conn, final String vmName) {
    int retry = 3;
    Domain vms = null;
    while (retry-- > 0) {
        try {
            vms = conn.domainLookupByName(vmName);
            final PowerState s = convertToPowerState(vms.getInfo().state);
            return s;
        } catch (final LibvirtException e) {
            s_logger.warn("Can't get vm state " + vmName + e.getMessage() + "retry:" + retry);
        } finally {
            try {
                if (vms != null) {
                    vms.free();
                }
            } catch (final LibvirtException l) {
                s_logger.trace("Ignoring libvirt error.", l);
            }
        }
    }
    return PowerState.PowerOff;
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:23,代码来源:LibvirtComputingResource.java

示例13: getVncPort

import org.libvirt.Domain; //导入依赖的package包/类
public Integer getVncPort(final Connect conn, final String vmName) throws LibvirtException {
    final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
    Domain dm = null;
    try {
        dm = conn.domainLookupByName(vmName);
        final String xmlDesc = dm.getXMLDesc(0);
        parser.parseDomainXML(xmlDesc);
        return parser.getVncPort();
    } finally {
        try {
            if (dm != null) {
                dm.free();
            }
        } catch (final LibvirtException l) {
            s_logger.trace("Ignoring libvirt error.", l);
        }
    }
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:19,代码来源:LibvirtComputingResource.java

示例14: getVmNetworkStat

import org.libvirt.Domain; //导入依赖的package包/类
public List<VmNetworkStatsEntry> getVmNetworkStat(Connect conn, String vmName) throws LibvirtException {
    Domain dm = null;
    try {
        dm = getDomain(conn, vmName);

        List<VmNetworkStatsEntry> stats = new ArrayList<VmNetworkStatsEntry>();

        List<InterfaceDef> nics = getInterfaces(conn, vmName);

        for (InterfaceDef nic : nics) {
            DomainInterfaceStats nicStats = dm.interfaceStats(nic.getDevName());
            String macAddress = nic.getMacAddress();
            VmNetworkStatsEntry stat = new VmNetworkStatsEntry(vmName, macAddress, nicStats.tx_bytes, nicStats.rx_bytes);
            stats.add(stat);
        }

        return stats;
    } finally {
        if (dm != null) {
            dm.free();
        }
    }
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:24,代码来源:LibvirtComputingResource.java

示例15: restoreVMSnapshotMetadata

import org.libvirt.Domain; //导入依赖的package包/类
public void restoreVMSnapshotMetadata(Domain dm, String vmName, List<Ternary<String, Boolean, String>> vmsnapshots) {
    s_logger.debug("Restoring the metadata of vm snapshots of vm " + vmName);
    for (Ternary<String, Boolean, String> vmsnapshot: vmsnapshots) {
        String snapshotName = vmsnapshot.first();
        Boolean isCurrent = vmsnapshot.second();
        String snapshotXML = vmsnapshot.third();
        s_logger.debug("Restoring vm snapshot " + snapshotName + " on " + vmName + " with XML:\n " + snapshotXML);
        try {
            int flags = 1; // VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = 1
            if (isCurrent) {
                flags += 2; // VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = 2
            }
            dm.snapshotCreateXML(snapshotXML, flags);
        } catch (LibvirtException e) {
            s_logger.debug("Failed to restore vm snapshot " + snapshotName + ", continue");
            continue;
        }
    }
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:20,代码来源:LibvirtComputingResource.java


注:本文中的org.libvirt.Domain类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。