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 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); } } }
String vmDef = dm.getXMLDesc(1); final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser(); parser.parseDomainXML(vmDef);
xmlDesc = dm.getXMLDesc(xmlFlag); xmlDesc = replaceIpForVNCInDescFile(xmlDesc, target);
"Restore VM Snapshot Failed due to can not find vm: " + vmName); String xmlDesc = dm.getXMLDesc(0);
dm = conn.domainLookupByName(vmName); final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser(); final String domXml = dm.getXMLDesc(0); parser.parseDomainXML(domXml); disks = parser.getDisks();
dm = conn.domainLookupByName(vmName); final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser(); final String domXml = dm.getXMLDesc(0); parser.parseDomainXML(domXml); disks = parser.getDisks();
public static Document loadDomainXml(Domain domain) { try { return JDomUtil.stringToDocument(domain.getXMLDesc(0)); } catch (IllegalArgumentException e) { throw new LibvirtRuntimeException("Unable to parse domain xml", e); } catch (LibvirtException e) { throw new LibvirtRuntimeException("Unable to parse domain xml", e); } }
/** * 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); } }