Search in sources :

Example 1 with ListLocalDeploymentsRequest

use of software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest in project aws-greengrass-cli by aws-greengrass.

the class CLIEventStreamAgentTest method testListLocalDeployment_successful.

@Test
@SuppressWarnings("PMD.CloseResource")
void testListLocalDeployment_successful() throws IOException {
    Topics mockCliConfig = mock(Topics.class);
    try (Context context = new Context()) {
        Topics localDeployments = Topics.of(context, "localDeployments", null);
        String deploymentId1 = UUID.randomUUID().toString();
        localDeployments.lookupTopics(deploymentId1).lookup(DEPLOYMENT_STATUS_KEY_NAME).withValue(DeploymentStatus.IN_PROGRESS.toString());
        String deploymentId2 = UUID.randomUUID().toString();
        localDeployments.lookupTopics(deploymentId2).lookup(DEPLOYMENT_STATUS_KEY_NAME).withValue(DeploymentStatus.SUCCEEDED.toString());
        when(mockCliConfig.findTopics(PERSISTENT_LOCAL_DEPLOYMENTS)).thenReturn(localDeployments);
        ListLocalDeploymentsRequest request = new ListLocalDeploymentsRequest();
        ListLocalDeploymentsResponse response = cliEventStreamAgent.getListLocalDeploymentsHandler(mockContext, mockCliConfig).handleRequest(request);
        assertEquals(2, response.getLocalDeployments().size());
        response.getLocalDeployments().stream().forEach(ld -> {
            if (ld.getDeploymentId().equals(deploymentId1)) {
                assertEquals(DeploymentStatus.IN_PROGRESS, ld.getStatus());
            } else if (ld.getDeploymentId().equals(deploymentId2)) {
                assertEquals(DeploymentStatus.SUCCEEDED, ld.getStatus());
            } else {
                fail("Invalid deploymentId found in list of local deployments");
            }
        });
    }
}
Also used : ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) Context(com.aws.greengrass.dependency.Context) OperationContinuationHandlerContext(software.amazon.awssdk.eventstreamrpc.OperationContinuationHandlerContext) Topics(com.aws.greengrass.config.Topics) ListLocalDeploymentsRequest(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest) ListLocalDeploymentsResponse(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse) Test(org.junit.jupiter.api.Test)

Example 2 with ListLocalDeploymentsRequest

use of software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest in project aws-greengrass-cli by aws-greengrass.

the class CLIEventStreamAgentTest method testListLocalDeployment_no_local_deployments.

@Test
@SuppressWarnings("PMD.CloseResource")
void testListLocalDeployment_no_local_deployments() throws IOException {
    Topics mockCliConfig = mock(Topics.class);
    try (Context context = new Context()) {
        Topics localDeployments = Topics.of(context, "localDeployments", null);
        when(mockCliConfig.findTopics(PERSISTENT_LOCAL_DEPLOYMENTS)).thenReturn(localDeployments);
        ListLocalDeploymentsRequest request = new ListLocalDeploymentsRequest();
        ListLocalDeploymentsResponse response = cliEventStreamAgent.getListLocalDeploymentsHandler(mockContext, mockCliConfig).handleRequest(request);
        assertEquals(0, response.getLocalDeployments().size());
    }
}
Also used : ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) Context(com.aws.greengrass.dependency.Context) OperationContinuationHandlerContext(software.amazon.awssdk.eventstreamrpc.OperationContinuationHandlerContext) Topics(com.aws.greengrass.config.Topics) ListLocalDeploymentsRequest(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest) ListLocalDeploymentsResponse(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse) Test(org.junit.jupiter.api.Test)

Example 3 with ListLocalDeploymentsRequest

use of software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest 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)

Example 4 with ListLocalDeploymentsRequest

use of software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest in project aws-greengrass-cli by aws-greengrass.

the class NucleusAdapterIpcClientImpl method listLocalDeployments.

@Override
public List<LocalDeployment> listLocalDeployments() {
    try {
        ListLocalDeploymentsRequest request = new ListLocalDeploymentsRequest();
        ListLocalDeploymentsResponse listLocalDeploymentsResponse = getIpcClient().listLocalDeployments(request, Optional.empty()).getResponse().get(DEFAULT_TIMEOUT_IN_SEC, TimeUnit.SECONDS);
        return listLocalDeploymentsResponse.getLocalDeployments();
    } catch (ExecutionException | TimeoutException | InterruptedException e) {
        clientConnection.disconnect();
        // TODO: update when the sdk method signature includes exceptions
        throw new RuntimeException(e);
    } finally {
        close();
    }
}
Also used : ListLocalDeploymentsRequest(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest) ListLocalDeploymentsResponse(software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse) ExecutionException(java.util.concurrent.ExecutionException) TimeoutException(java.util.concurrent.TimeoutException)

Aggregations

ListLocalDeploymentsRequest (software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsRequest)4 ListLocalDeploymentsResponse (software.amazon.awssdk.aws.greengrass.model.ListLocalDeploymentsResponse)4 Test (org.junit.jupiter.api.Test)3 ExtensionContext (org.junit.jupiter.api.extension.ExtensionContext)3 Topics (com.aws.greengrass.config.Topics)2 Context (com.aws.greengrass.dependency.Context)2 ExecutionException (java.util.concurrent.ExecutionException)2 OperationContinuationHandlerContext (software.amazon.awssdk.eventstreamrpc.OperationContinuationHandlerContext)2 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