blob: 3430a429c5dc8bce2e330d6fc985d662b9a7093a [file] [log] [blame]
/*
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
*(Link.builder().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(Link.builder().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.features.systemadmin;
import java.net.URI;
import org.jclouds.dmtf.ovf.NetworkSection;
import org.jclouds.dmtf.ovf.StartupSection;
import org.jclouds.vcloud.director.v1_5.domain.Error;
import org.jclouds.vcloud.director.v1_5.domain.Link;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
import org.jclouds.vcloud.director.v1_5.domain.RasdItemsList;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ScreenTicket;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.VApp;
import org.jclouds.vcloud.director.v1_5.domain.VmPendingQuestion;
import org.jclouds.vcloud.director.v1_5.domain.VmQuestionAnswer;
import org.jclouds.vcloud.director.v1_5.domain.dmtf.RasdItem;
import org.jclouds.vcloud.director.v1_5.domain.params.ControlAccessParams;
import org.jclouds.vcloud.director.v1_5.domain.section.GuestCustomizationSection;
import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConnectionSection;
import org.jclouds.vcloud.director.v1_5.domain.section.OperatingSystemSection;
import org.jclouds.vcloud.director.v1_5.domain.section.RuntimeInfoSection;
import org.jclouds.vcloud.director.v1_5.domain.section.VirtualHardwareSection;
import org.jclouds.vcloud.director.v1_5.features.VAppApi;
import org.jclouds.vcloud.director.v1_5.internal.VCloudDirectorAdminApiExpectTest;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.internal.annotations.Sets;
/**
* Allows us to test the {@link VAppApi} allowed to system administrators
*
* @author andrea turli
*/
@Test(groups = { "unit", "systemAdmin" }, singleThreaded = true, testName = "SystemAdminVAppApiExpectTest")
public class SystemAdminVAppApiExpectTest extends VCloudDirectorAdminApiExpectTest {
private String vAppId = "vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be";
private URI vAppURI = URI.create(endpoint + vAppId);
@BeforeClass
public void before() {
}
@Test(enabled = false)
public void testEnterMaintenanceMode() {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse,
new VcloudHttpRequestPrimer()
.apiCommand("POST", vAppId + "/action/enterMaintenanceMode")
.acceptAnyMedia()
.httpRequestBuilder().build(),
new VcloudHttpResponsePrimer()
.httpResponseBuilder().statusCode(204).build());
// TODO how to test?
api.getVAppApi().enterMaintenanceMode(vAppURI);
}
@Test(enabled = false)
public void testExitMaintenanceMode() {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse,
new VcloudHttpRequestPrimer()
.apiCommand("POST", vAppId + "/action/exitMaintenanceMode")
.acceptAnyMedia()
.httpRequestBuilder().build(),
new VcloudHttpResponsePrimer()
.httpResponseBuilder().statusCode(204).build());
// TODO how to test?
api.getVAppApi().exitMaintenanceMode(vAppURI);
}
public static VApp getVApp() {
// FIXME Does not match XML
VApp vApp = VApp.builder()
.href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be"))
// .link(Link.builder()
// .href(URI.create())
// .build())
.build();
// <Link rel="power:powerOn" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/power/action/powerOn"/>
// <Link rel="deploy" type="application/vnd.vmware.vcloud.deployVAppParams+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/action/deploy"/>
// <Link rel="down" type="application/vnd.vmware.vcloud.vAppNetwork+xml" name="orgNet-cloudsoft-External" href="https://mycloud.greenhousedata.com/api/network/2a2e2da4-446a-4ebc-a086-06df7c9570f0"/>
// <Link rel="down" type="application/vnd.vmware.vcloud.controlAccess+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/controlAccess/"/>
// <Link rel="controlAccess" type="application/vnd.vmware.vcloud.controlAccess+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/action/controlAccess"/>
// <Link rel="recompose" type="application/vnd.vmware.vcloud.recomposeVAppParams+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/action/recomposeVApp"/>
// <Link rel="up" type="application/vnd.vmware.vcloud.vdc+xml" href="https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f"/>
// <Link rel="edit" type="application/vnd.vmware.vcloud.vApp+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be"/>
// <Link rel="remove" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be"/>
// <Link rel="down" type="application/vnd.vmware.vcloud.owner+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/owner"/>
// <Link rel="down" type="application/vnd.vmware.vcloud.metadata+xml" href="https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/metadata"/>
return vApp;
}
public static Task editVAppTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task removeVAppTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task consolidateVAppTask() {
Task task = Task.builder()
.build();
return task;
}
public static ControlAccessParams controlAccessParams() {
ControlAccessParams params = ControlAccessParams.builder()
.build();
return params;
}
public static Task deployTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task discardSuspendedStateTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task installVMwareToolsTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task recomposeVAppTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task relocateTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task undeployTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task upgradeHardwareVersionTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task powerOffTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task powerOnTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task rebootTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task resetTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task shutdownTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task suspendTask() {
Task task = Task.builder()
.build();
return task;
}
public static ControlAccessParams getAccessControlParams() {
ControlAccessParams params = ControlAccessParams.builder()
.build();
return params;
}
public static GuestCustomizationSection getGuestCustomizationSection() {
GuestCustomizationSection section = GuestCustomizationSection.builder()
.build();
return section;
}
public static Task editGuestCustomizationSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static LeaseSettingsSection getLeaseSettingsSection() {
LeaseSettingsSection section = LeaseSettingsSection.builder()
.build();
return section;
}
public static Task editLeaseSettingsSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task ejectMediaTask() {
Task task = Task.builder()
.build();
return task;
}
public static Task insertMediaTask() {
Task task = Task.builder()
.build();
return task;
}
public static NetworkConfigSection getNetworkConfigSection() {
NetworkConfigSection section = NetworkConfigSection.builder()
.build();
return section;
}
public static Task editNetworkConfigSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static NetworkConnectionSection getNetworkConnectionSection() {
NetworkConnectionSection section = NetworkConnectionSection.builder()
.build();
return section;
}
public static Task editNetworkConnectionSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static NetworkSection getNetworkSection() {
NetworkSection section = NetworkSection.builder()
.build();
return section;
}
public static OperatingSystemSection getOperatingSystemSection() {
OperatingSystemSection section = OperatingSystemSection.builder()
.build();
return section;
}
public static Task editOperatingSystemSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static Owner getOwner() {
Owner owner = Owner.builder()
.build();
return owner;
}
public static Task editOwnerTask() {
Task task = Task.builder()
.build();
return task;
}
public static ProductSectionList getProductSections() {
ProductSectionList sectionItems = ProductSectionList.builder()
.build();
return sectionItems;
}
public static Task editProductSectionsTask() {
Task task = Task.builder()
.build();
return task;
}
public static VmPendingQuestion getPendingQuestion() {
VmPendingQuestion question = VmPendingQuestion.builder()
.build();
return question;
}
public static VmQuestionAnswer answerQuestion() {
VmQuestionAnswer answer = null; // = VmQuestionAnswer.builder()
// .build();
return answer;
}
public static RuntimeInfoSection getRuntimeInfoSection() {
RuntimeInfoSection section = RuntimeInfoSection.builder()
.build();
return section;
}
public static byte[] getScreenImage() {
byte[] image = new byte[0];
return image;
}
public static ScreenTicket getScreenTicket() {
ScreenTicket ticket = null; // = ScreenTicket.builder();
// .build();
return ticket;
}
public static StartupSection getStartupSection() {
StartupSection section = null; // = StartupSection.builder();
// .build();
return section;
}
public static Task editStartupSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static VirtualHardwareSection getVirtualHardwareSection() {
VirtualHardwareSection section = VirtualHardwareSection.builder()
.build();
return section;
}
public static Task editVirtualHardwareSectionTask() {
Task task = Task.builder()
.build();
return task;
}
public static RasdItem getVirtualHardwareSectionCpu() {
RasdItem cpu = RasdItem.builder()
.build();
return cpu;
}
public static Task editVirtualHardwareSectionCpuTask() {
Task task = Task.builder()
.build();
return task;
}
public static RasdItemsList getVirtualHardwareSectionDisks() {
RasdItemsList disks = RasdItemsList.builder()
.build();
return disks;
}
public static Task editVirtualHardwareSectionDisksTask() {
Task task = Task.builder()
.build();
return task;
}
public static RasdItemsList getVirtualHardwareSectionMedia() {
RasdItemsList media = RasdItemsList.builder()
.build();
return media;
}
public static RasdItem getVirtualHardwareSectionMemory() {
RasdItem memory = RasdItem.builder()
.build();
return memory;
}
public static Task editVirtualHardwareSectionMemoryTask() {
Task task = Task.builder()
.build();
return task;
}
public static RasdItemsList getVirtualHardwareSectionNetworkCards() {
RasdItemsList networkCards = RasdItemsList.builder()
.build();
return networkCards;
}
public static Task editVirtualHardwareSectionNetworkCardsTask() {
Task task = Task.builder()
.build();
return task;
}
public static RasdItemsList getVirtualHardwareSectionSerialPorts() {
RasdItemsList serialPorts = RasdItemsList.builder()
.build();
return serialPorts;
}
public static Task editVirtualHardwareSectionSerialPortsTask() {
return task("id", "name", "description", "status", "operation", "operationName", "startTime");
}
/** Used by other methods to add a custom {@link Task} object. */
private static Task task(String taskId, String name, String description, String status, String operation, String operationName, String startTime) {
Task task = Task.builder()
.error(Error.builder().build())
.org(Reference.builder().build())
.owner(Reference.builder().build())
.user(Reference.builder().build())
.params(null)
.progress(0)
.status(status)
.operation(operation)
.operationName(operationName)
.startTime(dateService.iso8601DateParse(startTime))
.endTime(null)
.expiryTime(null)
.tasks(Sets.<Task>newLinkedHashSet())
.description(description)
.name(name)
.id("urn:vcloud:" + taskId)
.href(URI.create(endpoint + "/task/" + taskId))
.links(Sets.<Link>newLinkedHashSet())
.build();
return task;
}
}