/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.systemservices; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; import org.junit.Test; import com.emc.storageos.model.property.PropertiesMetadata; import com.emc.storageos.model.property.PropertyMetadata; import com.emc.storageos.systemservices.impl.iso.CreateISO; /** * Test creating an iso image. The test creates the file but does not read it. * You can mount it on linux and check the contents. * */ public class CreateISOTest { @Test public void testGetBytes() throws IOException { String userHome = System.getProperty("user.home"); PropertiesMetadata propertiesMetadata = new PropertiesMetadata(); propertiesMetadata.setMetadata(getPropsMetaData()); Map<String, String> ovfProps = new HashMap<String, String>(); Map<String, String> overrideProps = new HashMap<String, String>(); ovfProps.put("network_1_ipaddr", "0.0.0.1"); ovfProps.put("network_2_ipaddr", "0.0.0.2"); ovfProps.put("network_3_ipaddr", "0.0.0.3"); ovfProps.put("network_gateway", "10.247.96.1"); overrideProps.put("network_dns_servers", "10.254.66.23,10.254.66.24"); overrideProps.put("network_ntp_servers", "10.254.140.21,10.254.140.22"); overrideProps.put("system_datanode_ipadddrs", "0.0.0.4,0.0.0.5"); overrideProps.put("system_datanode_ipadddrs", "0.0.0.4,0.0.0.5"); overrideProps.put("system_upgrade_repo", "http://test.domain.com/ovf/Bourne"); byte[] isoBytes = CreateISO.getBytes(ovfProps, overrideProps); FileOutputStream f = new FileOutputStream(new File(userHome + "\\test-config.iso")); f.write(isoBytes); f.close(); } public Map<String, PropertyMetadata> getPropsMetaData() { Map<String, PropertyMetadata> metadata = new TreeMap<String, PropertyMetadata>(); PropertyMetadata networkMetadata = setPropMetaData("server ip address", "ipaddress", "ipaddr", null, "Network", true, false, true, null, null, "", false); PropertyMetadata controlNodeOnlyMetadata = setPropMetaData("server ip address", "ipaddress", "ipaddr", null, "Network", true, false, true, null, null, "", true); PropertyMetadata iplistMetadata = setPropMetaData("server ip address", "ipaddress", "ipaddrlist", null, "Network", true, false, true, null, null, "", false); metadata.put("network_1_ipaddr", networkMetadata); metadata.put("network_2_ipaddr", networkMetadata); metadata.put("network_3_ipaddr", networkMetadata); metadata.put("network_dns_servers", iplistMetadata); metadata.put("network_ntp_servers", iplistMetadata); metadata.put("system_datanode_ipaddrs", iplistMetadata); metadata.put("network_gateway", controlNodeOnlyMetadata); metadata.put("system_upgrade_repo", controlNodeOnlyMetadata); return metadata; } public PropertyMetadata setPropMetaData(String label, String description, String type, Integer maxLen, String tag, Boolean advanced, Boolean userMutable, Boolean userConfigurable, Boolean reconfigRequired, Boolean rebootRequired, String value, Boolean controlNodeOnly) { PropertyMetadata metaData = new PropertyMetadata(); metaData.setLabel(label); metaData.setDescription(description); metaData.setType(type); metaData.setMaxLen(maxLen); metaData.setTag(tag); metaData.setAdvanced(advanced); metaData.setUserMutable(userMutable); metaData.setUserConfigurable(userConfigurable); metaData.setReconfigRequired(reconfigRequired); metaData.setRebootRequired(rebootRequired); metaData.setValue(value); metaData.setControlNodeOnly(controlNodeOnly); return metaData; } }