Search in sources :

Example 1 with ResourceId

use of bio.terra.buffer.common.ResourceId in project terra-resource-buffer by DataBiosphere.

the class CreateProjectFlightIntegrationTest method testCreateGoogleProject_createsConsumerOverride.

@Test
public void testCreateGoogleProject_createsConsumerOverride() throws Exception {
    FlightManager manager = new FlightManager(bufferDao, new StubSubmissionFlightFactory(LatchBeforeAssertResourceStep.class), stairwayComponent, transactionTemplate);
    GcpProjectConfig gcpProjectConfig = newBasicGcpConfig().serviceUsage(new ServiceUsage().bigQuery(new BigQueryQuotas().overrideBigQueryDailyUsageQuota(true).bigQueryDailyUsageQuotaOverrideValueMebibytes(new BigDecimal(CONSUMER_QUOTA_OVERRIDE_VALUE_MEBIBYTES))));
    Pool pool = preparePool(bufferDao, gcpProjectConfig);
    String flightId = manager.submitCreationFlight(pool).orElseThrow();
    ResourceId resourceId = extractResourceIdFromFlightState(blockUntilFlightComplete(stairwayComponent, flightId));
    Project project = assertProjectExists(resourceId);
    String projectNumber = getProjectNumberFromName(project.getName());
    String parent = String.format("projects/%s/services/bigquery.googleapis.com/consumerQuotaMetrics/" + "bigquery.googleapis.com%%2Fquota%%2Fquery%%2Fusage/limits/%%2Fd%%2Fproject", projectNumber);
    ServiceUsageCow.Services.ConsumerQuotaMetrics.Limits.ConsumerOverrides.List list = serviceUsageCow.services().consumerQuotaMetrics().limits().consumerOverrides().list(parent);
    ListConsumerOverridesResponse response = list.execute();
    assertEquals(1, response.getOverrides().size(), "single override expected");
    QuotaOverride quotaOverride = response.getOverrides().get(0);
    assertEquals(CONSUMER_QUOTA_OVERRIDE_VALUE_MEBIBYTES, quotaOverride.getOverrideValue());
}
Also used : ListConsumerOverridesResponse(com.google.api.services.serviceusage.v1beta1.model.ListConsumerOverridesResponse) FlightManager(bio.terra.buffer.service.resource.FlightManager) StubSubmissionFlightFactory(bio.terra.buffer.integration.IntegrationUtils.StubSubmissionFlightFactory) BigDecimal(java.math.BigDecimal) Project(com.google.api.services.cloudresourcemanager.v3.model.Project) QuotaOverride(com.google.api.services.serviceusage.v1beta1.model.QuotaOverride) ResourceId(bio.terra.buffer.common.ResourceId) Pool(bio.terra.buffer.common.Pool) IntegrationUtils.preparePool(bio.terra.buffer.integration.IntegrationUtils.preparePool) ServiceUsageCow(bio.terra.cloudres.google.serviceusage.ServiceUsageCow) Test(org.junit.jupiter.api.Test) BaseIntegrationTest(bio.terra.buffer.common.BaseIntegrationTest)

Example 2 with ResourceId

use of bio.terra.buffer.common.ResourceId in project terra-resource-buffer by DataBiosphere.

the class CreateProjectFlightIntegrationTest method testCreateGoogleProject_keepDefaultNetwork.

