Search in sources :

Example 6 with ProvisionComputeTaskState

use of com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState in project photon-model by vmware.

the class TestAzureLongRunningEnumeration method testLongRunEnumeration.

@Test
public void testLongRunEnumeration() throws Throwable {
    // Log node stats at the beginning of the test
    logNodeStats(this.host.getServiceStats(this.nodeStatsUri));
    // 1. Provision VMs
    List<ProvisionComputeTaskState> taskStates = new ArrayList<>();
    for (int i = 0; i < numOfVMsToTest; i++) {
        this.storageDescriptions.add(createDefaultStorageAccountDescription(this.host, this.mockedStorageAccountName, computeHost, endpointState));
        this.resourceGroupStates.add(createDefaultResourceGroupState(this.host, this.mockedStorageAccountName, computeHost, endpointState, ResourceGroupStateType.AzureResourceGroup));
        this.diskStates.add(createDefaultDiskState(this.host, this.mockedStorageAccountName, this.mockedStorageAccountName, computeHost, endpointState));
        // create an Azure VM compute resource (this also creates a disk and a storage account)
        this.vmStates.add(createDefaultVMResource(this.host, azureVMNames.get(i), computeHost, endpointState, nicSpecs.get(i)));
        // kick off a provision task to do the actual VM creation
        ProvisionComputeTaskState provisionTask = new ProvisionComputeTaskState();
        provisionTask.computeLink = this.vmStates.get(i).documentSelfLink;
        provisionTask.isMockRequest = this.isMock;
        provisionTask.taskSubStage = SubStage.CREATING_HOST;
        taskStates.add(TestUtils.doPost(this.host, provisionTask, ProvisionComputeTaskState.class, UriUtils.buildUri(this.host, ProvisionComputeTaskService.FACTORY_LINK)));
    }
    for (ProvisionComputeTaskState taskState : taskStates) {
        this.host.waitForFinishedTask(ProvisionComputeTaskState.class, taskState.documentSelfLink);
    }
    this.host.log(Level.INFO, "VMs provisioned successfully.");
    // Check resources have been created
    // expected VM count = numOfVMsToTest + 1 (1 compute host instance + numOfVMsToTest vm compute state)
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest + 1, ComputeService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest, StorageDescriptionService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest, ResourceGroupService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest, DiskService.FACTORY_LINK, false);
    Map<String, ComputeState> azLrtComputeStates = getVMComputeStatesWithPrefix();
    Assert.assertEquals(numOfVMsToTest, azLrtComputeStates.size());
    if (this.isMock) {
        runEnumeration(this.host, computeHost.documentSelfLink, computeHost.resourcePoolLink, endpointState, this.isMock);
        for (int i = 0; i < numOfVMsToTest; i++) {
            deleteVMs(this.host, this.vmStates.get(i).documentSelfLink, this.isMock, 1);
            this.vmStates.set(i, null);
            ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest - i, ComputeService.FACTORY_LINK, false);
            deleteServiceDocument(this.host, this.storageDescriptions.get(i).documentSelfLink);
            this.storageDescriptions.set(i, null);
            ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest - i - 1, StorageDescriptionService.FACTORY_LINK, true);
            deleteServiceDocument(this.host, this.resourceGroupStates.get(i).documentSelfLink);
            this.resourceGroupStates.set(i, null);
            ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest - i - 1, ResourceGroupService.FACTORY_LINK, false);
            deleteServiceDocument(this.host, this.diskStates.get(i).documentSelfLink);
            this.diskStates.set(i, null);
            ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, numOfVMsToTest - i - 1, DiskService.FACTORY_LINK, false);
        }
        return;
    }
    // 2. Create extra resources
    createStaleResource();
    tagAzureResources();
    // stale resources + 1 compute host instance + 1 vm compute state
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, STALE_VM_RESOURCES_COUNT + (numOfVMsToTest + 1), ComputeService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, STALE_STORAGE_ACCOUNTS_COUNT + numOfVMsToTest, StorageDescriptionService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, STALE_CONTAINERS_COUNT + STALE_RG_COUNT + 1, ResourceGroupService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, STALE_DISKS_COUNT + numOfVMsToTest, DiskService.FACTORY_LINK, false);
    ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, STALE_SECURITY_GROUPS_COUNT, SecurityGroupService.FACTORY_LINK, false);
    this.vmCount = getAzureVMCount(this.computeManagementClient);
    this.host.log(Level.INFO, "Initial VM Count: %d", this.vmCount);
    // 3. Run multiple enumerations over a period of time.
    this.host.log(Level.INFO, "Waiting for multiple enumeration runs...");
    ScheduledFuture<?> enums = runEnumerationAndLogNodeStatsPeriodically();
    this.host.waitFor("Timeout while waiting for test run duration", () -> {
        TimeUnit.MINUTES.sleep(this.testRunDurationInMinutes);
        enums.cancel(false);
        return true;
    });
    this.host.waitFor("Timeout while waiting for last enumeration to clear out.", () -> {
        TimeUnit.MINUTES.sleep(1);
        return true;
    });
    verifyResourceDuplicates();
    // 4. Validate extra resources
    assertRemoteResources();
    assertStaleResources();
    ServiceDocumentQueryResult result = ProvisioningUtils.queryDocumentsAndAssertExpectedCount(this.host, this.vmCount, ComputeService.FACTORY_LINK, false);
    // validate type field for enumerated VMs
    result.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), ComputeState.class)).filter(c -> !c.documentSelfLink.equals(computeHost.documentSelfLink)).forEach(c -> assertEquals(ComputeType.VM_GUEST, c.type));
    // validate internal tags for enumerated VMs
    TagService.TagState expectedInternalTypeTag = newTagState(TAG_KEY_TYPE, AzureConstants.AzureResourceType.azure_vm.toString(), false, endpointState.tenantLinks);
    result.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), ComputeState.class)).filter(c -> c.type.equals(ComputeType.VM_GUEST)).forEach(c -> {
        assertNotNull(c.tagLinks);
        assertTrue(c.tagLinks.contains(expectedInternalTypeTag.documentSelfLink));
    });
    // validate environment name field for enumerated VMs
    result.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), ComputeState.class)).forEach(c -> assertEquals(ComputeDescription.ENVIRONMENT_NAME_AZURE, c.environmentName));
    // 5. Validate enumerated compute states have not changed.
    Map<String, ComputeState> azLrtComputeStatesEnd = getVMComputeStatesWithPrefix();
    assertTrue(numOfVMsToTest <= azLrtComputeStatesEnd.size());
    assertComputeStatesEqual(azLrtComputeStates, azLrtComputeStatesEnd);
    // 1 network per each stale vm resource + 1 network for original vm compute state.
    ServiceDocumentQueryResult networkResults = ProvisioningUtils.queryAllFactoryResources(this.host, NetworkService.FACTORY_LINK);
    // validate internal tags for enumerated networks
    TagService.TagState expectedNetworkInternalTypeTag = newTagState(TAG_KEY_TYPE, NETWORK_TAG_TYPE_VALUE, false, endpointState.tenantLinks);
    networkResults.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), NetworkState.class)).forEach(c -> {
        assertNotNull(c.tagLinks);
        assertTrue(c.tagLinks.contains(expectedNetworkInternalTypeTag.documentSelfLink));
    });
    // 1 subnet per network, 1 network per each stale vm resource + 1 subnet for the original
    // compute state.
    ServiceDocumentQueryResult subnetResults = ProvisioningUtils.queryAllFactoryResources(this.host, SubnetService.FACTORY_LINK);
    // validate internal tags for enumerated subnets
    TagService.TagState expectedSubnetInternalTypeTag = newTagState(TAG_KEY_TYPE, SUBNET_TAG_TYPE_VALUE, false, endpointState.tenantLinks);
    subnetResults.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), SubnetState.class)).forEach(c -> {
        assertNotNull(c.tagLinks);
        assertTrue(c.tagLinks.contains(expectedSubnetInternalTypeTag.documentSelfLink));
    });
    ServiceDocumentQueryResult nicResults = ProvisioningUtils.queryAllFactoryResources(this.host, NetworkInterfaceService.FACTORY_LINK);
    // validate internal tags for enumerated network interfaces
    TagService.TagState expectedNicInternalTypeTag = newTagState(TAG_KEY_TYPE, NETWORK_INTERFACE_TAG_TYPE_VALUE, false, endpointState.tenantLinks);
    nicResults.documents.entrySet().stream().map(e -> Utils.fromJson(e.getValue(), NetworkInterfaceState.class)).forEach(c -> {
        assertNotNull(c.tagLinks);
        assertTrue(c.tagLinks.contains(expectedNicInternalTypeTag.documentSelfLink));
    });
    for (int i = 0; i < numOfVMsToTest; i++) {
        this.host.log(Level.INFO, "Deleting vm: %s", azureVMNames.get(i));
        this.computeManagementClient.virtualMachines().beginDelete(azureVMNames.get(i), azureVMNames.get(i));
    }
    runEnumeration(this.host, computeHost.documentSelfLink, computeHost.resourcePoolLink, endpointState, this.isMock);
    for (int i = 0; i < numOfVMsToTest; i++) {
        assertResourceDisassociated(this.host, ComputeService.FACTORY_LINK, azureVMNames.get(i), true);
        // clean up
        this.vmStates.set(i, null);
        this.resourceManagementClient.resourceGroups().beginDelete(azureVMNames.get(i));
        this.host.log(Level.INFO, "Deleting vm resource group %s", azureVMNames.get(i));
    }
    // Log node stats at the end of the test
    logNodeStats(this.host.getServiceStats(this.nodeStatsUri));
}
Also used : Arrays(java.util.Arrays) NetworkManagementClientImpl(com.microsoft.azure.management.network.implementation.NetworkManagementClientImpl) ProvisionComputeTaskService(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService) AzureTestUtil.deleteVMs(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.deleteVMs) VirtualNetworkInner(com.microsoft.azure.management.network.implementation.VirtualNetworkInner) StorageManagementClientImpl(com.microsoft.azure.management.storage.implementation.StorageManagementClientImpl) ResourceGroupState(com.vmware.photon.controller.model.resources.ResourceGroupService.ResourceGroupState) Utils(com.vmware.xenon.common.Utils) SubnetState(com.vmware.photon.controller.model.resources.SubnetService.SubnetState) AzureTestUtil.createDefaultComputeHost(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultComputeHost) Map(java.util.Map) StorageDescription(com.vmware.photon.controller.model.resources.StorageDescriptionService.StorageDescription) AzureEnvironment(com.microsoft.azure.AzureEnvironment) ServiceDocumentQueryResult(com.vmware.xenon.common.ServiceDocumentQueryResult) AzureTestUtil.deleteServiceDocument(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.deleteServiceDocument) ProvisioningUtils(com.vmware.photon.controller.model.tasks.ProvisioningUtils) SubnetService(com.vmware.photon.controller.model.resources.SubnetService) NetworkInterfaceState(com.vmware.photon.controller.model.resources.NetworkInterfaceService.NetworkInterfaceState) Set(java.util.Set) AzureTestUtil.createDefaultStorageAccountDescription(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultStorageAccountDescription) AzureTestUtil.updateAzureSecurityGroup(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.updateAzureSecurityGroup) NetworkInterfaceService(com.vmware.photon.controller.model.resources.NetworkInterfaceService) TagService(com.vmware.photon.controller.model.resources.TagService) AzureTestUtil.assertResourceDisassociated(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.assertResourceDisassociated) AzureAdaptersTestUtils(com.vmware.photon.controller.model.adapters.azure.base.AzureAdaptersTestUtils) StorageDescriptionService(com.vmware.photon.controller.model.resources.StorageDescriptionService) UriUtils(com.vmware.xenon.common.UriUtils) ComputeService(com.vmware.photon.controller.model.resources.ComputeService) AzureTestUtil.initializeNicSpecs(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.initializeNicSpecs) AzureTestUtil.createDefaultResourceGroupState(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultResourceGroupState) ResourceGroupStateType(com.vmware.photon.controller.model.adapters.azure.constants.AzureConstants.ResourceGroupStateType) AzureTestUtil.getAzureVMCount(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.getAzureVMCount) ResourcePoolState(com.vmware.photon.controller.model.resources.ResourcePoolService.ResourcePoolState) AzureTestUtil.validateDiskInternalTag(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.validateDiskInternalTag) AzureResourceType.azure_net_interface(com.vmware.photon.controller.model.adapters.azure.constants.AzureConstants.AzureResourceType.azure_net_interface) SYSTEM(com.vmware.photon.controller.model.resources.TagService.TagState.TagOrigin.SYSTEM) ArrayList(java.util.ArrayList) SecurityGroupState(com.vmware.photon.controller.model.resources.SecurityGroupService.SecurityGroupState) ServiceUriPaths(com.vmware.xenon.services.common.ServiceUriPaths) LinkedHashMap(java.util.LinkedHashMap) TagState(com.vmware.photon.controller.model.resources.TagService.TagState) USER_DEFINED(com.vmware.photon.controller.model.resources.TagService.TagState.TagOrigin.USER_DEFINED) Query(com.vmware.xenon.services.common.QueryTask.Query) AzureTestUtil.assertDiskExist(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.assertDiskExist) VirtualMachineInner(com.microsoft.azure.management.compute.implementation.VirtualMachineInner) AzureTestUtil(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil) Before(org.junit.Before) ResourceState(com.vmware.photon.controller.model.resources.ResourceState) AzureTestUtil.assertResourceExists(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.assertResourceExists) QueryUtils(com.vmware.photon.controller.model.query.QueryUtils) SecurityGroupService(com.vmware.photon.controller.model.resources.SecurityGroupService) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) AzureTestUtil.updateAzureVirtualMachine(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.updateAzureVirtualMachine) QueryTop(com.vmware.photon.controller.model.query.QueryUtils.QueryTop) NetworkService(com.vmware.photon.controller.model.resources.NetworkService) ClusterUtil(com.vmware.photon.controller.model.util.ClusterUtil) PhotonModelConstants(com.vmware.photon.controller.model.constants.PhotonModelConstants) AzureTestUtil.createDefaultEndpointState(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultEndpointState) ApplicationTokenCredentials(com.microsoft.azure.credentials.ApplicationTokenCredentials) NetworkState(com.vmware.photon.controller.model.resources.NetworkService.NetworkState) Assert(org.junit.Assert) Assert.assertEquals(org.junit.Assert.assertEquals) DISCOVERED(com.vmware.photon.controller.model.resources.TagService.TagState.TagOrigin.DISCOVERED) ModelUtils.createSecurityGroup(com.vmware.photon.controller.model.ModelUtils.createSecurityGroup) PhotonModelUtils.createOriginTagQuery(com.vmware.photon.controller.model.resources.util.PhotonModelUtils.createOriginTagQuery) CoreMatchers(org.hamcrest.CoreMatchers) NicSpec(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.AzureNicSpecs.NicSpec) AuthCredentialsServiceState(com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState) ScheduledFuture(java.util.concurrent.ScheduledFuture) BaseModelTest(com.vmware.photon.controller.model.helpers.BaseModelTest) QueryTask(com.vmware.xenon.services.common.QueryTask) PhotonModelServices(com.vmware.photon.controller.model.PhotonModelServices) ServiceDocument(com.vmware.xenon.common.ServiceDocument) AzureTestUtil.getAzureVirtualMachine(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.getAzureVirtualMachine) AzureTestUtil.createDefaultResourcePool(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultResourcePool) ComputeType(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription.ComputeType) Assert.assertThat(org.junit.Assert.assertThat) AzureResourceType.azure_subnet(com.vmware.photon.controller.model.adapters.azure.constants.AzureConstants.AzureResourceType.azure_subnet) ResourceManagementClientImpl(com.microsoft.azure.management.resources.implementation.ResourceManagementClientImpl) AzureTestUtil.updateAzureVirtualNetwork(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.updateAzureVirtualNetwork) AzureTestUtil.runEnumeration(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.runEnumeration) After(org.junit.After) Assert.fail(org.junit.Assert.fail) URI(java.net.URI) TagsUtil.newTagState(com.vmware.photon.controller.model.adapters.util.TagsUtil.newTagState) EndpointState(com.vmware.photon.controller.model.resources.EndpointService.EndpointState) AzureTestUtil.randomString(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.randomString) AzureConstants(com.vmware.photon.controller.model.adapters.azure.constants.AzureConstants) ComputeDescription(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription) AZURE_SECURITY_GROUP_NAME(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.AZURE_SECURITY_GROUP_NAME) TestUtils(com.vmware.photon.controller.model.tasks.TestUtils) DiskState(com.vmware.photon.controller.model.resources.DiskService.DiskState) Collectors(java.util.stream.Collectors) QueryStrategy(com.vmware.photon.controller.model.query.QueryStrategy) ResourceGroupService(com.vmware.photon.controller.model.resources.ResourceGroupService) List(java.util.List) TAG_KEY_TYPE(com.vmware.photon.controller.model.constants.PhotonModelConstants.TAG_KEY_TYPE) PhotonModelUtils.waitToComplete(com.vmware.photon.controller.model.resources.util.PhotonModelUtils.waitToComplete) NetworkSecurityGroupInner(com.microsoft.azure.management.network.implementation.NetworkSecurityGroupInner) DiskService(com.vmware.photon.controller.model.resources.DiskService) QueryByPages(com.vmware.photon.controller.model.query.QueryUtils.QueryByPages) BeforeClass(org.junit.BeforeClass) ServiceHostManagementService(com.vmware.xenon.services.common.ServiceHostManagementService) HashMap(java.util.HashMap) ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState) AzureTestUtil.createDefaultVMResource(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultVMResource) Level(java.util.logging.Level) HashSet(java.util.HashSet) AzureTestUtil.createDefaultAuthCredentials(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultAuthCredentials) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) AzureTestUtil.getAzureVirtualNetwork(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.getAzureVirtualNetwork) SubStage(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState.SubStage) AzureNicSpecs(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.AzureNicSpecs) PhotonModelTaskServices(com.vmware.photon.controller.model.tasks.PhotonModelTaskServices) ComputeManagementClientImpl(com.microsoft.azure.management.compute.implementation.ComputeManagementClientImpl) Assert.assertNotNull(org.junit.Assert.assertNotNull) AzureResourceType.azure_vnet(com.vmware.photon.controller.model.adapters.azure.constants.AzureConstants.AzureResourceType.azure_vnet) Operation(com.vmware.xenon.common.Operation) AzureTestUtil.createDefaultDiskState(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.createDefaultDiskState) AzureTestUtil.getAzureSecurityGroup(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.getAzureSecurityGroup) ServiceStat(com.vmware.xenon.common.ServiceStats.ServiceStat) ProvisioningUtils.createServiceURI(com.vmware.photon.controller.model.tasks.ProvisioningUtils.createServiceURI) TimeUnit(java.util.concurrent.TimeUnit) PhotonModelAdaptersRegistryAdapters(com.vmware.photon.controller.model.adapters.registry.PhotonModelAdaptersRegistryAdapters) AzureTestUtil.generateName(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.generateName) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) TagState(com.vmware.photon.controller.model.resources.TagService.TagState) ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState) TagService(com.vmware.photon.controller.model.resources.TagService) ArrayList(java.util.ArrayList) AzureTestUtil.randomString(com.vmware.photon.controller.model.adapters.azure.instance.AzureTestUtil.randomString) ServiceDocumentQueryResult(com.vmware.xenon.common.ServiceDocumentQueryResult) Test(org.junit.Test) BaseModelTest(com.vmware.photon.controller.model.helpers.BaseModelTest)

