public void testPipelineOperations()

in services/datapipeline/src/it/java/software/amazon/awssdk/services/datapipeline/DataPipelineIntegrationTest.java [69:197]


    public void testPipelineOperations() throws InterruptedException {
        // Create a pipeline.
        CreatePipelineResponse createPipelineResult = dataPipeline.createPipeline(
                CreatePipelineRequest.builder()
                        .name(PIPELINE_NAME)
                        .uniqueId(PIPELINE_ID)
                        .description(PIPELINE_DESCRIPTION)
                        .build());
        pipelineId = createPipelineResult.pipelineId();
        assertNotNull(pipelineId);


        // Invalid field
        PipelineObject pipelineObject = PipelineObject.builder()
                .id(OBJECT_ID + "1")
                .name(OBJECT_NAME)
                .fields(Field.builder()
                        .key(INVALID_KEY)
                        .stringValue(FIELD_VALUE)
                        .build())
                .build();

        ValidatePipelineDefinitionResponse validatePipelineDefinitionResult =
                dataPipeline.validatePipelineDefinition(ValidatePipelineDefinitionRequest.builder()
                        .pipelineId(pipelineId)
                        .pipelineObjects(pipelineObject)
                        .build());
        assertTrue(validatePipelineDefinitionResult.errored());
        assertNotNull(validatePipelineDefinitionResult.validationErrors());
        assertTrue(validatePipelineDefinitionResult.validationErrors().size() > 0);
        assertNotNull(validatePipelineDefinitionResult.validationErrors().get(0));
        assertNotNull(validatePipelineDefinitionResult.validationWarnings());
        assertEquals(0, validatePipelineDefinitionResult.validationWarnings().size());

        // Valid field
        pipelineObject = PipelineObject.builder()
                .id(OBJECT_ID)
                .name(OBJECT_NAME)
                .fields(Field.builder()
                        .key(VALID_KEY)
                        .stringValue(FIELD_VALUE)
                        .build())
                .build();

        // Validate pipeline definition.
        validatePipelineDefinitionResult =
                dataPipeline.validatePipelineDefinition(ValidatePipelineDefinitionRequest.builder()
                        .pipelineId(pipelineId)
                        .pipelineObjects(pipelineObject)
                        .build());
        assertFalse(validatePipelineDefinitionResult.errored());
        assertNotNull(validatePipelineDefinitionResult.validationErrors());
        assertEquals(0, validatePipelineDefinitionResult.validationErrors().size());
        assertNotNull(validatePipelineDefinitionResult.validationWarnings());
        assertEquals(0, validatePipelineDefinitionResult.validationWarnings().size());

        // Put pipeline definition.
        PutPipelineDefinitionResponse putPipelineDefinitionResult =
                dataPipeline.putPipelineDefinition(PutPipelineDefinitionRequest.builder()
                        .pipelineId(pipelineId)
                        .pipelineObjects(pipelineObject)
                        .build());
        assertFalse(putPipelineDefinitionResult.errored());
        assertNotNull(putPipelineDefinitionResult.validationErrors());
        assertEquals(0, putPipelineDefinitionResult.validationErrors().size());
        assertNotNull(putPipelineDefinitionResult.validationWarnings());
        assertEquals(0, putPipelineDefinitionResult.validationWarnings().size());

        // Get pipeline definition.
        GetPipelineDefinitionResponse pipelineDefinitionResult =
                dataPipeline.getPipelineDefinition(GetPipelineDefinitionRequest.builder().pipelineId(pipelineId).build());
        assertEquals(1, pipelineDefinitionResult.pipelineObjects().size());
        assertEquals(OBJECT_ID, pipelineDefinitionResult.pipelineObjects().get(0).id());
        assertEquals(OBJECT_NAME, pipelineDefinitionResult.pipelineObjects().get(0).name());
        assertEquals(1, pipelineDefinitionResult.pipelineObjects().get(0).fields().size());
        assertTrue(pipelineDefinitionResult.pipelineObjects().get(0).fields()
                                              .contains(Field.builder().key(VALID_KEY).stringValue(FIELD_VALUE).build()));

        // Activate a pipeline.
        ActivatePipelineResponse activatePipelineResult =
                dataPipeline.activatePipeline(ActivatePipelineRequest.builder().pipelineId(pipelineId).build());
        assertNotNull(activatePipelineResult);

        // List pipeline.
        ListPipelinesResponse listPipelinesResult = dataPipeline.listPipelines(ListPipelinesRequest.builder().build());
        assertTrue(listPipelinesResult.pipelineIdList().size() > 0);
        assertNotNull(pipelineId, listPipelinesResult.pipelineIdList().get(0).id());
        assertNotNull(PIPELINE_NAME, listPipelinesResult.pipelineIdList().get(0).name());

        Thread.sleep(1000 * 5);

        // Describe objects.
        DescribeObjectsResponse describeObjectsResult =
                dataPipeline.describeObjects(DescribeObjectsRequest.builder().pipelineId(pipelineId).objectIds(OBJECT_ID).build());
        assertEquals(1, describeObjectsResult.pipelineObjects().size());
        assertEquals(OBJECT_ID, describeObjectsResult.pipelineObjects().get(0).id());
        assertEquals(OBJECT_NAME, describeObjectsResult.pipelineObjects().get(0).name());
        assertTrue(describeObjectsResult.pipelineObjects().get(0).fields()
                                        .contains(Field.builder().key(VALID_KEY).stringValue(FIELD_VALUE).build()));
        assertTrue(describeObjectsResult.pipelineObjects().get(0).fields()
                                        .contains(Field.builder().key("@pipelineId").stringValue(pipelineId).build()));

        // Describe a pipeline.
        DescribePipelinesResponse describepipelinesResult =
                dataPipeline.describePipelines(DescribePipelinesRequest.builder().pipelineIds(pipelineId).build());
        assertEquals(1, describepipelinesResult.pipelineDescriptionList().size());
        assertEquals(PIPELINE_NAME, describepipelinesResult.pipelineDescriptionList().get(0).name());
        assertEquals(pipelineId, describepipelinesResult.pipelineDescriptionList().get(0).pipelineId());
        assertEquals(PIPELINE_DESCRIPTION, describepipelinesResult.pipelineDescriptionList().get(0).description());
        assertTrue(describepipelinesResult.pipelineDescriptionList().get(0).fields().size() > 0);
        assertTrue(describepipelinesResult.pipelineDescriptionList().get(0).fields()
                                          .contains(Field.builder().key("name").stringValue(PIPELINE_NAME).build()));
        assertTrue(describepipelinesResult.pipelineDescriptionList().get(0).fields()
                                          .contains(Field.builder().key("@id").stringValue(pipelineId).build()));
        assertTrue(describepipelinesResult.pipelineDescriptionList().get(0).fields()
                                          .contains(Field.builder().key("uniqueId").stringValue(PIPELINE_ID).build()));

        // Delete a pipeline.
        dataPipeline.deletePipeline(DeletePipelineRequest.builder().pipelineId(pipelineId).build());
        Thread.sleep(1000 * 5);
        try {
            describepipelinesResult = dataPipeline.describePipelines(DescribePipelinesRequest.builder().pipelineIds(pipelineId).build());
            if (describepipelinesResult.pipelineDescriptionList().size() > 0) {
                fail();
            }
        } catch (SdkServiceException e) {
            // Ignored or expected.
        }
    }