Search in sources :

Example 1 with TEST_SERVICE_NAME

use of com.aws.greengrass.integrationtests.ipc.IPCTestUtils.TEST_SERVICE_NAME in project aws-greengrass-cli by aws-greengrass.

the class IPCCliTest method GIVEN_kernel_running_WHEN_create_deployment_after_recipe_update_THEN_kernel_runs_latest_recipe.

@Test
@Order(7)
void GIVEN_kernel_running_WHEN_create_deployment_after_recipe_update_THEN_kernel_runs_latest_recipe(ExtensionContext context) throws Exception {
    // updated recipes
    Path recipesPath = Paths.get(this.getClass().getResource("recipes").toURI());
    // Deployment to add a component
    CreateLocalDeploymentRequest createLocalDeploymentRequest = new CreateLocalDeploymentRequest();
    createLocalDeploymentRequest.setRootComponentVersionsToAdd(Collections.singletonMap(TEST_SERVICE_NAME, "1.0.1"));
    createLocalDeploymentRequest.setRecipeDirectoryPath(recipesPath.toAbsolutePath().toString());
    CountDownLatch serviceLatch = waitForServiceToComeInState(TEST_SERVICE_NAME, State.RUNNING, kernel);
    CreateLocalDeploymentResponse addComponentDeploymentResponse = clientConnection.createLocalDeployment(createLocalDeploymentRequest, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS);
    String deploymentId1 = addComponentDeploymentResponse.getDeploymentId();
    CountDownLatch deploymentLatch = waitForDeploymentToBeSuccessful(deploymentId1, kernel);
    assertTrue(serviceLatch.await(SERVICE_STATE_CHECK_TIMEOUT_SECONDS, TimeUnit.SECONDS));
    assertTrue(deploymentLatch.await(LOCAL_DEPLOYMENT_TIMEOUT_SECONDS, TimeUnit.SECONDS));
    GetComponentDetailsRequest getComponentDetailsRequest = new GetComponentDetailsRequest();
    getComponentDetailsRequest.setComponentName(TEST_SERVICE_NAME);
    ComponentDetails componentDetails = clientConnection.getComponentDetails(getComponentDetailsRequest, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS).getComponentDetails();
    assertEquals("1.0.1", componentDetails.getVersion());
    // Deployment to remove a component
    createLocalDeploymentRequest = new CreateLocalDeploymentRequest();
    createLocalDeploymentRequest.setRootComponentsToRemove(Arrays.asList(TEST_SERVICE_NAME));
    serviceLatch = waitForServiceToComeInState(TEST_SERVICE_NAME, State.FINISHED, kernel);
    CreateLocalDeploymentResponse deploymentToRemoveComponentResponse = clientConnection.createLocalDeployment(createLocalDeploymentRequest, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS);
    String deploymentId2 = deploymentToRemoveComponentResponse.getDeploymentId();
    deploymentLatch = waitForDeploymentToBeSuccessful(deploymentId2, kernel);
    assertTrue(serviceLatch.await(SERVICE_STATE_CHECK_TIMEOUT_SECONDS, TimeUnit.SECONDS));
    assertTrue(deploymentLatch.await(LOCAL_DEPLOYMENT_TIMEOUT_SECONDS, TimeUnit.SECONDS));
    ignoreExceptionOfType(context, ServiceLoadException.class);
    GetComponentDetailsRequest getRemovedComponent = new GetComponentDetailsRequest();
    getRemovedComponent.setComponentName(TEST_SERVICE_NAME);
    ExecutionException executionException = assertThrows(ExecutionException.class, () -> clientConnection.getComponentDetails(getRemovedComponent, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS).getComponentDetails());
    assertEquals(ResourceNotFoundError.class, executionException.getCause().getClass());
    ListLocalDeploymentsRequest listLocalDeploymentsRequest = new ListLocalDeploymentsRequest();
    ListLocalDeploymentsResponse listLocalDeploymentsResponse = clientConnection.listLocalDeployments(listLocalDeploymentsRequest, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS);
    List<String> localDeploymentIds = listLocalDeploymentsResponse.getLocalDeployments().stream().map(ld -> ld.getDeploymentId()).collect(Collectors.toList());
    assertThat(localDeploymentIds, containsInAnyOrder(deploymentId1, deploymentId2));
}
Also used : Path(java.nio.file.Path) BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) GreengrassCoreIPCClientV2(software.amazon.awssdk.aws.greengrass.GreengrassCoreIPCClientV2) TEST_SERVICE_NAME(com.aws.greengrass.integrationtests.ipc.IPCTestUtils.TEST_SERVICE_NAME) Order(org.junit.jupiter.api.Order) DeserializationFeature(com.fasterxml.jackson.databind.DeserializationFeature) ListComponentsResponse(software.amazon.awssdk.aws.greengrass.model.ListComponentsResponse) AfterAll(org.junit.jupiter.api.AfterAll) IPCTestUtils(com.aws.greengrass.integrationtests.ipc.IPCTestUtils) LifecycleState(software.amazon.awssdk.aws.greengrass.model.LifecycleState) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) State(com.aws.greengrass.dependency.State) BaseITCase(com.aws.greengrass.integrationtests.BaseITCase) BeforeAll(org.junit.jupiter.api.BeforeAll) Map(java.util.Map) IPCTestUtils.waitForServiceToComeInState(com.aws.greengrass.integrationtests.ipc.IPCTestUtils.waitForServiceToComeInState) InvalidArgumentsError(software.amazon.awssdk.aws.greengrass.model.InvalidArgumentsError) Path(java.nio.file.Path) ComponentVersionNegotiationException(com.aws.greengrass.componentmanager.exceptions.ComponentVersionNegotiationException) GreengrassCoreIPCClient(software.amazon.awssdk.aws.greengrass.GreengrassCoreIPCClient) CLI_SERVICE(com.aws.greengrass.cli.CLIService.CLI_SERVICE) TestUtils(com.aws.greengrass.testcommons.testutilities.TestUtils) Collectors(java.util.stream.Collectors) ExceptionLogProtector.ignoreExceptionOfType(com.aws.greengrass.testcommons.testutilities.ExceptionLogProtector.ignoreExceptionOfType) SdkClientException(software.amazon.awssdk.core.exception.SdkClientException) SERVICES_NAMESPACE_TOPIC(com.aws.greengrass.lifecyclemanager.GreengrassService.SERVICES_NAMESPACE_TOPIC) Test(org.junit.jupiter.api.Test) Kernel(com.aws.greengrass.lifecyclemanager.Kernel) UnixPlatform(com.aws.greengrass.util.platforms.unix.UnixPlatform) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) GlobalStateChangeListener(com.aws.greengrass.lifecyclemanager.GlobalStateChangeListener) IPCTestUtils.getEventStreamRpcConnection(com.aws.greengrass.integrationtests.ipc.IPCTestUtils.getEventStreamRpcConnection) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) RunWithInfo(software.amazon.awssdk.aws.greengrass.model.RunWithInfo) CreateLocalDeploymentRequest(software.amazon.awssdk.aws.greengrass.model.CreateLocalDeploymentRequest) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) ListLocalDeploymentsResponse(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse) CreateLocalDeploymentResponse(software.amazon.awssdk.aws.greengrass.model.CreateLocalDeploymentResponse) Optional(java.util.Optional) CLI_AUTH_TOKEN(com.aws.greengrass.cli.CLIService.CLI_AUTH_TOKEN) ComponentStore(com.aws.greengrass.componentmanager.ComponentStore) GetComponentDetailsRequest(software.amazon.awssdk.aws.greengrass.model.GetComponentDetailsRequest) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) ListLocalDeploymentsRequest(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest) AUTHORIZED_POSIX_GROUPS(com.aws.greengrass.cli.CLIService.AUTHORIZED_POSIX_GROUPS) CONFIGURATION_CONFIG_KEY(com.aws.greengrass.componentmanager.KernelConfigResolver.CONFIGURATION_CONFIG_KEY) ExceptionLogProtector.ignoreExceptionUltimateCauseWithMessage(com.aws.greengrass.testcommons.testutilities.ExceptionLogProtector.ignoreExceptionUltimateCauseWithMessage) ConfigPlatformResolver(com.aws.greengrass.integrationtests.util.ConfigPlatformResolver) HashMap(java.util.HashMap) ComponentDetails(software.amazon.awssdk.aws.greengrass.model.ComponentDetails) ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) DeviceConfiguration(com.aws.greengrass.deployment.DeviceConfiguration) Platform(com.aws.greengrass.util.platforms.Platform) IPCTestUtils.getListenerForServiceRunning(com.aws.greengrass.integrationtests.ipc.IPCTestUtils.getListenerForServiceRunning) PackageDownloadException(com.aws.greengrass.componentmanager.exceptions.PackageDownloadException) GGExtension(com.aws.greengrass.testcommons.testutilities.GGExtension) AccessDeniedException(software.amazon.awssdk.eventstreamrpc.model.AccessDeniedException) ResourceNotFoundError(software.amazon.awssdk.aws.greengrass.model.ResourceNotFoundError) ConnectException(java.net.ConnectException) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) PlatformResolver(com.aws.greengrass.config.PlatformResolver) ServiceLoadException(com.aws.greengrass.lifecyclemanager.exceptions.ServiceLoadException) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) RestartComponentRequest(software.amazon.awssdk.aws.greengrass.model.RestartComponentRequest) RUN_WITH_NAMESPACE_TOPIC(com.aws.greengrass.lifecyclemanager.GreengrassService.RUN_WITH_NAMESPACE_TOPIC) ListComponentsRequest(software.amazon.awssdk.aws.greengrass.model.ListComponentsRequest) Files(java.nio.file.Files) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) UniqueRootPathExtension(com.aws.greengrass.testcommons.testutilities.UniqueRootPathExtension) ExceptionLogProtector.ignoreExceptionUltimateCauseOfType(com.aws.greengrass.testcommons.testutilities.ExceptionLogProtector.ignoreExceptionUltimateCauseOfType) EventStreamRPCConnection(software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection) IOException(java.io.IOException) File(java.io.File) ExceptionLogProtector.ignoreExceptionWithMessage(com.aws.greengrass.testcommons.testutilities.ExceptionLogProtector.ignoreExceptionWithMessage) MethodOrderer(org.junit.jupiter.api.MethodOrderer) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) Topic(com.aws.greengrass.config.Topic) IPCTestUtils.waitForDeploymentToBeSuccessful(com.aws.greengrass.integrationtests.ipc.IPCTestUtils.waitForDeploymentToBeSuccessful) Paths(java.nio.file.Paths) NoOpPathOwnershipHandler(com.aws.greengrass.testcommons.testutilities.NoOpPathOwnershipHandler) Assertions(org.junit.jupiter.api.Assertions) Collections(java.util.Collections) CreateLocalDeploymentRequest(software.amazon.awssdk.aws.greengrass.model.CreateLocalDeploymentRequest) CreateLocalDeploymentResponse(software.amazon.awssdk.aws.greengrass.model.CreateLocalDeploymentResponse) ListLocalDeploymentsRequest(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest) ListLocalDeploymentsResponse(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse) CountDownLatch(java.util.concurrent.CountDownLatch) ExecutionException(java.util.concurrent.ExecutionException) ComponentDetails(software.amazon.awssdk.aws.greengrass.model.ComponentDetails) GetComponentDetailsRequest(software.amazon.awssdk.aws.greengrass.model.GetComponentDetailsRequest) Order(org.junit.jupiter.api.Order) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Aggregations

