Package org.jclouds.savvis.vpdc.xml

Source Code of org.jclouds.savvis.vpdc.xml.VMHandlerTest

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF 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.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);
   }
}
TOP

Related Classes of org.jclouds.savvis.vpdc.xml.VMHandlerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.