Example 7 with ProvisionComputeTaskState

use of com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState in project photon-model by vmware.

the class AzureLifecycleOperationServiceTest method kickOffProvisionTask.

private void kickOffProvisionTask() throws Throwable {
    ProvisionComputeTaskState provisionTask = new ProvisionComputeTaskState();
    provisionTask.computeLink = this.vmState.documentSelfLink;
    provisionTask.isMockRequest = this.isMock;
    provisionTask.taskSubStage = ProvisionComputeTaskState.SubStage.CREATING_HOST;
    provisionTask = TestUtils.doPost(this.host, provisionTask, ProvisionComputeTaskState.class, UriUtils.buildUri(this.host, ProvisionComputeTaskService.FACTORY_LINK));
    this.host.waitForFinishedTask(ProvisionComputeTaskState.class, provisionTask.documentSelfLink);
}
Also used : ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState)

Example 8 with ProvisionComputeTaskState

use of com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState in project photon-model by vmware.

the class BaseVSphereAdapterTest method createProvisionTask.

protected ProvisionComputeTaskState createProvisionTask(ComputeState vm) throws Throwable {
    ProvisionComputeTaskState provisionTask = new ProvisionComputeTaskState();
    provisionTask.computeLink = vm.documentSelfLink;
    provisionTask.isMockRequest = isMock();
    provisionTask.taskSubStage = ProvisionComputeTaskState.SubStage.CREATING_HOST;
    ProvisionComputeTaskState outTask = TestUtils.doPost(this.host, provisionTask, ProvisionComputeTaskState.class, UriUtils.buildUri(this.host, ProvisionComputeTaskService.FACTORY_LINK));
    return outTask;
}
Also used : ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState)

