public void updateMetadata(String baseDomainName, String provisionCmd, String expirationTag, Date date) {
try {
if (domain.isActive() == 1) {
throw new IllegalStateException("Domain must be shut down before updating metdata");
}
reloadDomainXml();
updateProvisioningMetadata(domainXml, baseDomainName, provisionCmd, expirationTag, date);
String xml = documentToString(domainXml);
logger.debug("Updating domain '{}' XML with {}", getName(), xml);
domain.getConnect().domainDefineXML(xml);
} catch (IOException | LibvirtException e) {
throw new LibvirtRuntimeException(String.format("Unable to update metadata for domain '%s'", getName()), e);
}
}