AUTHORIZED_POSIX_GROUPS (com.aws.greengrass.cli.CLIService.AUTHORIZED_POSIX_GROUPS)1 CLI_AUTH_TOKEN (com.aws.greengrass.cli.CLIService.CLI_AUTH_TOKEN)1 CLI_SERVICE (com.aws.greengrass.cli.CLIService.CLI_SERVICE)1 ComponentStore (com.aws.greengrass.componentmanager.ComponentStore)1 CONFIGURATION_CONFIG_KEY (com.aws.greengrass.componentmanager.KernelConfigResolver.CONFIGURATION_CONFIG_KEY)1 ComponentVersionNegotiationException (com.aws.greengrass.componentmanager.exceptions.ComponentVersionNegotiationException)1 PackageDownloadException (com.aws.greengrass.componentmanager.exceptions.PackageDownloadException)1 PlatformResolver (com.aws.greengrass.config.PlatformResolver)1 Topic (com.aws.greengrass.config.Topic)1 State (com.aws.greengrass.dependency.State)1 DeviceConfiguration (com.aws.greengrass.deployment.DeviceConfiguration)1 BaseITCase (com.aws.greengrass.integrationtests.BaseITCase)1 IPCTestUtils (com.aws.greengrass.integrationtests.ipc.IPCTestUtils)1 TEST_SERVICE_NAME (com.aws.greengrass.integrationtests.ipc.IPCTestUtils.TEST_SERVICE_NAME)1 IPCTestUtils.getEventStreamRpcConnection (com.aws.greengrass.integrationtests.ipc.IPCTestUtils.getEventStreamRpcConnection)1 IPCTestUtils.getListenerForServiceRunning (com.aws.greengrass.integrationtests.ipc.IPCTestUtils.getListenerForServiceRunning)1 IPCTestUtils.waitForDeploymentToBeSuccessful (com.aws.greengrass.integrationtests.ipc.IPCTestUtils.waitForDeploymentToBeSuccessful)1 IPCTestUtils.waitForServiceToComeInState (com.aws.greengrass.integrationtests.ipc.IPCTestUtils.waitForServiceToComeInState)1 ConfigPlatformResolver (com.aws.greengrass.integrationtests.util.ConfigPlatformResolver)1 GlobalStateChangeListener (com.aws.greengrass.lifecyclemanager.GlobalStateChangeListener)1