Example 9 with ProvisionComputeTaskState

use of com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState in project photon-model by vmware.

the class AWSPowerServiceTest method test.

@Test
public void test() throws Throwable {
    EndpointState endpoint = configureEndpoint();
    assertNotNull(endpoint.resourcePoolLink);
    ComputeState computeHost = this.host.getServiceState(null, ComputeState.class, UriUtils.buildUri(this.host, endpoint.computeLink));
    assertNotNull(computeHost);
    ComputeDescription computeHostDesc = this.host.getServiceState(null, ComputeDescription.class, UriUtils.buildUri(this.host, endpoint.computeDescriptionLink));
    assertNotNull(computeHostDesc);
    assertNotNull("Power addpter must be configured", computeHostDesc.powerAdapterReference);
    boolean addNonExistingSecurityGroup = false;
    ComputeState cs = TestAWSSetupUtils.createAWSVMResource(this.host, computeHost, endpoint, getClass(), "trainingVM", zoneId, this.regionId, null, this.singleNicSpec, addNonExistingSecurityGroup, this.awsTestContext);
    this.computesToRemove.add(cs.documentSelfLink);
    assertEquals(PowerState.UNKNOWN, cs.powerState);
    ProvisionComputeTaskState state = new ProvisionComputeTaskState();
    state.computeLink = cs.documentSelfLink;
    state.isMockRequest = this.isMock;
    state.taskSubStage = ProvisionComputeTaskState.SubStage.CREATING_HOST;
    state = TestUtils.doPost(this.host, state, ProvisionComputeTaskState.class, UriUtils.buildUri(this.host, ProvisionComputeTaskService.FACTORY_LINK));
    this.host.waitForFinishedTask(ProvisionComputeTaskState.class, state.documentSelfLink);
    ComputeState compute = this.host.getServiceState(null, ComputeState.class, UriUtils.buildUri(this.host, cs.documentSelfLink));
    changePowerState(computeHostDesc, compute.documentSelfLink, PowerState.OFF);
    if (!this.isMock) {
        waitForInstancesToBeStopped(this.client, this.host, Arrays.asList(compute.id));
    }
    changePowerState(computeHostDesc, compute.documentSelfLink, PowerState.ON);
    if (!this.isMock) {
        final int errorRate = 0;
        waitForProvisioningToComplete(Arrays.asList(compute.id), this.host, this.client, errorRate);
    }
}
Also used : EndpointState(com.vmware.photon.controller.model.resources.EndpointService.EndpointState) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState) ComputeDescription(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription) Test(org.junit.Test)

Example 10 with ProvisionComputeTaskState

use of com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState in project photon-model by vmware.

the class AWSResetServiceTest method provisionSingleAWS.

private void provisionSingleAWS() throws Throwable {
    initResourcePoolAndComputeHost();
    // create a AWS VM compute resource
    boolean addNonExistingSecurityGroup = true;
    this.vmState = createAWSVMResource(this.host, this.computeHost, this.endpointState, this.getClass(), this.currentTestName.getMethodName() + "_vm1", zoneId, regionId, null, /* tagLinks */
    this.singleNicSpec, addNonExistingSecurityGroup, this.awsTestContext);
    // kick off a provision task to do the actual VM creation
    ProvisionComputeTaskState provisionTask = new ProvisionComputeTaskService.ProvisionComputeTaskState();
    provisionTask.computeLink = this.vmState.documentSelfLink;
    provisionTask.isMockRequest = this.isMock;
    provisionTask.taskSubStage = ProvisionComputeTaskState.SubStage.CREATING_HOST;
    // Wait for default request timeout in minutes for the machine to be powered ON before
    // reporting failure to the parent task.
    provisionTask.documentExpirationTimeMicros = Utils.getNowMicrosUtc() + TimeUnit.MINUTES.toMicros(AWS_VM_REQUEST_TIMEOUT_MINUTES);
    provisionTask.tenantLinks = this.endpointState.tenantLinks;
    provisionTask = TestUtils.doPost(this.host, provisionTask, ProvisionComputeTaskState.class, UriUtils.buildUri(this.host, ProvisionComputeTaskService.FACTORY_LINK));
    this.host.waitForFinishedTask(ProvisionComputeTaskState.class, provisionTask.documentSelfLink);
}
Also used : ProvisionComputeTaskState(com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState)

