try { if (dm != null) { dm.free();
protected synchronized String attachOrDetachDevice(final Connect conn, final boolean attach, final String vmName, final String xml) throws LibvirtException, InternalErrorException { Domain dm = null; try { dm = conn.domainLookupByName(vmName); if (attach) { s_logger.debug("Attaching device: " + xml); dm.attachDevice(xml); } else { s_logger.debug("Detaching device: " + xml); dm.detachDevice(xml); } } catch (final LibvirtException e) { if (attach) { s_logger.warn("Failed to attach device to " + vmName + ": " + e.getMessage()); } else { s_logger.warn("Failed to detach device from " + vmName + ": " + e.getMessage()); } throw e; } finally { if (dm != null) { try { dm.free(); } catch (final LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l); } } } return null; }
protected synchronized String attachOrDetachDevice(final Connect conn, final boolean attach, final String vmName, final String xml) throws LibvirtException, InternalErrorException { Domain dm = null; try { dm = conn.domainLookupByName(vmName); if (attach) { s_logger.debug("Attaching device: " + xml); dm.attachDevice(xml); } else { s_logger.debug("Detaching device: " + xml); dm.detachDevice(xml); } } catch (final LibvirtException e) { if (attach) { s_logger.warn("Failed to attach device to " + vmName + ": " + e.getMessage()); } else { s_logger.warn("Failed to detach device from " + vmName + ": " + e.getMessage()); } throw e; } finally { if (dm != null) { try { dm.free(); } catch (final LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l); } } } return null; }
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; }
public List<DiskDef> getDisks(final Connect conn, final String vmName) { final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser(); Domain dm = null; try { dm = conn.domainLookupByName(vmName); parser.parseDomainXML(dm.getXMLDesc(0)); return parser.getDisks(); } catch (final LibvirtException e) { s_logger.debug("Failed to get dom xml: " + e.toString()); return new ArrayList<DiskDef>(); } finally { try { if (dm != null) { dm.free(); } } catch (final LibvirtException e) { s_logger.trace("Ignoring libvirt error.", e); } } }
public List<InterfaceDef> getInterfaces(final Connect conn, final String vmName) { final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser(); Domain dm = null; try { dm = conn.domainLookupByName(vmName); parser.parseDomainXML(dm.getXMLDesc(0)); return parser.getInterfaces(); } catch (final LibvirtException e) { s_logger.debug("Failed to get dom xml: " + e.toString()); return new ArrayList<InterfaceDef>(); } finally { try { if (dm != null) { dm.free(); } } catch (final LibvirtException e) { s_logger.trace("Ignoring libvirt error.", e); } } }
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(); } } }
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); } } }
public List<VmDiskStatsEntry> getVmDiskStat(final Connect conn, final String vmName) throws LibvirtException { Domain dm = null; try { dm = getDomain(conn, vmName); final List<VmDiskStatsEntry> stats = new ArrayList<VmDiskStatsEntry>(); final List<DiskDef> disks = getDisks(conn, vmName); for (final DiskDef disk : disks) { if (disk.getDeviceType() != DeviceType.DISK) { break; } final DomainBlockStats blockStats = dm.blockStats(disk.getDiskLabel()); final String path = disk.getDiskPath(); // for example, path = /mnt/pool_uuid/disk_path/ String diskPath = null; if (path != null) { final String[] token = path.split("/"); if (token.length > 3) { diskPath = token[3]; final VmDiskStatsEntry stat = new VmDiskStatsEntry(vmName, diskPath, blockStats.wr_req, blockStats.rd_req, blockStats.wr_bytes, blockStats.rd_bytes); stats.add(stat); } } } return stats; } finally { if (dm != null) { dm.free(); } } }
try { if (dm != null) { dm.free();
try { if (dm != null) { dm.free();
if (vm != null) { try { vm.free(); } catch (final LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (vm != null) { try { vm.free(); } catch (final LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (dm != null) { try { dm.free(); } catch (LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (dm != null) { try { dm.free(); } catch (LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (vm != null) { try { vm.free(); } catch (final LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (dm != null) { try { dm.free(); } catch (LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);
if (dm != null) { try { dm.free(); } catch (LibvirtException l) { s_logger.trace("Ignoring libvirt error.", l);