mirror of https://github.com/apache/jclouds.git
Merge pull request #461 from aledsage/issue-830-vapp-virtualHardwareSection
Issue 830 vapp virtual hardware section
This commit is contained in:
commit
6dc3f8e045
|
@ -23,6 +23,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
|||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
|
@ -31,6 +32,7 @@ import com.google.common.base.Objects;
|
|||
*
|
||||
* @author danikov
|
||||
*/
|
||||
@XmlType(name = "NetworkConfiguration")
|
||||
@XmlRootElement(name = "NetworkConfiguration")
|
||||
public class NetworkConfiguration {
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
|||
import java.util.List;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
import org.jclouds.vcloud.director.v1_5.domain.ovf.RASD;
|
||||
|
@ -41,6 +42,7 @@ import com.google.common.collect.Lists;
|
|||
*
|
||||
* @author grkvlt@apache.org
|
||||
*/
|
||||
@XmlRootElement(name = "RasdItemsList")
|
||||
@XmlType(name = "RasdItemsList")
|
||||
public class RasdItemsList extends ResourceType {
|
||||
|
||||
|
|
|
@ -248,9 +248,9 @@ public class CIMResourceAllocationSettingDataType {
|
|||
private CimBoolean automaticAllocation;
|
||||
@XmlElement(name = "AutomaticDeallocation", nillable = true)
|
||||
private CimBoolean automaticDeallocation;
|
||||
@XmlElementRef(name = "Caption", namespace = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData", type = ResourceAllocationCaption.class)
|
||||
@XmlElement(name = "Caption", nillable = true, namespace = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
||||
private ResourceAllocationCaption caption;
|
||||
@XmlElementRef(name = "ChangeableType", namespace = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData", type = ResourceAllocationChangeableType.class)
|
||||
@XmlElement(name = "ChangeableType", nillable = true, namespace = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
||||
private ResourceAllocationChangeableType changeableType;
|
||||
@XmlElement(name = "ConfigurationName", nillable = true)
|
||||
private CimString configurationName;
|
||||
|
|
|
@ -1,28 +1,30 @@
|
|||
//
|
||||
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6
|
||||
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||
// Generated on: 2012.02.08 at 02:47:44 PM GMT
|
||||
//
|
||||
|
||||
|
||||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
public class ResourceAllocationCaption
|
||||
extends JAXBElement<ResourceAllocationCaptionType>
|
||||
{
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class ResourceAllocationCaption extends CimString {
|
||||
|
||||
protected final static QName NAME = new QName("http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData", "Caption");
|
||||
|
||||
public ResourceAllocationCaption(ResourceAllocationCaptionType value) {
|
||||
super(NAME, ((Class) ResourceAllocationCaptionType.class), null, value);
|
||||
}
|
||||
|
||||
public ResourceAllocationCaption() {
|
||||
super(NAME, ((Class) ResourceAllocationCaptionType.class), null, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class ResourceAllocationCaptionType extends CimString {
|
||||
|
||||
|
||||
}
|
|
@ -1,28 +1,30 @@
|
|||
//
|
||||
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6
|
||||
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||
// Generated on: 2012.02.08 at 02:47:44 PM GMT
|
||||
//
|
||||
|
||||
|
||||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
public class ResourceAllocationChangeableType
|
||||
extends JAXBElement<ResourceAllocationChangeableTypeType>
|
||||
{
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class ResourceAllocationChangeableType extends CimUnsignedShort {
|
||||
|
||||
protected final static QName NAME = new QName("http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData", "ChangeableType");
|
||||
|
||||
public ResourceAllocationChangeableType(ResourceAllocationChangeableTypeType value) {
|
||||
super(NAME, ((Class) ResourceAllocationChangeableTypeType.class), null, value);
|
||||
}
|
||||
|
||||
public ResourceAllocationChangeableType() {
|
||||
super(NAME, ((Class) ResourceAllocationChangeableTypeType.class), null, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class ResourceAllocationChangeableTypeType extends CimUnsignedShort {
|
||||
|
||||
|
||||
}
|
|
@ -1,28 +1,30 @@
|
|||
//
|
||||
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6
|
||||
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||
// Generated on: 2012.02.08 at 02:47:44 PM GMT
|
||||
//
|
||||
|
||||
|
||||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
public class VirtualSystemCaption
|
||||
extends JAXBElement<VirtualSystemCaptionType>
|
||||
{
|
||||
/**
|
||||
* <p>Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class VirtualSystemCaption extends CimString {
|
||||
|
||||
protected final static QName NAME = new QName("http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData", "Caption");
|
||||
|
||||
public VirtualSystemCaption(VirtualSystemCaptionType value) {
|
||||
super(NAME, ((Class) VirtualSystemCaptionType.class), null, value);
|
||||
}
|
||||
|
||||
public VirtualSystemCaption() {
|
||||
super(NAME, ((Class) VirtualSystemCaptionType.class), null, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
/**
|
||||
* <p>Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class VirtualSystemCaptionType extends CimString {
|
||||
|
||||
|
||||
}
|
|
@ -1,28 +1,30 @@
|
|||
//
|
||||
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6
|
||||
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
|
||||
// Any modifications to this file will be lost upon recompilation of the source schema.
|
||||
// Generated on: 2012.02.08 at 02:47:44 PM GMT
|
||||
//
|
||||
|
||||
|
||||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
public class VirtualSystemChangeableType
|
||||
extends JAXBElement<VirtualSystemChangeableTypeType>
|
||||
{
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class VirtualSystemChangeableType extends CimUnsignedShort {
|
||||
|
||||
protected final static QName NAME = new QName("http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData", "ChangeableType");
|
||||
|
||||
public VirtualSystemChangeableType(VirtualSystemChangeableTypeType value) {
|
||||
super(NAME, ((Class) VirtualSystemChangeableTypeType.class), null, value);
|
||||
}
|
||||
|
||||
public VirtualSystemChangeableType() {
|
||||
super(NAME, ((Class) VirtualSystemChangeableTypeType.class), null, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
* 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.vcloud.director.v1_5.domain.cim;
|
||||
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
/**
|
||||
* Java class for anonymous complex type.
|
||||
*/
|
||||
@XmlType(name = "")
|
||||
public class VirtualSystemChangeableTypeType extends CimUnsignedShort {
|
||||
|
||||
|
||||
}
|
|
@ -19,8 +19,10 @@
|
|||
package org.jclouds.vcloud.director.v1_5.domain.ovf;
|
||||
|
||||
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_OVF_NS;
|
||||
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_1_5_NS;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
import org.jclouds.vcloud.director.v1_5.domain.cim.CIMResourceAllocationSettingDataType;
|
||||
|
@ -35,6 +37,7 @@ import org.jclouds.vcloud.director.v1_5.domain.cim.CIMResourceAllocationSettingD
|
|||
* @author grkvlt@apache.org
|
||||
*/
|
||||
@XmlType(name = "RASD_Type")
|
||||
@XmlRootElement(name = "Item", namespace = VCLOUD_1_5_NS)
|
||||
public class RASD extends CIMResourceAllocationSettingDataType {
|
||||
|
||||
// TODO Add toString, hashCode and equals
|
||||
|
|
|
@ -134,6 +134,9 @@ public interface VdcClient {
|
|||
* The status of vApp template will be NOT_READY(0) until the ovf and all disks are uploaded
|
||||
* to the transfer site. After this a task will run on the vApp template uploading.
|
||||
*
|
||||
* Note that the empty vApp template's getFiles() returns a file of size -1 after step one above,
|
||||
* because the descriptor.ovf does not yet exist.
|
||||
*
|
||||
* @return a VAppTemplate resource which will contain a task.
|
||||
* The user should should wait for this task to finish to be able to use the VAppTemplate.
|
||||
*/
|
||||
|
|
|
@ -91,6 +91,8 @@ import org.jclouds.vcloud.director.v1_5.domain.VAppNetworkConfiguration;
|
|||
import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.Vdc;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.VmPendingQuestion;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.cim.CimString;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.cim.CimUnsignedInt;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.ovf.NetworkSection;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.ovf.OperatingSystemSection;
|
||||
import org.jclouds.vcloud.director.v1_5.domain.ovf.RASD;
|
||||
|
@ -748,16 +750,17 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "PUT /vApp/{id}/productSections", dependsOnMethods = { "testGetProductSections" })
|
||||
public void testModifyProductSections() {
|
||||
ProductSectionList sectionList = vAppClient.getProductSections(vApp.getHref());
|
||||
|
||||
// sectionList.setX()
|
||||
ProductSectionList origSections = vAppClient.getProductSections(vApp.getHref());
|
||||
ProductSectionList newSections = origSections.toBuilder().build();
|
||||
|
||||
// The method under test
|
||||
Task modifyProductSections = vAppClient.modifyProductSections(vApp.getHref(), sectionList);
|
||||
Task modifyProductSections = vAppClient.modifyProductSections(vApp.getHref(), newSections);
|
||||
assertTrue(retryTaskSuccess.apply(modifyProductSections), String.format(TASK_COMPLETE_TIMELY, "modifyProductSections"));
|
||||
|
||||
ProductSectionList modifiedList = vAppClient.getProductSections(vApp.getHref());
|
||||
// assertEquals(modified.getX, "");
|
||||
Checks.checkProductSectionList(modifiedList);
|
||||
|
||||
// TODO What to modify, to confirm that changes took effect?
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/question", dependsOnMethods = { "testGetVApp" })
|
||||
|
@ -884,31 +887,48 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/cpu", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionCpu() {
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionCpu(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionCpu(vmURI);
|
||||
checkRASD(rasd);
|
||||
}
|
||||
|
||||
@Test(testName = "PUT /vApp/{id}/virtualHardwareSection/cpu", dependsOnMethods = { "testGetVirtualHardwareSectionCpu" })
|
||||
public void testModifyVirtualHardwareSectionCpu() {
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionCpu(vApp.getHref());
|
||||
// rasd.setX("New Info");
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RASD origSection = vAppClient.getVirtualHardwareSectionCpu(vmURI);
|
||||
RASD newSection = origSection.toBuilder().build();
|
||||
|
||||
// Method under test
|
||||
Task modifyVirtualHardwareSectionCpu = vAppClient.modifyVirtualHardwareSectionCpu(vApp.getHref(), rasd);
|
||||
Task modifyVirtualHardwareSectionCpu = vAppClient.modifyVirtualHardwareSectionCpu(vmURI, newSection);
|
||||
assertTrue(retryTaskSuccess.apply(modifyVirtualHardwareSectionCpu), String.format(TASK_COMPLETE_TIMELY, "modifyVirtualHardwareSectionCpu"));
|
||||
|
||||
// Retrieve the modified section
|
||||
RASD modified = vAppClient.getVirtualHardwareSectionCpu(vApp.getHref());
|
||||
RASD modified = vAppClient.getVirtualHardwareSectionCpu(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
// Check the retrieved object
|
||||
checkRASD(modified);
|
||||
|
||||
// assertEquals(modified.getInfo(), "New Info");
|
||||
// TODO What is modifiable? What can we change, so we can assert the change took effect?
|
||||
// I tried changing "weight", but it continued to have the value zero when looked up post-modify.
|
||||
//
|
||||
// long weight = random.nextInt(Integer.MAX_VALUE);
|
||||
// RASD newSection = origSection.toBuilder()
|
||||
// .weight(newCimUnsignedInt(weight))
|
||||
// .build();
|
||||
// ...
|
||||
// assertEquals(modified.getWeight().getValue(), weight, String.format(OBJ_FIELD_EQ, VAPP, "virtualHardwareSection/cpu/weight", weight, ""+modified.getWeight()));
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/disks", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionDisks() {
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionDisks(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionDisks(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(rasdItems);
|
||||
|
@ -916,32 +936,49 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "PUT /vApp/{id}/virtualHardwareSection/disks", dependsOnMethods = { "testGetVirtualHardwareSectionDisks" })
|
||||
public void testModifyVirtualHardwareSectionDisks() {
|
||||
// Copy the existing items list and add a new item
|
||||
RasdItemsList oldRasdItems = vAppClient.getVirtualHardwareSectionDisks(vApp.getHref());
|
||||
RASD item = RASD.builder().build();
|
||||
RasdItemsList newRasdItems = oldRasdItems.toBuilder()
|
||||
.item(item)
|
||||
.build();
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
// Copy the existing items list and modify the name of an item
|
||||
RasdItemsList oldSection = vAppClient.getVirtualHardwareSectionDisks(vmURI);
|
||||
RasdItemsList newSection = oldSection.toBuilder().build();
|
||||
|
||||
// Method under test
|
||||
Task modifyVirtualHardwareSectionDisks = vAppClient.modifyVirtualHardwareSectionDisks(vApp.getHref(), newRasdItems);
|
||||
Task modifyVirtualHardwareSectionDisks = vAppClient.modifyVirtualHardwareSectionDisks(vmURI, newSection);
|
||||
assertTrue(retryTaskSuccess.apply(modifyVirtualHardwareSectionDisks), String.format(TASK_COMPLETE_TIMELY, "modifyVirtualHardwareSectionDisks"));
|
||||
|
||||
// Retrieve the modified section
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionDisks(vApp.getHref());
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionDisks(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(modified);
|
||||
|
||||
// Check the modified items list
|
||||
// assertEquals(modified.getX(), "");
|
||||
assertTrue(modified.getItems().contains(item));
|
||||
assertEquals(modified, newRasdItems);
|
||||
// TODO What is modifiable? What can we change, so we can assert the change took effect?
|
||||
// I tried changing "elementName" of one of the items, but it continued to have the old value when looked up post-modify.
|
||||
//
|
||||
// List<RASD> newItems = new ArrayList<RASD>(oldSection.getItems());
|
||||
// RASD item0 = newItems.get(0);
|
||||
// String item0InstanceId = item0.getInstanceID().getValue();
|
||||
// String item0ElementName = item0.getElementName().getValue()+"-"+random.nextInt(Integer.MAX_VALUE);
|
||||
// newItems.set(0, item0.toBuilder().elementName(newCimString(item0ElementName)).build());
|
||||
// RasdItemsList newSection = oldSection.toBuilder()
|
||||
// .items(newItems)
|
||||
// .build();
|
||||
// ...
|
||||
// long weight = random.nextInt(Integer.MAX_VALUE);
|
||||
// RASD newSection = origSection.toBuilder()
|
||||
// .weight(newCimUnsignedInt(weight))
|
||||
// .build();
|
||||
// ...
|
||||
// checkHasMatchingItem("virtualHardwareSection/disk", modified, item0InstanceId, item0ElementName);
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/media", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionMedia() {
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionMedia(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionMedia(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(rasdItems);
|
||||
|
@ -949,7 +986,10 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/memory", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionMemory() {
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionCpu(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionCpu(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRASD(rasd);
|
||||
|
@ -957,20 +997,33 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "PUT /vApp/{id}/virtualHardwareSection/memory", dependsOnMethods = { "testGetVirtualHardwareSectionMemory" })
|
||||
public void testModifyVirtualHardwareSectionMemory() {
|
||||
RASD rasd = vAppClient.getVirtualHardwareSectionMemory(vApp.getHref());
|
||||
// rasd.setX("New Info");
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RASD origSection = vAppClient.getVirtualHardwareSectionMemory(vmURI);
|
||||
RASD newSection = origSection.toBuilder().build();
|
||||
|
||||
// Method under test
|
||||
Task modifyVirtualHardwareSectionMemory = vAppClient.modifyVirtualHardwareSectionMemory(vApp.getHref(), rasd);
|
||||
Task modifyVirtualHardwareSectionMemory = vAppClient.modifyVirtualHardwareSectionMemory(vmURI, newSection);
|
||||
assertTrue(retryTaskSuccess.apply(modifyVirtualHardwareSectionMemory), String.format(TASK_COMPLETE_TIMELY, "modifyVirtualHardwareSectionMemory"));
|
||||
|
||||
RASD modified = vAppClient.getVirtualHardwareSectionMemory(vApp.getHref());
|
||||
// assertEquals(modified.getInfo(), "New Info");
|
||||
// Retrieve the modified section
|
||||
RASD modified = vAppClient.getVirtualHardwareSectionMemory(vmURI);
|
||||
|
||||
// Check the retrieved object
|
||||
checkRASD(modified);
|
||||
|
||||
// TODO What is modifiable? What can we change, so we can assert the change took effect?
|
||||
// I tried changing "weight", but it continued to have the value zero when looked up post-modify.
|
||||
// See description under testModifyVirtualHardwareSectionMemoryCpu
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/networkCards", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionNetworkCards() {
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionNetworkCards(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionNetworkCards(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(rasdItems);
|
||||
|
@ -978,32 +1031,33 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "PUT /vApp/{id}/virtualHardwareSection/networkCards", dependsOnMethods = { "testGetVirtualHardwareSectionNetworkCards" })
|
||||
public void testModifyVirtualHardwareSectionNetworkCards() {
|
||||
// Copy the existing items list and add a new item
|
||||
RasdItemsList oldRasdItems = vAppClient.getVirtualHardwareSectionNetworkCards(vApp.getHref());
|
||||
RASD item = RASD.builder().build();
|
||||
RasdItemsList newRasdItems = oldRasdItems.toBuilder()
|
||||
.item(item)
|
||||
.build();
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList oldSection = vAppClient.getVirtualHardwareSectionNetworkCards(vmURI);
|
||||
RasdItemsList newSection = oldSection.toBuilder().build();
|
||||
|
||||
// Method under test
|
||||
Task modifyVirtualHardwareSectionNetworkCards = vAppClient.modifyVirtualHardwareSectionNetworkCards(vApp.getHref(), newRasdItems);
|
||||
Task modifyVirtualHardwareSectionNetworkCards = vAppClient.modifyVirtualHardwareSectionNetworkCards(vmURI, newSection);
|
||||
assertTrue(retryTaskSuccess.apply(modifyVirtualHardwareSectionNetworkCards), String.format(TASK_COMPLETE_TIMELY, "modifyVirtualHardwareSectionNetworkCards"));
|
||||
|
||||
// Retrieve the modified section
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionNetworkCards(vApp.getHref());
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionNetworkCards(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(modified);
|
||||
|
||||
// Check the modified items list
|
||||
// assertEquals(modified.getX(), "");
|
||||
assertTrue(modified.getItems().contains(item));
|
||||
assertEquals(modified, newRasdItems);
|
||||
// TODO What is modifiable? What can we change, so we can assert the change took effect?
|
||||
// I tried changing "elementName" of one of the items, but it continued to have the old value when looked up post-modify.
|
||||
// See the description in testModifyVirtualHardwareSectionDisks
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/virtualHardwareSection/serialPorts", dependsOnMethods = { "testGetVirtualHardwareSection" })
|
||||
public void testGetVirtualHardwareSectionSerialPorts() {
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionSerialPorts(vApp.getHref());
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList rasdItems = vAppClient.getVirtualHardwareSectionSerialPorts(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(rasdItems);
|
||||
|
@ -1011,27 +1065,25 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
|
||||
@Test(testName = "PUT /vApp/{id}/virtualHardwareSection/serialPorts", dependsOnMethods = { "testGetVirtualHardwareSectionSerialPorts" })
|
||||
public void testModifyVirtualHardwareSectionSerialPorts() {
|
||||
// Copy the existing items list and add a new item
|
||||
RasdItemsList oldRasdItems = vAppClient.getVirtualHardwareSectionSerialPorts(vApp.getHref());
|
||||
RASD item = RASD.builder().build();
|
||||
RasdItemsList newRasdItems = oldRasdItems.toBuilder()
|
||||
.item(item)
|
||||
.build();
|
||||
// Get URI for child VM
|
||||
URI vmURI = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
|
||||
|
||||
RasdItemsList oldSection = vAppClient.getVirtualHardwareSectionSerialPorts(vmURI);
|
||||
RasdItemsList newSection = oldSection.toBuilder().build();
|
||||
|
||||
// Method under test
|
||||
Task modifyVirtualHardwareSectionSerialPorts = vAppClient.modifyVirtualHardwareSectionSerialPorts(vApp.getHref(), newRasdItems);
|
||||
Task modifyVirtualHardwareSectionSerialPorts = vAppClient.modifyVirtualHardwareSectionSerialPorts(vmURI, newSection);
|
||||
assertTrue(retryTaskSuccess.apply(modifyVirtualHardwareSectionSerialPorts), String.format(TASK_COMPLETE_TIMELY, "modifyVirtualHardwareSectionSerialPorts"));
|
||||
|
||||
// Retrieve the modified section
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionSerialPorts(vApp.getHref());
|
||||
RasdItemsList modified = vAppClient.getVirtualHardwareSectionSerialPorts(vmURI);
|
||||
|
||||
// Check the retrieved object is well formed
|
||||
checkRasdItemsList(modified);
|
||||
|
||||
// Check the modified items list
|
||||
// assertEquals(modified.getX(), "");
|
||||
assertTrue(modified.getItems().contains(item));
|
||||
assertEquals(modified, newRasdItems);
|
||||
// TODO What is modifiable? What can we change, so we can assert the change took effect?
|
||||
// I tried changing "elementName" of one of the items, but it continued to have the old value when looked up post-modify.
|
||||
// See the description in testModifyVirtualHardwareSectionDisks
|
||||
}
|
||||
|
||||
@Test(testName = "GET /vApp/{id}/metadata", dependsOnMethods = { "testGetVApp" })
|
||||
|
@ -1245,4 +1297,33 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
|
|||
Throwables.propagate(ioe);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private CimUnsignedInt newCimUnsignedInt(long val) {
|
||||
CimUnsignedInt result = new CimUnsignedInt();
|
||||
result.setValue(val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private CimString newCimString(String val) {
|
||||
CimString result = new CimString();
|
||||
result.setValue(val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private void checkHasMatchingItem(String context, RasdItemsList items, String instanceId, String elementName) {
|
||||
boolean found = false;
|
||||
for (RASD item : items.getItems()) {
|
||||
String itemInstanceId = item.getInstanceID().getValue();
|
||||
if (itemInstanceId.equals(instanceId)) {
|
||||
assertEquals(item.getElementName().getValue(), elementName,
|
||||
String.format(OBJ_FIELD_EQ, VAPP, context+"/"+instanceId+"/elementName", elementName, ""+item.getElementName().getValue()));
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assertTrue(found, "no "+context+" item found with id "+instanceId+"; only found "+items);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue