Search in sources :

Example 1 with AwsNicSpecs

use of com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.AwsNicSpecs in project photon-model by vmware.

the class TestAWSEnumerationTask method setUp.

@Before
public void setUp() throws Throwable {
    CommandLineArgumentParser.parseFromProperties(this);
    setAwsClientMockInfo(this.isAwsClientMock, this.awsMockEndpointReference);
    // create credentials
    AuthCredentialsServiceState creds = new AuthCredentialsServiceState();
    creds.privateKey = this.secretKey;
    creds.privateKeyId = this.accessKey;
    TestContext ec2WaitContext = new TestContext(1, Duration.ofSeconds(30L));
    AWSUtils.getEc2AsyncClient(creds, TestAWSSetupUtils.regionId, getExecutor()).exceptionally(t -> {
        ec2WaitContext.fail(t);
        throw new CompletionException(t);
    }).thenAccept(ec2Client -> {
        this.client = ec2Client;
        ec2WaitContext.complete();
    });
    ec2WaitContext.await();
    TestContext s3WaitContext = new TestContext(1, Duration.ofSeconds(30L));
    AWSUtils.getS3ClientAsync(creds, TestAWSSetupUtils.regionId, getExecutor()).exceptionally(t -> {
        s3WaitContext.fail(t);
        throw new CompletionException(t);
    }).thenAccept(ec2Client -> {
        this.s3Client = ec2Client;
        s3WaitContext.complete();
    });
    s3WaitContext.await();
    if (ENABLE_LOAD_BALANCER_ENUMERATION) {
        TestContext lbWaitContext = new TestContext(1, Duration.ofSeconds(30L));
        AWSUtils.getAwsLoadBalancingAsyncClient(creds, TestAWSSetupUtils.regionId, getExecutor()).exceptionally(t -> {
            lbWaitContext.fail(t);
            throw new CompletionException(t);
        }).thenAccept(ec2Client -> {
            this.lbClient = ec2Client;
            lbWaitContext.complete();
        });
        lbWaitContext.await();
    }
    this.awsTestContext = new HashMap<>();
    setUpTestVpc(this.client, this.awsTestContext, this.isMock);
    this.vpcId = (String) this.awsTestContext.get(TestAWSSetupUtils.VPC_KEY);
    this.subnetId = (String) this.awsTestContext.get(TestAWSSetupUtils.SUBNET_KEY);
    this.securityGroupId = (String) this.awsTestContext.get(TestAWSSetupUtils.SECURITY_GROUP_KEY);
    this.singleNicSpec = (AwsNicSpecs) this.awsTestContext.get(TestAWSSetupUtils.NIC_SPECS_KEY);
    try {
        PhotonModelServices.startServices(this.host);
        PhotonModelMetricServices.startServices(this.host);
        PhotonModelTaskServices.startServices(this.host);
        PhotonModelAdaptersRegistryAdapters.startServices(this.host);
        AWSAdaptersTestUtils.startServicesSynchronously(this.host);
        this.host.setTimeoutSeconds(this.timeoutSeconds);
        this.host.waitForServiceAvailable(PhotonModelServices.LINKS);
        this.host.waitForServiceAvailable(PhotonModelTaskServices.LINKS);
    } catch (Throwable e) {
        this.host.log("Error starting up services for the test %s", e.getMessage());
        throw new Exception(e);
    }
    // create the compute host, resource pool and the VM state to be used in the test.
    initResourcePoolAndComputeHost();
}
Also used : Arrays(java.util.Arrays) DetachVolumeRequest(com.amazonaws.services.ec2.model.DetachVolumeRequest) AWSResourceType.ec2_vpc(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWSResourceType.ec2_vpc) TestAWSSetupUtils.createAWSComputeHost(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createAWSComputeHost) AttachVolumeRequest(com.amazonaws.services.ec2.model.AttachVolumeRequest) ServiceTypeCluster(com.vmware.photon.controller.model.util.ClusterUtil.ServiceTypeCluster) VerificationHost(com.vmware.xenon.common.test.VerificationHost) LifecycleState(com.vmware.photon.controller.model.resources.ComputeService.LifecycleState) TestAWSSetupUtils.createAWSEndpointState(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createAWSEndpointState) TestAWSSetupUtils.createAWSResourcePool(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createAWSResourcePool) TestAWSSetupUtils.provisionAWSVMWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.provisionAWSVMWithEC2Client) TestAWSSetupUtils.tearDownTestVpc(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.tearDownTestVpc) TagSet(com.amazonaws.services.s3.model.TagSet) TestAWSSetupUtils.provisionAWSLoadBalancerWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.provisionAWSLoadBalancerWithEC2Client) Utils(com.vmware.xenon.common.Utils) BlockDeviceMapping(com.amazonaws.services.ec2.model.BlockDeviceMapping) LoadBalancerState(com.vmware.photon.controller.model.resources.LoadBalancerService.LoadBalancerState) SubnetState(com.vmware.photon.controller.model.resources.SubnetService.SubnetState) Duration(java.time.Duration) Map(java.util.Map) TestUtils.getExecutor(com.vmware.photon.controller.model.adapters.awsadapter.TestUtils.getExecutor) ProvisioningUtils.queryDocumentsAndAssertExpectedCount(com.vmware.photon.controller.model.tasks.ProvisioningUtils.queryDocumentsAndAssertExpectedCount) ServiceDocumentQueryResult(com.vmware.xenon.common.ServiceDocumentQueryResult) TestAWSSetupUtils.enumerateResources(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.enumerateResources) TestAWSSetupUtils.tearDownTestDisk(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.tearDownTestDisk) TestAWSSetupUtils.waitForInstancesToBeTerminated(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.waitForInstancesToBeTerminated) 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) AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client) NetworkInterfaceService(com.vmware.photon.controller.model.resources.NetworkInterfaceService) TagService(com.vmware.photon.controller.model.resources.TagService) Assert.assertFalse(org.junit.Assert.assertFalse) Tag(com.amazonaws.services.ec2.model.Tag) UriUtils(com.vmware.xenon.common.UriUtils) ComputeService(com.vmware.photon.controller.model.resources.ComputeService) TestAWSSetupUtils.enumerateResourcesPreserveMissing(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.enumerateResourcesPreserveMissing) TestAWSSetupUtils.getComputeByAWSId(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.getComputeByAWSId) TestUtils.doPatch(com.vmware.photon.controller.model.tasks.TestUtils.doPatch) PhotonModelMetricServices(com.vmware.photon.controller.model.PhotonModelMetricServices) ResourcePoolState(com.vmware.photon.controller.model.resources.ResourcePoolService.ResourcePoolState) ComputeDescriptionService(com.vmware.photon.controller.model.resources.ComputeDescriptionService) StringUtil(io.netty.util.internal.StringUtil) TagsUtil(com.vmware.photon.controller.model.adapters.util.TagsUtil) TestAWSSetupUtils.getNICByAWSId(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.getNICByAWSId) ArrayList(java.util.ArrayList) Regions(com.amazonaws.regions.Regions) SecurityGroupState(com.vmware.photon.controller.model.resources.SecurityGroupService.SecurityGroupState) ServiceUriPaths(com.vmware.xenon.services.common.ServiceUriPaths) AWSUtils.unTagResources(com.vmware.photon.controller.model.adapters.awsadapter.AWSUtils.unTagResources) TagState(com.vmware.photon.controller.model.resources.TagService.TagState) Query(com.vmware.xenon.services.common.QueryTask.Query) UriPaths(com.vmware.photon.controller.model.UriPaths) TestName(org.junit.rules.TestName) TestAWSSetupUtils.getLoadBalancerByAWSId(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.getLoadBalancerByAWSId) Before(org.junit.Before) TestAWSSetupUtils.stopVMsUsingEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.stopVMsUsingEC2Client) TestAWSSetupUtils.createAWSAuthentication(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createAWSAuthentication) ResourceState(com.vmware.photon.controller.model.resources.ResourceState) TestAWSSetupUtils.createNICDirectlyWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createNICDirectlyWithEC2Client) 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) AWS_VPC_ID(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWS_VPC_ID) EC2_WINDOWS_AMI(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.EC2_WINDOWS_AMI) NetworkService(com.vmware.photon.controller.model.resources.NetworkService) TestContext(com.vmware.xenon.common.test.TestContext) AWSUtils.tagResourcesWithName(com.vmware.photon.controller.model.adapters.awsadapter.AWSUtils.tagResourcesWithName) CUSTOM_OS_TYPE(com.vmware.photon.controller.model.ComputeProperties.CUSTOM_OS_TYPE) PhotonModelConstants(com.vmware.photon.controller.model.constants.PhotonModelConstants) ProvisioningUtils.queryComputeInstances(com.vmware.photon.controller.model.tasks.ProvisioningUtils.queryComputeInstances) TestAWSSetupUtils.setAwsClientMockInfo(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.setAwsClientMockInfo) RegionEnumerationResponse(com.vmware.photon.controller.model.adapterapi.RegionEnumerationResponse) NetworkState(com.vmware.photon.controller.model.resources.NetworkService.NetworkState) VolumeType(com.amazonaws.services.ec2.model.VolumeType) Assert.assertEquals(org.junit.Assert.assertEquals) AmazonEC2AsyncClient(com.amazonaws.services.ec2.AmazonEC2AsyncClient) AuthCredentialsServiceState(com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState) EC2_LINUX_AMI(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.EC2_LINUX_AMI) TestAWSSetupUtils.deleteVMsUsingEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.deleteVMsUsingEC2Client) BucketTaggingConfiguration(com.amazonaws.services.s3.model.BucketTaggingConfiguration) AWSResourceType(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWSResourceType) QueryTask(com.vmware.xenon.services.common.QueryTask) PhotonModelServices(com.vmware.photon.controller.model.PhotonModelServices) OSType(com.vmware.photon.controller.model.ComputeProperties.OSType) TestAWSSetupUtils.setUpTestVpc(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.setUpTestVpc) ComputeType(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription.ComputeType) CommandLineArgumentParser(com.vmware.xenon.common.CommandLineArgumentParser) CreateVolumeRequest(com.amazonaws.services.ec2.model.CreateVolumeRequest) After(org.junit.After) AWSResourceType.ec2_subnet(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWSResourceType.ec2_subnet) Assert.fail(org.junit.Assert.fail) URI(java.net.URI) TestAWSSetupUtils.getInternalTagsByType(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.getInternalTagsByType) TagsUtil.newTagState(com.vmware.photon.controller.model.adapters.util.TagsUtil.newTagState) TestAWSSetupUtils.provisionAWSEBSVMWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.provisionAWSEBSVMWithEC2Client) AwsNicSpecs(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.AwsNicSpecs) EndpointState(com.vmware.photon.controller.model.resources.EndpointService.EndpointState) TestAWSSetupUtils.waitForProvisioningToComplete(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.waitForProvisioningToComplete) ComputeDescription(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription) DiskState(com.vmware.photon.controller.model.resources.DiskService.DiskState) CompletionException(java.util.concurrent.CompletionException) TestAWSSetupUtils.deleteLBsUsingLBClient(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.deleteLBsUsingLBClient) UUID(java.util.UUID) TestUtils.getSubnetStates(com.vmware.photon.controller.model.adapters.awsadapter.TestUtils.getSubnetStates) Collectors(java.util.stream.Collectors) ServiceHost(com.vmware.xenon.common.ServiceHost) AWS_GATEWAY_ID(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWS_GATEWAY_ID) TestAWSSetupUtils.deleteNICDirectlyWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.deleteNICDirectlyWithEC2Client) AmazonElasticLoadBalancingAsyncClient(com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingAsyncClient) List(java.util.List) EbsBlockDevice(com.amazonaws.services.ec2.model.EbsBlockDevice) TestAWSSetupUtils.setUpTestVolume(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.setUpTestVolume) TAG_KEY_TYPE(com.vmware.photon.controller.model.constants.PhotonModelConstants.TAG_KEY_TYPE) Entry(java.util.Map.Entry) QueryOption(com.vmware.xenon.services.common.QueryTask.QuerySpecification.QueryOption) DiskService(com.vmware.photon.controller.model.resources.DiskService) TestAWSSetupUtils.addNICDirectlyWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.addNICDirectlyWithEC2Client) TestAWSSetupUtils.deleteVMsOnThisEndpoint(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.deleteVMsOnThisEndpoint) AWSResourceType.ec2_instance(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWSResourceType.ec2_instance) BasicTestCase(com.vmware.xenon.common.BasicTestCase) RouteConfiguration(com.vmware.photon.controller.model.resources.LoadBalancerDescriptionService.LoadBalancerDescription.RouteConfiguration) HashMap(java.util.HashMap) AWSUtils.tagResources(com.vmware.photon.controller.model.adapters.awsadapter.AWSUtils.tagResources) TestAWSSetupUtils.zoneId(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.zoneId) TestAWSSetupUtils.detachNICDirectlyWithEC2Client(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.detachNICDirectlyWithEC2Client) AWSConstants.setQueryPageSize(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.setQueryPageSize) Level(java.util.logging.Level) CreateVolumeResult(com.amazonaws.services.ec2.model.CreateVolumeResult) AWSResourceType.ec2_net_interface(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWSResourceType.ec2_net_interface) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) AWS_VPC_ROUTE_TABLE_ID(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.AWS_VPC_ROUTE_TABLE_ID) PhotonModelTaskServices(com.vmware.photon.controller.model.tasks.PhotonModelTaskServices) ENABLE_LOAD_BALANCER_PROPERTY(com.vmware.photon.controller.model.adapters.awsadapter.enumeration.AWSLoadBalancerEnumerationAdapterService.ENABLE_LOAD_BALANCER_PROPERTY) Assert.assertNotNull(org.junit.Assert.assertNotNull) Operation(com.vmware.xenon.common.Operation) AWSConstants.setQueryResultLimit(com.vmware.photon.controller.model.adapters.awsadapter.AWSConstants.setQueryResultLimit) ProvisioningUtils.queryAllFactoryResources(com.vmware.photon.controller.model.tasks.ProvisioningUtils.queryAllFactoryResources) TestAWSSetupUtils.instanceType(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.instanceType) TestAWSSetupUtils.createAWSVMResource(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.createAWSVMResource) Rule(org.junit.Rule) PhotonModelAdaptersRegistryAdapters(com.vmware.photon.controller.model.adapters.registry.PhotonModelAdaptersRegistryAdapters) DeleteVolumeRequest(com.amazonaws.services.ec2.model.DeleteVolumeRequest) TestAWSSetupUtils.regionId(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.regionId) TestAWSSetupUtils.provisionMachine(com.vmware.photon.controller.model.adapters.awsadapter.TestAWSSetupUtils.provisionMachine) Collections(java.util.Collections) AuthCredentialsServiceState(com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState) TestContext(com.vmware.xenon.common.test.TestContext) CompletionException(java.util.concurrent.CompletionException) CompletionException(java.util.concurrent.CompletionException) Before(org.junit.Before)