Aggregations

ProvisionComputeTaskState (com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService.ProvisionComputeTaskState)17 ComputeState (com.vmware.photon.controller.model.resources.ComputeService.ComputeState)10 ComputeDescription (com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription)7 Test (org.junit.Test)7 EndpointState (com.vmware.photon.controller.model.resources.EndpointService.EndpointState)5 Operation (com.vmware.xenon.common.Operation)5 ProvisionComputeTaskService (com.vmware.photon.controller.model.tasks.ProvisionComputeTaskService)4 PhotonModelServices (com.vmware.photon.controller.model.PhotonModelServices)3 PhotonModelAdaptersRegistryAdapters (com.vmware.photon.controller.model.adapters.registry.PhotonModelAdaptersRegistryAdapters)3 PhotonModelConstants (com.vmware.photon.controller.model.constants.PhotonModelConstants)3 ComputeService (com.vmware.photon.controller.model.resources.ComputeService)3 DiskService (com.vmware.photon.controller.model.resources.DiskService)3 DiskState (com.vmware.photon.controller.model.resources.DiskService.DiskState)3 NetworkInterfaceState (com.vmware.photon.controller.model.resources.NetworkInterfaceService.NetworkInterfaceState)3 ResourcePoolState (com.vmware.photon.controller.model.resources.ResourcePoolService.ResourcePoolState)3 TagService (com.vmware.photon.controller.model.resources.TagService)3 TagState (com.vmware.photon.controller.model.resources.TagService.TagState)3 PhotonModelTaskServices (com.vmware.photon.controller.model.tasks.PhotonModelTaskServices)3 ProvisioningUtils (com.vmware.photon.controller.model.tasks.ProvisioningUtils)3 TestUtils (com.vmware.photon.controller.model.tasks.TestUtils)3