本文整理汇总了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;
}
}
示例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());
}
示例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;
}
示例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");
}
}
}
示例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);
}
}
}
示例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;
}
示例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;
}
示例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;
}
示例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());
}
示例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;
}
}
示例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);
}
}
}
}
示例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;
}
示例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);
}
}
}
示例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();
}
}
}
示例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;
}
}
}