Aggregations

Regions (com.amazonaws.regions.Regions)1 AmazonEC2AsyncClient (com.amazonaws.services.ec2.AmazonEC2AsyncClient)1 AttachVolumeRequest (com.amazonaws.services.ec2.model.AttachVolumeRequest)1 BlockDeviceMapping (com.amazonaws.services.ec2.model.BlockDeviceMapping)1 CreateVolumeRequest (com.amazonaws.services.ec2.model.CreateVolumeRequest)1 CreateVolumeResult (com.amazonaws.services.ec2.model.CreateVolumeResult)1 DeleteVolumeRequest (com.amazonaws.services.ec2.model.DeleteVolumeRequest)1 DetachVolumeRequest (com.amazonaws.services.ec2.model.DetachVolumeRequest)1 EbsBlockDevice (com.amazonaws.services.ec2.model.EbsBlockDevice)1 Tag (com.amazonaws.services.ec2.model.Tag)1 VolumeType (com.amazonaws.services.ec2.model.VolumeType)1 AmazonElasticLoadBalancingAsyncClient (com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingAsyncClient)1 AmazonS3Client (com.amazonaws.services.s3.AmazonS3Client)1 BucketTaggingConfiguration (com.amazonaws.services.s3.model.BucketTaggingConfiguration)1 TagSet (com.amazonaws.services.s3.model.TagSet)1 CUSTOM_OS_TYPE (com.vmware.photon.controller.model.ComputeProperties.CUSTOM_OS_TYPE)1 OSType (com.vmware.photon.controller.model.ComputeProperties.OSType)1 PhotonModelMetricServices (com.vmware.photon.controller.model.PhotonModelMetricServices)1 PhotonModelServices (com.vmware.photon.controller.model.PhotonModelServices)1 UriPaths (com.vmware.photon.controller.model.UriPaths)1