Search in sources :

Example 21 with AssumeRoleRequest

use of com.amazonaws.services.securitytoken.model.AssumeRoleRequest in project cvs-auto-svc by dvsa.

the class AwsUtil method insertActivity.

public static void insertActivity(String jsonBody) {
    Regions clientRegion = Regions.EU_WEST_1;
    AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withRegion(clientRegion).build();
    String uuid = String.valueOf(UUID.randomUUID());
    AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(System.getProperty("AWS_ROLE")).withDurationSeconds(3600).withRoleSessionName(uuid);
    AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
    BasicSessionCredentials temporaryCredentials = new BasicSessionCredentials(assumeResult.getCredentials().getAccessKeyId(), assumeResult.getCredentials().getSecretAccessKey(), assumeResult.getCredentials().getSessionToken());
    AmazonDynamoDBClient client = new AmazonDynamoDBClient(temporaryCredentials);
    client.setRegion(Region.getRegion(clientRegion));
    DynamoDB dynamoDB = new DynamoDB(client);
    String tableName = "cvs-" + loader.getBranchName() + "-activities";
    Table table = dynamoDB.getTable(tableName);
    String id = GenericData.getValueFromJsonPath(jsonBody, "$.id");
    try {
        Item item = Item.fromJSON(jsonBody);
        System.out.println("Adding a new item...");
        PutItemOutcome outcome = table.putItem(item);
        System.out.println("PutItem succeeded:\n" + item.toJSONPretty());
    } catch (Exception e) {
        System.err.println("Unable to add item with id: " + id);
        System.err.println(e);
    }
}
Also used : AssumeRoleRequest(com.amazonaws.services.securitytoken.model.AssumeRoleRequest) BasicSessionCredentials(com.amazonaws.auth.BasicSessionCredentials) Regions(com.amazonaws.regions.Regions) AmazonDynamoDBClient(com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient) AssumeRoleResult(com.amazonaws.services.securitytoken.model.AssumeRoleResult) AWSSecurityTokenService(com.amazonaws.services.securitytoken.AWSSecurityTokenService) AutomationException(exceptions.AutomationException)

Example 22 with AssumeRoleRequest

use of com.amazonaws.services.securitytoken.model.AssumeRoleRequest in project cvs-auto-svc by dvsa.

the class AwsUtil method deleteVehicleById.

public static void deleteVehicleById(String systemNumber) {
    System.out.println("deleting the vehicle: " + systemNumber);
    Regions clientRegion = Regions.EU_WEST_1;
    AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withRegion(clientRegion).build();
    String uuid = String.valueOf(UUID.randomUUID());
    AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(System.getProperty("AWS_ROLE")).withDurationSeconds(3600).withRoleSessionName(uuid);
    AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
    BasicSessionCredentials temporaryCredentials = new BasicSessionCredentials(assumeResult.getCredentials().getAccessKeyId(), assumeResult.getCredentials().getSecretAccessKey(), assumeResult.getCredentials().getSessionToken());
    AmazonDynamoDBClient client = new AmazonDynamoDBClient(temporaryCredentials);
    client.setRegion(Region.getRegion(clientRegion));
    DynamoDB dynamoDB = new DynamoDB(client);
    String tableName = "cvs-" + loader.getBranchName() + "-technical-records";
    Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>();
    expressionAttributeValues.put(":system_no", new AttributeValue().withS(systemNumber));
    ScanRequest scanRequest = new ScanRequest().withTableName(tableName).withFilterExpression("systemNumber = :system_no").withProjectionExpression("vin, systemNumber").withExpressionAttributeValues(expressionAttributeValues);
    ScanResult result = client.scan(scanRequest);
    System.out.println("result.toString: " + result.toString());
    System.out.println("result.getCount: " + result.getCount());
    System.out.println("result.getItems:" + result.getItems());
    Table table = dynamoDB.getTable(tableName);
    for (Map<String, AttributeValue> item : result.getItems()) {
        System.out.println("item.size: " + item.size());
        System.out.println("item.values: " + item.values());
        System.out.println("item.get(systemNumber).getS(): " + item.get("systemNumber").getS());
        DeleteItemSpec deleteItemSpec = new DeleteItemSpec().withPrimaryKey("systemNumber", systemNumber, "vin", item.get("vin").getS());
        DeleteItemOutcome outcome = table.deleteItem(deleteItemSpec);
    }
}
Also used : AssumeRoleRequest(com.amazonaws.services.securitytoken.model.AssumeRoleRequest) DeleteItemSpec(com.amazonaws.services.dynamodbv2.document.spec.DeleteItemSpec) AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) ScanResult(com.amazonaws.services.dynamodbv2.model.ScanResult) BasicSessionCredentials(com.amazonaws.auth.BasicSessionCredentials) Regions(com.amazonaws.regions.Regions) AssumeRoleResult(com.amazonaws.services.securitytoken.model.AssumeRoleResult) ScanRequest(com.amazonaws.services.dynamodbv2.model.ScanRequest) AmazonDynamoDBClient(com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient) AWSSecurityTokenService(com.amazonaws.services.securitytoken.AWSSecurityTokenService)