@Disabled("In Broad deployment, skipDefaultNetworkCreation is turned on orignization policy")
@Test
public void testCreateGoogleProject_keepDefaultNetwork() throws Exception {
    FlightManager manager = new FlightManager(bufferDao, flightSubmissionFactoryImpl, stairwayComponent, transactionTemplate);
    Pool pool = preparePool(bufferDao, newBasicGcpConfig().network(new bio.terra.buffer.generated.model.Network().keepDefaultNetwork(true)));
    String flightId = manager.submitCreationFlight(pool).get();
    ResourceId resourceId = extractResourceIdFromFlightState(blockUntilFlightComplete(stairwayComponent, flightId));
    Project project = assertProjectExists(resourceId);
    assertNetworkExists(project);
    assertFirewallRulesExist(project);
    assertDefaultVpcExists(project);
    assertFirewallRulesExistForDefaultVpc(project);
}
Also used : Project(com.google.api.services.cloudresourcemanager.v3.model.Project) ResourceId(bio.terra.buffer.common.ResourceId) Pool(bio.terra.buffer.common.Pool) IntegrationUtils.preparePool(bio.terra.buffer.integration.IntegrationUtils.preparePool) bio.terra.buffer.generated.model(bio.terra.buffer.generated.model) FlightManager(bio.terra.buffer.service.resource.FlightManager) Test(org.junit.jupiter.api.Test) BaseIntegrationTest(bio.terra.buffer.common.BaseIntegrationTest) Disabled(org.junit.jupiter.api.Disabled)

Example 3 with ResourceId

use of bio.terra.buffer.common.ResourceId in project terra-resource-buffer by DataBiosphere.

the class CreateProjectFlightIntegrationTest method testCreateGoogleProject_blockedRegions_invalidBlockedRegion.

@Test
public void testCreateGoogleProject_blockedRegions_invalidBlockedRegion() throws Exception {
    // If a blocked region is invalid, project configuration still succeeds.
    String validBlockedRegion = "europe-west2";
    String invalidBlockedRegion = "u-west4";
    List<String> blockedRegions = ImmutableList.of(validBlockedRegion, invalidBlockedRegion);
    FlightManager manager = new FlightManager(bufferDao, flightSubmissionFactoryImpl, stairwayComponent, transactionTemplate);
    Pool pool = preparePool(bufferDao, newBasicGcpConfig().network(new bio.terra.buffer.generated.model.Network().blockedRegions(blockedRegions)));
    String flightId = manager.submitCreationFlight(pool).get();
    ResourceId resourceId = extractResourceIdFromFlightState(blockUntilFlightComplete(stairwayComponent, flightId));
    Project project = assertProjectExists(resourceId);
    assertNoSubnetsInBlockedRegions(project, ImmutableList.of(validBlockedRegion));
}
Also used : Project(com.google.api.services.cloudresourcemanager.v3.model.Project) ResourceId(bio.terra.buffer.common.ResourceId) Pool(bio.terra.buffer.common.Pool) IntegrationUtils.preparePool(bio.terra.buffer.integration.IntegrationUtils.preparePool) bio.terra.buffer.generated.model(bio.terra.buffer.generated.model) FlightManager(bio.terra.buffer.service.resource.FlightManager) Test(org.junit.jupiter.api.Test) BaseIntegrationTest(bio.terra.buffer.common.BaseIntegrationTest)

Example 4 with ResourceId

use of bio.terra.buffer.common.ResourceId in project terra-resource-buffer by DataBiosphere.

the class DeleteProjectFlightIntegrationTest method testDeleteGoogleProject_fatalIfHasError.

