use of com.cloud.agent.api.to.deployasis.OVFEulaSectionTO in project cloudstack by apache.
the class DeployAsIsHelperImpl method persistTemplateOVFInformation.
private void persistTemplateOVFInformation(long templateId, OVFInformationTO ovfInformationTO) {
List<OVFPropertyTO> ovfProperties = ovfInformationTO.getProperties();
List<OVFNetworkTO> networkRequirements = ovfInformationTO.getNetworks();
OVFVirtualHardwareSectionTO ovfHardwareSection = ovfInformationTO.getHardwareSection();
List<OVFEulaSectionTO> eulaSections = ovfInformationTO.getEulaSections();
Pair<String, String> guestOsInfo = ovfInformationTO.getGuestOsInfo();
if (CollectionUtils.isNotEmpty(ovfProperties)) {
persistTemplateDeployAsIsInformationTOList(templateId, ovfProperties);
}
if (CollectionUtils.isNotEmpty(networkRequirements)) {
persistTemplateDeployAsIsInformationTOList(templateId, networkRequirements);
}
if (CollectionUtils.isNotEmpty(eulaSections)) {
persistTemplateDeployAsIsInformationTOList(templateId, eulaSections);
}
String minimumHardwareVersion = null;
if (ovfHardwareSection != null) {
if (CollectionUtils.isNotEmpty(ovfHardwareSection.getConfigurations())) {
persistTemplateDeployAsIsInformationTOList(templateId, ovfHardwareSection.getConfigurations());
}
if (CollectionUtils.isNotEmpty(ovfHardwareSection.getCommonHardwareItems())) {
persistTemplateDeployAsIsInformationTOList(templateId, ovfHardwareSection.getCommonHardwareItems());
}
minimumHardwareVersion = ovfHardwareSection.getMinimiumHardwareVersion();
}
if (guestOsInfo != null) {
String osType = guestOsInfo.first();
String osDescription = guestOsInfo.second();
LOGGER.info("Guest OS information retrieved from the template: " + osType + " - " + osDescription);
handleGuestOsFromOVFDescriptor(templateId, osType, osDescription, minimumHardwareVersion);
}
}
use of com.cloud.agent.api.to.deployasis.OVFEulaSectionTO in project cloudstack by apache.
the class OVFHelper method getEulaSectionsFromDocument.
public List<OVFEulaSectionTO> getEulaSectionsFromDocument(Document doc) {
List<OVFEulaSectionTO> eulas = new LinkedList<>();
if (doc == null) {
return eulas;
}
NodeList eulaSections = ovfParser.getElementsFromOVFDocument(doc, "EulaSection");
int eulaIndex = 0;
if (eulaSections.getLength() > 0) {
for (int index = 0; index < eulaSections.getLength(); index++) {
Node eulaNode = eulaSections.item(index);
NodeList eulaChildNodes = eulaNode.getChildNodes();
String eulaInfo = null;
String eulaLicense = null;
for (int i = 0; i < eulaChildNodes.getLength(); i++) {
Node eulaItem = eulaChildNodes.item(i);
if (eulaItem.getNodeName().equalsIgnoreCase("Info")) {
eulaInfo = eulaItem.getTextContent();
} else if (eulaItem.getNodeName().equalsIgnoreCase("License")) {
eulaLicense = eulaItem.getTextContent();
}
}
byte[] compressedLicense = new byte[0];
try {
compressedLicense = compressOVFEula(eulaLicense);
} catch (IOException e) {
s_logger.error("Could not compress the license for info " + eulaInfo);
continue;
}
OVFEulaSectionTO eula = new OVFEulaSectionTO(eulaInfo, compressedLicense, eulaIndex);
eulas.add(eula);
eulaIndex++;
}
}
return eulas;
}
use of com.cloud.agent.api.to.deployasis.OVFEulaSectionTO in project cloudstack by apache.
the class OVAProcessor method createOvfInformationTO.
private OVFInformationTO createOvfInformationTO(OVFHelper ovfHelper, Document doc, String ovfFilePath) throws InternalErrorException {
OVFInformationTO ovfInformationTO = new OVFInformationTO();
List<DatadiskTO> disks = ovfHelper.getOVFVolumeInfoFromFile(ovfFilePath, doc, null);
if (CollectionUtils.isNotEmpty(disks)) {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace(String.format("Found %d disks in template %s", disks.size(), ovfFilePath));
}
ovfInformationTO.setDisks(disks);
}
List<OVFNetworkTO> nets = ovfHelper.getNetPrerequisitesFromDocument(doc);
if (CollectionUtils.isNotEmpty(nets)) {
LOGGER.info("Found " + nets.size() + " prerequisite networks");
ovfInformationTO.setNetworks(nets);
} else if (LOGGER.isTraceEnabled()) {
LOGGER.trace(String.format("no net prerequisites found in template %s", ovfFilePath));
}
List<OVFPropertyTO> ovfProperties = ovfHelper.getConfigurableOVFPropertiesFromDocument(doc);
if (CollectionUtils.isNotEmpty(ovfProperties)) {
LOGGER.info("Found " + ovfProperties.size() + " configurable OVF properties");
ovfInformationTO.setProperties(ovfProperties);
} else if (LOGGER.isTraceEnabled()) {
LOGGER.trace(String.format("no ovf properties found in template %s", ovfFilePath));
}
OVFVirtualHardwareSectionTO hardwareSection = ovfHelper.getVirtualHardwareSectionFromDocument(doc);
List<OVFConfigurationTO> configurations = hardwareSection.getConfigurations();
if (CollectionUtils.isNotEmpty(configurations)) {
LOGGER.info("Found " + configurations.size() + " deployment option configurations");
}
List<OVFVirtualHardwareItemTO> hardwareItems = hardwareSection.getCommonHardwareItems();
if (CollectionUtils.isNotEmpty(hardwareItems)) {
LOGGER.info("Found " + hardwareItems.size() + " virtual hardware items");
}
if (StringUtils.isNotBlank(hardwareSection.getMinimiumHardwareVersion())) {
LOGGER.info("Found minimum hardware version " + hardwareSection.getMinimiumHardwareVersion());
}
ovfInformationTO.setHardwareSection(hardwareSection);
List<OVFEulaSectionTO> eulaSections = ovfHelper.getEulaSectionsFromDocument(doc);
if (CollectionUtils.isNotEmpty(eulaSections)) {
LOGGER.info("Found " + eulaSections.size() + " license agreements");
ovfInformationTO.setEulaSections(eulaSections);
}
Pair<String, String> guestOsPair = ovfHelper.getOperatingSystemInfoFromDocument(doc);
if (guestOsPair != null) {
LOGGER.info("Found guest OS information: " + guestOsPair.first() + " - " + guestOsPair.second());
ovfInformationTO.setGuestOsInfo(guestOsPair);
}
return ovfInformationTO;
}
use of com.cloud.agent.api.to.deployasis.OVFEulaSectionTO in project cloudstack by apache.
the class DeployAsIsHelperImpl method getValueFromInformationTO.
private String getValueFromInformationTO(TemplateDeployAsIsInformationTO informationTO) throws IOException {
if (informationTO instanceof OVFEulaSectionTO) {
CompressionUtil compressionUtil = new CompressionUtil();
byte[] compressedLicense = ((OVFEulaSectionTO) informationTO).getCompressedLicense();
return compressionUtil.decompressByteArary(compressedLicense);
}
return gson.toJson(informationTO);
}
Aggregations