Example 23 with AssumeRoleRequest

use of com.amazonaws.services.securitytoken.model.AssumeRoleRequest in project cvs-auto-svc by dvsa.

the class AwsUtil method updateEmailsForTestStation.

public static void updateEmailsForTestStation(String primaryKeyValue, String... updateValue) {
    Regions clientRegion = Regions.EU_WEST_1;
    AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withRegion(clientRegion).build();
    String uuid = String.valueOf(UUID.randomUUID());
    AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(System.getProperty("AWS_ROLE")).withDurationSeconds(3600).withRoleSessionName(uuid);
    AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
    BasicSessionCredentials temporaryCredentials = new BasicSessionCredentials(assumeResult.getCredentials().getAccessKeyId(), assumeResult.getCredentials().getSecretAccessKey(), assumeResult.getCredentials().getSessionToken());
    AmazonDynamoDBClient client = new AmazonDynamoDBClient(temporaryCredentials);
    client.setRegion(Region.getRegion(clientRegion));
    DynamoDB dynamoDB = new DynamoDB(client);
    String actualTableName = "cvs-" + loader.getBranchName() + "-test-stations";
    Table table = dynamoDB.getTable(actualTableName);
    UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("testStationId", primaryKeyValue).withUpdateExpression("set testStationEmails = :fieldToUpdate").withValueMap(new ValueMap().withList(":fieldToUpdate", Arrays.asList(updateValue))).withReturnValues(ReturnValue.UPDATED_NEW);
    try {
        System.out.println("Updating the item...");
        UpdateItemOutcome outcome = table.updateItem(updateItemSpec);
        System.out.println("UpdateItem succeeded:\n" + outcome.getItem().toJSONPretty());
    } catch (Exception e) {
        System.err.println("Unable to update item: primaryKeyValue");
        System.err.println(e.getMessage());
    }
}
Also used : AssumeRoleRequest(com.amazonaws.services.securitytoken.model.AssumeRoleRequest) BasicSessionCredentials(com.amazonaws.auth.BasicSessionCredentials) UpdateItemSpec(com.amazonaws.services.dynamodbv2.document.spec.UpdateItemSpec) ValueMap(com.amazonaws.services.dynamodbv2.document.utils.ValueMap) Regions(com.amazonaws.regions.Regions) AssumeRoleResult(com.amazonaws.services.securitytoken.model.AssumeRoleResult) AutomationException(exceptions.AutomationException) AmazonDynamoDBClient(com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient) AWSSecurityTokenService(com.amazonaws.services.securitytoken.AWSSecurityTokenService)

Example 24 with AssumeRoleRequest

use of com.amazonaws.services.securitytoken.model.AssumeRoleRequest in project cvs-auto-svc by dvsa.

the class AwsUtil method getNextTrailerIdInSequence.

public static String getNextTrailerIdInSequence() {
    Regions clientRegion = Regions.EU_WEST_1;
    AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withRegion(clientRegion).build();
    String uuid = String.valueOf(UUID.randomUUID());
    AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(System.getProperty("AWS_ROLE")).withDurationSeconds(3600).withRoleSessionName(uuid);
    AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
    BasicSessionCredentials temporaryCredentials = new BasicSessionCredentials(assumeResult.getCredentials().getAccessKeyId(), assumeResult.getCredentials().getSecretAccessKey(), assumeResult.getCredentials().getSessionToken());
    AmazonDynamoDBClient client = new AmazonDynamoDBClient(temporaryCredentials);
    client.setRegion(Region.getRegion(clientRegion));
    DynamoDB dynamoDB = new DynamoDB(client);
    String tableName = "cvs-" + loader.getBranchName() + "-test-number";
    Table table = dynamoDB.getTable(tableName);
    ItemCollection<ScanOutcome> items = // FilterExpression
    table.scan(// FilterExpression
    "attribute_exists(trailerId)", // ProjectionExpression
    "trailerId, sequenceNumber, trailerLetter", // ExpressionAttributeNames - not used in this example
    null, // ExpressionAttributeValues - not used in this example
    null);
    System.out.println("Scan of " + tableName + " for items with trailerId not null");
    Iterator<Item> iterator = items.iterator();
    String dynamoInfo = null;
    while (iterator.hasNext()) {
        dynamoInfo = iterator.next().toJSONPretty();
    }
    int lastTrailerSequenceNumberUsed = GenericData.extractIntegerValueFromJsonString(dynamoInfo, "$.sequenceNumber");
    String trailerLetter = GenericData.getValueFromJsonPath(dynamoInfo, "$.trailerLetter");
    if (lastTrailerSequenceNumberUsed != 0 && trailerLetter != null) {
        int nextTrailerNumberInSequence = lastTrailerSequenceNumberUsed + 1;
        return trailerLetter + nextTrailerNumberInSequence;
    } else {
        throw new AutomationException("No value found for last used sequence number or trailer letter");
    }
}
Also used : AssumeRoleRequest(com.amazonaws.services.securitytoken.model.AssumeRoleRequest) BasicSessionCredentials(com.amazonaws.auth.BasicSessionCredentials) Regions(com.amazonaws.regions.Regions) AutomationException(exceptions.AutomationException) AssumeRoleResult(com.amazonaws.services.securitytoken.model.AssumeRoleResult) AmazonDynamoDBClient(com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient) AWSSecurityTokenService(com.amazonaws.services.securitytoken.AWSSecurityTokenService)

