try { dm = conn.domainLookupByID(ids[i]); la.add(dm.getName()); } catch (final LibvirtException e) { s_logger.warn("Unable to get vms", e);
public List<Ternary<String, Boolean, String>> cleanVMSnapshotMetadata(Domain dm) throws LibvirtException { s_logger.debug("Cleaning the metadata of vm snapshots of vm " + dm.getName()); List<Ternary<String, Boolean, String>> vmsnapshots = new ArrayList<Ternary<String, Boolean, String>>(); if (dm.snapshotNum() == 0) { s_logger.debug("Fail to get the current vm snapshot for vm: " + dm.getName() + ", continue");
public String getName() { try { return domain.getName(); } catch (LibvirtException e) { throw new LibvirtRuntimeException("Unable to get domain name", e); } }
protected static boolean isDomainSafeToDelete(Connect libvirt, String staleDomainName) throws LibvirtException { List<Domain> domains = LibvirtUtil.getRunningDomains(libvirt); for (Domain domain : domains) { Document doc = LibvirtUtil.loadDomainXml(domain); Metadata md = Metadata.fromXml(doc); if (md == null || md.isProvisioned()) { continue; } if (md.getParentDomain().equals(staleDomainName)) { logger.info("Not deleting stale domain '{}' still used by '{}'", staleDomainName, domain.getName()); return false; } } return true; }
case "pause": d.suspend(); response.message = d.getName() + " paused successfully"; break; case "shutdown": d.shutdown(); response.message = d.getName() + " shutdown successfully"; break; case "reboot": d.reboot(0); response.message = d.getName() + " reset successfully"; break; case "force-reset": d.destroy(); d.create(); response.message = d.getName() + " force reset successfully"; break; case "force-off": d.destroy(); response.message = d.getName() + " force stopped successfully"; break; case "start": d.create(); response.message = d.getName() + " started successfully"; break; case "resume": d.resume(); response.message = d.getName() + " resumed successfully"; break;
public void destroyWithDisks() { try { // look up state before undefining the domain... boolean isRunning = (domain.getInfo().state == DomainState.VIR_DOMAIN_RUNNING); List<Disk> disks = getDisks(domain.getConnect(), domainXml); logger.info("Undefining domain '{}'", domain.getName()); domain.undefine(3); // also remove snapshot data and managed save data if (isRunning) { logger.info("Shutting down domain '{}'", domain.getName()); domain.destroy(); } // this will not destroy the backing store disks. for (Disk disk : disks) { logger.info("Removing disk {}", disk.getName()); disk.getVolume().delete(0); } } catch (LibvirtException e) { throw new LibvirtRuntimeException("Unable to destroy domain", e); } }
try { VMInfo info = new VMInfo(); info.name = d.getName(); switch (d.getInfo().state) { case VIR_DOMAIN_BLOCKED:
List<Domain> domains = LibvirtUtil.getDefinedDomains(libvirt); for (Domain domain : domains) { String domainName = domain.getName(); Document doc = LibvirtUtil.loadDomainXml(domain); Metadata md = Metadata.fromXml(doc);
/** * Clone the domain. All disks are cloned using the original disk as backing store. The names of the disks are * created by suffixing the original disk name with a number. */ public DomainWrapper cloneWithBackingStore(String cloneName, List<Filesystem> mappings) { logger.info("Creating clone from {}", getName()); try { // duplicate definition of base Document cloneXmlDocument = domainXml.clone(); setDomainName(cloneXmlDocument, cloneName); prepareForCloning(cloneXmlDocument); // keep track of who we are a clone from... updateCloneMetadata(cloneXmlDocument, getName(), new Date()); cloneDisks(cloneXmlDocument, cloneName); updateFilesystemMappings(cloneXmlDocument, mappings); String cloneXml = documentToString(cloneXmlDocument); logger.debug("Clone xml={}", cloneXml); // Domain cloneDomain = domain.getConnect().domainCreateXML(cloneXml, 0); Domain cloneDomain = domain.getConnect().domainDefineXML(cloneXml); String createdCloneXml = cloneDomain.getXMLDesc(0); logger.debug("Created clone xml: {}", createdCloneXml); cloneDomain.create(); logger.debug("Starting clone: '{}'", cloneDomain.getName()); return newWrapper(cloneDomain); } catch (IOException | LibvirtException e) { throw new LibvirtRuntimeException("Unable to clone domain", e); } }