Example usage for com.amazonaws.services.datapipeline.model Field getKey

List of usage examples for com.amazonaws.services.datapipeline.model Field getKey

Introduction

In this page you can find the example usage for com.amazonaws.services.datapipeline.model Field getKey.

Prototype


public String getKey() 

Source Link

Document

The field identifier.

Usage

From source file:com.shazam.dataengineering.pipelinebuilder.AWSProxy.java

License:Apache License

public boolean hasRunningTasks(String pipelineId, String marker) {
    QueryObjectsRequest request = new QueryObjectsRequest().withSphere("ATTEMPT").withPipelineId(pipelineId);
    if (marker != null) {
        request.setMarker(marker);/*from w w w . j a  va 2 s  .c  o  m*/
    }

    QueryObjectsResult queryResult = client.queryObjects(request);

    DescribeObjectsResult describeResult = describeTasks(pipelineId, queryResult.getIds());
    List<com.amazonaws.services.datapipeline.model.PipelineObject> tasks = describeResult.getPipelineObjects();
    for (com.amazonaws.services.datapipeline.model.PipelineObject task : tasks) {
        for (Field field : task.getFields()) {
            // Is task running?
            if (field.getKey().equals("@status") && field.getStringValue().equals("RUNNING")) {
                return true;
            }
        }
    }

    if (queryResult.getHasMoreResults()) {
        return hasRunningTasks(pipelineId, queryResult.getMarker());
    } else {
        return false;
    }
}

From source file:com.shazam.dataengineering.pipelinebuilder.GraphWriter.java

License:Apache License

/**
 * Build DAG of the pipeline for writing to DOT
 * Only generates activity information. Full graphs tend to be very noisy.
 *
 * @return DirectedMultigraph representation of the pipeline
 *///from ww  w  .j av a 2s.  c  o m
@SuppressWarnings("unchecked")
private DirectedMultigraph getGraph(PipelineObject pipeline) {
    DirectedMultigraph graph = new DirectedMultigraph<com.amazonaws.services.datapipeline.model.PipelineObject, RelationshipEdge>(
            new ClassBasedEdgeFactory<com.amazonaws.services.datapipeline.model.PipelineObject, RelationshipEdge>(
                    RelationshipEdge.class));

    // Maintain map for easier edge creation
    HashMap<String, com.amazonaws.services.datapipeline.model.PipelineObject> idToPipeline = new HashMap<String, com.amazonaws.services.datapipeline.model.PipelineObject>();

    List<com.amazonaws.services.datapipeline.model.PipelineObject> awsObjects = pipeline.getAWSObjects();
    for (com.amazonaws.services.datapipeline.model.PipelineObject awsObject : awsObjects) {
        // Ignore everything except activities
        if (!awsObject.getId().equals("Default")) {
            for (Field field : awsObject.getFields()) {
                // Only add activities to the DOT
                if (field.getKey().equals("type") && field.getStringValue().contains("Activity")) {
                    idToPipeline.put(awsObject.getId(), awsObject);
                    graph.addVertex(awsObject);
                }
            }
        }
    }

    for (com.amazonaws.services.datapipeline.model.PipelineObject awsObject : (Set<com.amazonaws.services.datapipeline.model.PipelineObject>) graph
            .vertexSet()) {
        List<Field> fields = awsObject.getFields();
        for (Field field : fields) {
            if (field.getRefValue() != null && idToPipeline.containsKey(field.getRefValue())) {
                graph.addEdge(awsObject, idToPipeline.get(field.getRefValue()),
                        new RelationshipEdge<com.amazonaws.services.datapipeline.model.PipelineObject>(
                                awsObject, idToPipeline.get(field.getRefValue()), field.getKey()));
            }
        }
    }

    return graph;
}