Example 25 with AssumeRoleRequest

use of com.amazonaws.services.securitytoken.model.AssumeRoleRequest in project cvs-auto-svc by dvsa.

the class AwsUtil method deleteActivitiesForUser.

public static void deleteActivitiesForUser(String testerName) {
    Regions clientRegion = Regions.EU_WEST_1;
    AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withRegion(clientRegion).build();
    String uuid = String.valueOf(UUID.randomUUID());
    AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(System.getProperty("AWS_ROLE")).withDurationSeconds(3600).withRoleSessionName(uuid);
    AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
    BasicSessionCredentials temporaryCredentials = new BasicSessionCredentials(assumeResult.getCredentials().getAccessKeyId(), assumeResult.getCredentials().getSecretAccessKey(), assumeResult.getCredentials().getSessionToken());
    AmazonDynamoDBClient client = new AmazonDynamoDBClient(temporaryCredentials);
    client.setRegion(Region.getRegion(clientRegion));
    DynamoDB dynamoDB = new DynamoDB(client);
    String tableName = "cvs-" + loader.getBranchName() + "-activities";
    Table table = dynamoDB.getTable(tableName);
    Index index = table.getIndex("StaffIndex");
    QuerySpec spec = new QuerySpec().withKeyConditionExpression("testerStaffId = :staff_id").withValueMap(new ValueMap().withString(":staff_id", testerName));
    ItemCollection<QueryOutcome> items = index.query(spec);
    for (Item item : items) {
        String id = JsonPath.read(item.toJSON(), "$.id");
        System.out.println("Delete item:\n" + item.toJSONPretty());
        DeleteItemOutcome outcome = table.deleteItem("id", id);
    }
}
Also used : AssumeRoleRequest(com.amazonaws.services.securitytoken.model.AssumeRoleRequest) BasicSessionCredentials(com.amazonaws.auth.BasicSessionCredentials) ValueMap(com.amazonaws.services.dynamodbv2.document.utils.ValueMap) Regions(com.amazonaws.regions.Regions) AssumeRoleResult(com.amazonaws.services.securitytoken.model.AssumeRoleResult) AmazonDynamoDBClient(com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient) QuerySpec(com.amazonaws.services.dynamodbv2.document.spec.QuerySpec) AWSSecurityTokenService(com.amazonaws.services.securitytoken.AWSSecurityTokenService)

Aggregations

AssumeRoleRequest (com.amazonaws.services.securitytoken.model.AssumeRoleRequest)53 AssumeRoleResult (com.amazonaws.services.securitytoken.model.AssumeRoleResult)41 BasicSessionCredentials (com.amazonaws.auth.BasicSessionCredentials)30 AWSSecurityTokenService (com.amazonaws.services.securitytoken.AWSSecurityTokenService)28 Regions (com.amazonaws.regions.Regions)13 AWSStaticCredentialsProvider (com.amazonaws.auth.AWSStaticCredentialsProvider)11 Credentials (com.amazonaws.services.securitytoken.model.Credentials)11 BasicAWSCredentials (com.amazonaws.auth.BasicAWSCredentials)10 AmazonDynamoDBClient (com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient)10 AWSCredentials (com.amazonaws.auth.AWSCredentials)9 AWSSecurityTokenServiceClientBuilder (com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClientBuilder)8 AutomationException (exceptions.AutomationException)7 ClientConfiguration (com.amazonaws.ClientConfiguration)6 AWSSecurityTokenServiceClient (com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient)6 AmazonServiceException (com.amazonaws.AmazonServiceException)4 Test (org.testng.annotations.Test)4 AWSCredentialsProvider (com.amazonaws.auth.AWSCredentialsProvider)3 DeleteItemSpec (com.amazonaws.services.dynamodbv2.document.spec.DeleteItemSpec)3 AWSSessionCredentials (com.amazonaws.auth.AWSSessionCredentials)2 AnonymousAWSCredentials (com.amazonaws.auth.AnonymousAWSCredentials)2