@Test
public void testDeleteGoogleProject_fatalIfHasError() throws Exception {
    FlightManager manager = new FlightManager(bufferDao, flightSubmissionFactoryImpl, stairwayComponent, transactionTemplate);
    Pool pool = preparePool(bufferDao, newBasicGcpConfig());
    String createFlightId = manager.submitCreationFlight(pool).get();
    ResourceId resourceId = extractResourceIdFromFlightState(blockUntilFlightComplete(stairwayComponent, createFlightId));
    Resource resource = bufferDao.retrieveResource(resourceId).get();
    // An errors occurs after resource deleted. Expect project is deleted, but we resource state is
    // READY.
    FlightManager errorManager = new FlightManager(bufferDao, new StubSubmissionFlightFactory(ErrorAfterDeleteResourceFlight.class), stairwayComponent, transactionTemplate);
    String deleteFlightId = errorManager.submitDeletionFlight(resource, ResourceType.GOOGLE_PROJECT).get();
    blockUntilFlightComplete(stairwayComponent, deleteFlightId);
    assertEquals(FlightStatus.FATAL, stairwayComponent.get().getFlightState(deleteFlightId).getFlightStatus());
}
Also used : ResourceId(bio.terra.buffer.common.ResourceId) Resource(bio.terra.buffer.common.Resource) IntegrationUtils.preparePool(bio.terra.buffer.integration.IntegrationUtils.preparePool) Pool(bio.terra.buffer.common.Pool) FlightManager(bio.terra.buffer.service.resource.FlightManager) StubSubmissionFlightFactory(bio.terra.buffer.integration.IntegrationUtils.StubSubmissionFlightFactory) BaseIntegrationTest(bio.terra.buffer.common.BaseIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 5 with ResourceId

use of bio.terra.buffer.common.ResourceId in project terra-resource-buffer by DataBiosphere.

the class DeleteProjectFlightIntegrationTest method testDeleteGoogleProject_success.

@Test
public void testDeleteGoogleProject_success() throws Exception {
    FlightManager manager = new FlightManager(bufferDao, flightSubmissionFactoryImpl, stairwayComponent, transactionTemplate);
    Pool pool = preparePool(bufferDao, newFullGcpConfig());
    String createFlightId = manager.submitCreationFlight(pool).get();
    ResourceId resourceId = extractResourceIdFromFlightState(blockUntilFlightComplete(stairwayComponent, createFlightId));
    Project project = assertProjectExists(resourceId);
    Resource resource = bufferDao.retrieveResourcesRandomly(pool.id(), ResourceState.READY, 1).get(0);
    String deleteFlightId = manager.submitDeletionFlight(resource, ResourceType.GOOGLE_PROJECT).get();
    blockUntilFlightComplete(stairwayComponent, deleteFlightId);
    assertProjectDeleting(project.getProjectId());
}
Also used : Project(com.google.api.services.cloudresourcemanager.v3.model.Project) ResourceId(bio.terra.buffer.common.ResourceId) Resource(bio.terra.buffer.common.Resource) IntegrationUtils.preparePool(bio.terra.buffer.integration.IntegrationUtils.preparePool) Pool(bio.terra.buffer.common.Pool) FlightManager(bio.terra.buffer.service.resource.FlightManager) BaseIntegrationTest(bio.terra.buffer.common.BaseIntegrationTest) Test(org.junit.jupiter.api.Test)

Aggregations

ResourceId (bio.terra.buffer.common.ResourceId)18 Pool (bio.terra.buffer.common.Pool)16 BaseIntegrationTest (bio.terra.buffer.common.BaseIntegrationTest)15 IntegrationUtils.preparePool (bio.terra.buffer.integration.IntegrationUtils.preparePool)15 FlightManager (bio.terra.buffer.service.resource.FlightManager)15 Test (org.junit.jupiter.api.Test)15 Project (com.google.api.services.cloudresourcemanager.v3.model.Project)13 StubSubmissionFlightFactory (bio.terra.buffer.integration.IntegrationUtils.StubSubmissionFlightFactory)4 Resource (bio.terra.buffer.common.Resource)3 bio.terra.buffer.generated.model (bio.terra.buffer.generated.model)3 Network (com.google.api.services.compute.model.Network)2 ResourceConfig (bio.terra.buffer.generated.model.ResourceConfig)1 ServiceUsageCow (bio.terra.cloudres.google.serviceusage.ServiceUsageCow)1 ListConsumerOverridesResponse (com.google.api.services.serviceusage.v1beta1.model.ListConsumerOverridesResponse)1 QuotaOverride (com.google.api.services.serviceusage.v1beta1.model.QuotaOverride)1 BigDecimal (java.math.BigDecimal)1 ArrayList (java.util.ArrayList)1 Disabled (org.junit.jupiter.api.Disabled)1