/providers/savvis-symphonyvpdc/src/test/java/org/jclouds/savvis/vpdc/xml/VMHandlerTest.java
Java | 150 lines | 115 code | 12 blank | 23 comment | 0 complexity | 194d30cb5ad656f5c81283e1ef9d6c95 MD5 | raw file
- /**
- * Licensed to jclouds, Inc. (jclouds) under one or more
- * contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. jclouds licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- package org.jclouds.savvis.vpdc.xml;
- import static org.testng.Assert.assertEquals;
- import java.io.InputStream;
- import java.net.URI;
- import org.jclouds.cim.ResourceAllocationSettingData;
- import org.jclouds.cim.VirtualSystemSettingData;
- import org.jclouds.cim.ResourceAllocationSettingData.ResourceType;
- import org.jclouds.http.functions.ParseSax;
- import org.jclouds.http.functions.ParseSax.Factory;
- import org.jclouds.http.functions.config.SaxParserModule;
- import org.jclouds.ovf.OperatingSystemSection;
- import org.jclouds.ovf.ProductSection;
- import org.jclouds.ovf.Property;
- import org.jclouds.ovf.VirtualHardwareSection;
- import org.jclouds.savvis.vpdc.domain.NetworkConfigSection;
- import org.jclouds.savvis.vpdc.domain.NetworkConnectionSection;
- import org.jclouds.savvis.vpdc.domain.VM;
- import org.testng.annotations.Test;
- import com.google.inject.Guice;
- import com.google.inject.Injector;
- /**
- * Tests behavior of {@code VMHandler}
- *
- * @author Adrian Cole
- */
- @Test(groups = "unit")
- public class VMHandlerTest {
- public void testVCloud1_0() {
- InputStream is = getClass().getResourceAsStream("/vm.xml");
- Injector injector = Guice.createInjector(new SaxParserModule());
- Factory factory = injector.getInstance(ParseSax.Factory.class);
- VM result = factory.create(injector.getInstance(VMHandler.class)).parse(is);
- VM expected = VM
- .builder()
- .id("1001")
- .status(VM.Status.ON)
- .name("znHost2")
- .type("application/vnd.vmware.vcloud.vApp+xml")
- .href(
- URI
- .create("https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/100000.0/vdc/2736/vApp/1001"))
- .networkConfigSection(
- NetworkConfigSection.builder().network("VM Tier01").gateway("0.0.0.0").netmask("0.0.0.0").info(
- "MAC=00:00:00:00:00:00").fenceMode("allowInOut").dhcp(true).internalToExternalNATRule(
- "10.76.2.4", "206.24.124.1").build())
- .networkConnectionSection(
- NetworkConnectionSection.builder().network("VM Tier01").info(
- "Read only description of a network connection to a deployed vApp").ipAddress(
- "10.76.0.5").build())
- .operatingSystemSection(
- OperatingSystemSection.builder().id(80).info("Specifies the operating system installed")
- .description("Red Hat Enterprise Linux 5.x 64bit").build())
- .productSection(
- ProductSection
- .builder()
- .info("vCenter Information")
- .property(
- Property.builder().value("false").key("vmwareToolsEnabled").label(
- "VMWare Tools Enabled status").description(
- "VMWare Tools Enabled status").build())
- .property(
- Property.builder().value("10.12.46.171").key("vmwareESXHost").label(
- "VMWare ESXHost Ipaddress").description("VMWare ESXHost Ipaddress")
- .build())
- .property(
- Property.builder().value("cussl01s01c01alun088bal,cussl01s01c01alun089bal")
- .key("datastores").label("Datastore Name").description(
- "Datastore Name").build())
- .property(
- Property
- .builder()
- .value("[Totalcapacity=1335915184128,UsedCapacity=549755813888]")
- .key("cussl01s01c01alun088bal")
- .label("Datastore Capacity")
- .description(
- "Datastore cussl01s01c01alun088bal Total Capacity, Used Capacity in comma separated")
- .build())
- .property(
- Property
- .builder()
- .value("[Totalcapacity=1335915184129,UsedCapacity=549755813889]")
- .key("cussl01s01c01alun089bal")
- .label("Datastore Capacity")
- .description(
- "Datastore cussl01s01c01alun089bal Total Capacity, Used Capacity in comma separated")
- .build()).property(
- Property.builder().value(
- "[name=3282176-1949-bal-tier01,ip=0.0.0.0,mac=00:50:56:8c:3f:3c]")
- .key("customerPortprofile").label("customerPortprofile")
- .description("customerPortprofile").build()).property(
- Property.builder().value(
- "[name=vm-server-mgmt,ip=0.0.0.0,mac=00:50:56:8c:39:75]").key(
- "savvisPortprofile").label("savvisPortprofile").description(
- "savvisPortprofile").build()).build()).virtualHardwareSection(
- VirtualHardwareSection.builder().info("UUID=52254cd2-d848-4e7d-b8f3-3d257fed7666").system(
- VirtualSystemSettingData.builder().description("Virtual Hardware Family").elementName(
- "znHost2").instanceID("1").virtualSystemIdentifier("znHost2").build()).item(
- ResourceAllocationSettingData.builder().allocationUnits("3 GHz").description(
- "Number of Virtual CPUs").elementName("1 CPU").instanceID("2").resourceType(
- ResourceType.PROCESSOR).virtualQuantity(1l).build()).item(
- ResourceAllocationSettingData.builder().allocationUnits("Gigabytes").description(
- "Memory Size").elementName("Memory").instanceID("3").resourceType(
- ResourceType.MEMORY).virtualQuantity(2l).build()).item(
- ResourceAllocationSettingData.builder().connection("VM Tier01").elementName("Network")
- .instanceID("4").resourceType(ResourceType.ETHERNET_ADAPTER).virtualQuantity(
- 1l).build()).item(
- ResourceAllocationSettingData.builder().allocationUnits("Gigabytes")
- .caption("1234567").description("Hard Disk").elementName("C:\\")
- .hostResource("boot").instanceID("5").resourceType(
- ResourceType.BASE_PARTITIONABLE_UNIT).virtualQuantity(25l).build())
- .item(
- ResourceAllocationSettingData.builder().allocationUnits("Gigabytes").caption(
- "1234568").description("Hard Disk").elementName("D:\\")
- .hostResource("data").instanceID("6").resourceType(
- ResourceType.PARTITIONABLE_UNIT).virtualQuantity(50l)
- .build()).build())
- .build();
- assertEquals(result, expected);
- }
- }