use of com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState in project photon-model by vmware.
the class TestAWSClientManagement method testAWSClientManagement.
@Test
public void testAWSClientManagement() throws Throwable {
this.ec2ClientReferenceCount = getClientReferenceCount(AwsClientType.EC2);
this.cloudWatchClientReferenceCount = getClientReferenceCount(AwsClientType.CLOUD_WATCH);
this.host.setTimeoutSeconds(60);
// Getting a reference to client managers in the test
AWSClientManager ec2ClientManager = getClientManager(AwsClientType.EC2);
ec2ClientManager.cleanUpArnCache();
@SuppressWarnings("unused") AWSClientManager cloudWatchClientManager = getClientManager(AwsClientType.CLOUD_WATCH);
cloudWatchClientManager.cleanUpArnCache();
assertEquals(this.ec2ClientReferenceCount + 1, getClientReferenceCount(AwsClientType.EC2));
assertEquals(this.cloudWatchClientReferenceCount + 1, getClientReferenceCount(AwsClientType.CLOUD_WATCH));
// Getting an AWSclient from the client manager
this.creds = new AuthCredentialsServiceState();
this.creds.privateKey = this.accessKey;
this.creds.privateKeyId = this.secretKey;
TestContext waitContext = new TestContext(1, Duration.ofSeconds(30L));
ec2ClientManager.getOrCreateEC2ClientAsync(this.creds, TestAWSSetupUtils.regionId, this.instanceService).exceptionally(t -> {
waitContext.fail(t);
throw new CompletionException(t);
}).thenAccept(ec2Client -> {
this.client = ec2Client;
waitContext.complete();
});
waitContext.await();
this.clientCacheCount = ec2ClientManager.getCacheCount();
// Requesting another AWS client with the same set of credentials will not
// create a new entry in the cache
TestContext nextContext = new TestContext(1, Duration.ofSeconds(30L));
ec2ClientManager.getOrCreateEC2ClientAsync(this.creds, TestAWSSetupUtils.regionId, this.instanceService).exceptionally(t -> {
nextContext.fail(t);
throw new CompletionException(t);
}).thenAccept(ec2Client -> {
this.client = ec2Client;
nextContext.complete();
});
nextContext.await();
assertEquals(this.clientCacheCount, ec2ClientManager.getCacheCount());
// Emulating shutdown of individual services to check that the client resources are
// cleaned up as expected.
this.host.sendAndWaitExpectSuccess(Operation.createDelete(UriUtils.buildUri(this.host, AWSInstanceService.SELF_LINK)));
assertEquals(this.ec2ClientReferenceCount, getClientReferenceCount(AwsClientType.EC2));
this.host.sendAndWaitExpectSuccess(Operation.createDelete(UriUtils.buildUri(this.host, AWSStatsService.SELF_LINK)));
assertEquals(this.cloudWatchClientReferenceCount, getClientReferenceCount(AwsClientType.CLOUD_WATCH));
// Returning the references from the test
returnClientManager(ec2ClientManager, AwsClientType.EC2);
assertEquals(this.ec2ClientReferenceCount - 1, getClientReferenceCount(AwsClientType.EC2));
}
use of com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState in project photon-model by vmware.
the class LongRunEndToEndStatsCollectionTest method initResourcePoolAndComputeHost.
/**
* Creates the state associated with the resource pool, compute host and the VM to be created.
*
* @throws Throwable
*/
private void initResourcePoolAndComputeHost() throws Throwable {
// Create a resource pool where the VM will be housed
ResourcePoolState resourcePool = createAWSResourcePool(this.host);
AuthCredentialsServiceState auth = createAWSAuthentication(this.host, this.accessKey, this.secretKey);
this.endpointState = TestAWSSetupUtils.createAWSEndpointState(this.host, auth.documentSelfLink, resourcePool.documentSelfLink);
// create a compute host for the AWS EC2 VM
this.computeHost = createAWSComputeHost(this.host, this.endpointState, null, /*zoneId*/
this.useAllRegions ? null : regionId, this.isAwsClientMock, this.awsMockEndpointReference, null);
}
use of com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState in project photon-model by vmware.
the class LongRunEndToEndStatsCollectionTest 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;
this.client = AWSUtils.getAsyncClient(creds, null, getExecutor());
try {
PhotonModelServices.startServices(this.host);
PhotonModelMetricServices.startServices(this.host);
PhotonModelTaskServices.startServices(this.host);
PhotonModelInMemoryServices.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);
this.host.waitForServiceAvailable(PhotonModelInMemoryServices.LINKS);
} catch (Throwable e) {
this.host.log("Error starting up services for the test %s", e.getMessage());
throw new Exception(e);
}
this.nodeStatsUri = UriUtils.buildUri(this.host.getUri(), ServiceUriPaths.CORE_MANAGEMENT);
this.maxMemoryInMb = this.host.getState().systemInfo.maxMemoryByteCount / BYTES_TO_MB;
// create the compute host, resource pool and the VM state to be used in the test.
initResourcePoolAndComputeHost();
}
use of com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState in project photon-model by vmware.
the class TestAWSEnumerationDocumentCountInLongRun method initResourcePoolAndComputeHostTwo.
private void initResourcePoolAndComputeHostTwo() throws Throwable {
AuthCredentialsServiceState auth = createAWSAuthentication(this.host, this.accessKey, this.secretKey);
this.endpointStateTwo = TestAWSSetupUtils.createAWSEndpointStateUsingAllocationTask(this.host, auth.documentSelfLink, this.resourcePool.documentSelfLink, this.accessKey, this.secretKey, "endpoint-two");
this.computeHostTwo = this.computeHost;
}
use of com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState in project photon-model by vmware.
the class TestAWSEnumerationDocumentCountInLongRun method initResourcePoolAndComputeHost.
/**
* Creates the state associated with the resource pool, compute host and the VM to be created.
*
* @throws Throwable
*/
private void initResourcePoolAndComputeHost() throws Throwable {
// Create a resource pool where the VM will be housed
this.resourcePool = createAWSResourcePool(this.host);
AuthCredentialsServiceState auth = createAWSAuthentication(this.host, this.accessKey, this.secretKey);
if (this.isMock) {
this.endpointState = TestAWSSetupUtils.createAWSEndpointState(this.host, auth.documentSelfLink, this.resourcePool.documentSelfLink);
} else {
this.endpointState = TestAWSSetupUtils.createAWSEndpointStateUsingAllocationTask(this.host, auth.documentSelfLink, this.resourcePool.documentSelfLink, this.accessKey, this.secretKey, "endpoint-one");
}
// create a compute host for the AWS EC2 VM
this.computeHost = createAWSComputeHost(this.host, this.endpointState, null, /*zoneId*/
this.useAllRegions ? null : regionId, this.isAwsClientMock, this.awsMockEndpointReference, null);
}
Aggregations