Search in sources :

Example 1 with OVFVirtualHardwareSectionTO

use of com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO 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);
    }
}
Also used : OVFEulaSectionTO(com.cloud.agent.api.to.deployasis.OVFEulaSectionTO) OVFPropertyTO(com.cloud.agent.api.to.deployasis.OVFPropertyTO) OVFNetworkTO(com.cloud.agent.api.to.deployasis.OVFNetworkTO) OVFVirtualHardwareSectionTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO)

Example 2 with OVFVirtualHardwareSectionTO

use of com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO in project cloudstack by apache.

the class OVFHelper method getVirtualHardwareSectionFromDocument.

/**
 * Retrieve the virtual hardware section and its deployment options as configurations
 */
public OVFVirtualHardwareSectionTO getVirtualHardwareSectionFromDocument(Document doc) {
    List<OVFConfigurationTO> configurations = getDeploymentOptionsFromDocumentTree(doc);
    List<OVFVirtualHardwareItemTO> items = getVirtualHardwareItemsFromDocumentTree(doc);
    if (CollectionUtils.isNotEmpty(configurations)) {
        for (OVFConfigurationTO configuration : configurations) {
            List<OVFVirtualHardwareItemTO> confItems = items.stream().filter(x -> StringUtils.isNotBlank(x.getConfigurationIds()) && hardwareItemContainsConfiguration(x, configuration.getId())).collect(Collectors.toList());
            configuration.setHardwareItems(confItems);
        }
    }
    List<OVFVirtualHardwareItemTO> commonItems = null;
    if (CollectionUtils.isNotEmpty(items)) {
        commonItems = items.stream().filter(x -> StringUtils.isBlank(x.getConfigurationIds())).collect(Collectors.toList());
    }
    String minimumHardwareVersion = getMinimumHardwareVersionFromDocumentTree(doc);
    return new OVFVirtualHardwareSectionTO(configurations, commonItems, minimumHardwareVersion);
}
Also used : OVFPropertyTO(com.cloud.agent.api.to.deployasis.OVFPropertyTO) Transformer(javax.xml.transform.Transformer) DOMSource(javax.xml.transform.dom.DOMSource) Arrays(java.util.Arrays) TransformerException(javax.xml.transform.TransformerException) StreamResult(javax.xml.transform.stream.StreamResult) InternalErrorException(com.cloud.exception.InternalErrorException) HashMap(java.util.HashMap) StringUtils(org.apache.commons.lang3.StringUtils) ArrayList(java.util.ArrayList) NumberUtils(org.apache.commons.lang.math.NumberUtils) ResourceType(com.cloud.configuration.Resource.ResourceType) Logger(org.apache.log4j.Logger) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) CollectionUtils(org.apache.commons.collections.CollectionUtils) Document(org.w3c.dom.Document) Map(java.util.Map) Node(org.w3c.dom.Node) LinkedList(java.util.LinkedList) OVFVirtualHardwareSectionTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO) PrintWriter(java.io.PrintWriter) DatadiskTO(com.cloud.agent.api.to.DatadiskTO) NodeList(org.w3c.dom.NodeList) StringWriter(java.io.StringWriter) IOException(java.io.IOException) Pair(com.cloud.utils.Pair) Collectors(java.util.stream.Collectors) File(java.io.File) OVFEulaSectionTO(com.cloud.agent.api.to.deployasis.OVFEulaSectionTO) OVFVirtualHardwareItemTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareItemTO) OVFConfigurationTO(com.cloud.agent.api.to.deployasis.OVFConfigurationTO) CompressionUtil(com.cloud.utils.compression.CompressionUtil) List(java.util.List) Element(org.w3c.dom.Element) DocumentTraversal(org.w3c.dom.traversal.DocumentTraversal) NodeIterator(org.w3c.dom.traversal.NodeIterator) SAXException(org.xml.sax.SAXException) TransformerFactory(javax.xml.transform.TransformerFactory) NodeFilter(org.w3c.dom.traversal.NodeFilter) Collections(java.util.Collections) OVFNetworkTO(com.cloud.agent.api.to.deployasis.OVFNetworkTO) OVFVirtualHardwareItemTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareItemTO) OVFConfigurationTO(com.cloud.agent.api.to.deployasis.OVFConfigurationTO) OVFVirtualHardwareSectionTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO)

Example 3 with OVFVirtualHardwareSectionTO

use of com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO in project cloudstack by apache.

the class OVFHelperTest method testGetMinimumHardwareVersion.

@Test
public void testGetMinimumHardwareVersion() throws IOException, SAXException {
    OVFVirtualHardwareSectionTO hardwareSection = ovfHelper.getVirtualHardwareSectionFromXmlString(ovfFileVirtualHardwareSection);
    Assert.assertEquals("vmx-08", hardwareSection.getMinimiumHardwareVersion());
}
Also used : OVFVirtualHardwareSectionTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO) Test(org.junit.Test)

Example 4 with OVFVirtualHardwareSectionTO

use of com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO 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;
}
Also used : OVFInformationTO(com.cloud.agent.api.to.OVFInformationTO) OVFConfigurationTO(com.cloud.agent.api.to.deployasis.OVFConfigurationTO) OVFNetworkTO(com.cloud.agent.api.to.deployasis.OVFNetworkTO) OVFPropertyTO(com.cloud.agent.api.to.deployasis.OVFPropertyTO) OVFEulaSectionTO(com.cloud.agent.api.to.deployasis.OVFEulaSectionTO) OVFVirtualHardwareItemTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareItemTO) DatadiskTO(com.cloud.agent.api.to.DatadiskTO) OVFVirtualHardwareSectionTO(com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO)

Aggregations

OVFVirtualHardwareSectionTO (com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO)4 OVFEulaSectionTO (com.cloud.agent.api.to.deployasis.OVFEulaSectionTO)3 OVFNetworkTO (com.cloud.agent.api.to.deployasis.OVFNetworkTO)3 OVFPropertyTO (com.cloud.agent.api.to.deployasis.OVFPropertyTO)3 DatadiskTO (com.cloud.agent.api.to.DatadiskTO)2 OVFConfigurationTO (com.cloud.agent.api.to.deployasis.OVFConfigurationTO)2 OVFVirtualHardwareItemTO (com.cloud.agent.api.to.deployasis.OVFVirtualHardwareItemTO)2 OVFInformationTO (com.cloud.agent.api.to.OVFInformationTO)1 ResourceType (com.cloud.configuration.Resource.ResourceType)1 InternalErrorException (com.cloud.exception.InternalErrorException)1 Pair (com.cloud.utils.Pair)1 CompressionUtil (com.cloud.utils.compression.CompressionUtil)1 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)1 File (java.io.File)1 IOException (java.io.IOException)1 PrintWriter (java.io.PrintWriter)1 StringWriter (java.io.StringWriter)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1