Example usage for com.amazonaws.services.rds AmazonRDSClient AmazonRDSClient

List of usage examples for com.amazonaws.services.rds AmazonRDSClient AmazonRDSClient

Introduction

In this page you can find the example usage for com.amazonaws.services.rds AmazonRDSClient AmazonRDSClient.

Prototype

AmazonRDSClient(AwsSyncClientParams clientParams) 

Source Link

Document

Constructs a new client to invoke service methods on Amazon RDS using the specified parameters.

Usage

From source file:com.haskins.cloudtrailviewer.dialog.resourcedetail.detailpanels.RdsInstanceDetail.java

License:Open Source License

@Override
public String retrieveDetails(ResourceDetailRequest detailRequest) {

    String response = null;//from ww w.  j  a v  a  2 s .c  om

    try {

        AmazonRDS client = new AmazonRDSClient(credentials);
        client.setRegion(Region.getRegion(Regions.fromName(detailRequest.getRegion())));

        DescribeDBInstancesRequest request = new DescribeDBInstancesRequest();
        request.setDBInstanceIdentifier(detailRequest.getResourceName());

        DescribeDBInstancesResult result = client.describeDBInstances(request);
        buildUI(result);

    } catch (IllegalArgumentException | AmazonClientException e) {
        response = e.getMessage();
        LOGGER.log(Level.WARNING, "Problem retrieving RDS details from AWS", e);
    }

    return response;
}

From source file:com.jaspersoft.jasperserver.api.engine.jasperreports.util.AwsDataSourceRecovery.java

License:Open Source License

private void createRDSSecurityGroup(AwsReportDataSource awsReportDataSource) throws Exception {
    AWSCredentials awsCredentials = AwsCredentialUtil.getAWSCredentials(awsReportDataSource.getAWSAccessKey(),
            awsReportDataSource.getAWSSecretKey(), awsReportDataSource.getRoleARN());

    AmazonRDSClient rdsClient = new AmazonRDSClient(awsCredentials);
    DescribeDBInstancesRequest describeDBInstancesRequest = new DescribeDBInstancesRequest()
            .withDBInstanceIdentifier(awsReportDataSource.getDbInstanceIdentifier());
    String endpoint = awsReportDataSource.getAWSRegion();
    if (endpoint != null) {
        rdsClient.setEndpoint(RDS + "." + endpoint);
    }//www . j ava  2s . com
    DBInstance dbInstance;
    DescribeDBInstancesResult describeInstancesResult = rdsClient
            .describeDBInstances(describeDBInstancesRequest);
    if (describeInstancesResult != null && describeInstancesResult.getDBInstances() != null
            && describeInstancesResult.getDBInstances().size() > 0) {
        dbInstance = describeInstancesResult.getDBInstances().get(0);
        if (!dbInstance.getDBInstanceStatus().equals(awsDataSourceActiveStatus)) {
            throw new JSException(
                    messageSource.getMessage("aws.exception.datasource.recovery.instance.not.active", null,
                            LocaleContextHolder.getLocale()));
        }
        Map<String, String> awsDSInstanceDetails = new HashMap<String, String>();
        awsDSInstanceDetails.put(DB_REGION, parseRegionFromSubRegion(dbInstance.getAvailabilityZone()));
        DBSubnetGroup dbSubnetGroup = dbInstance.getDBSubnetGroup();
        if (dbSubnetGroup != null) {
            awsDSInstanceDetails.put(DB_VPC_ID, dbSubnetGroup.getVpcId());
        } else {
            awsDSInstanceDetails.put(DB_VPC_ID, null);
        }

        String instanceSourceIp = determineSourceIpAddress(awsDSInstanceDetails);

        if (!isNotEmpty(instanceSourceIp)) {
            throw new JSException(
                    getErrorMessage("aws.exception.datasource.recovery.public.ip.not.determined"));
        }

        //IP that should be added in CIDRIP of JS DB Security Group
        String ingressIpMask = instanceSourceIp + ingressIpPermission;

        String vpcSecurityGroupId = null;
        if (awsDSInstanceDetails.get(DB_VPC_ID) != null) {
            //Recover VPC Security Group.
            vpcSecurityGroupId = recoverVpcSecurityGroup(awsReportDataSource,
                    awsDSInstanceDetails.get(DB_VPC_ID), ingressIpMask);
        } else {
            //Recover Db Security Group
            //Fount existing JS DB Security Group
            Boolean jsSecurityGroupMembershipFount = true;

            DBSecurityGroup dbSecurityGroup = null;
            try {
                DescribeDBSecurityGroupsRequest describeDBSecurityGroupsRequest = new DescribeDBSecurityGroupsRequest()
                        .withDBSecurityGroupName(awsProperties.getSecurityGroupName());
                DescribeDBSecurityGroupsResult describeDBSecurityGroupsResult = rdsClient
                        .describeDBSecurityGroups(describeDBSecurityGroupsRequest);
                dbSecurityGroup = describeDBSecurityGroupsResult.getDBSecurityGroups().get(0);
            } catch (DBSecurityGroupNotFoundException ex) {
                jsSecurityGroupMembershipFount = false;
            }

            boolean ingressIpMaskExist = false;
            if (jsSecurityGroupMembershipFount) {
                List<IPRange> ipRanges = dbSecurityGroup.getIPRanges();
                for (IPRange ipRange : ipRanges) {
                    if (ipRange.getCIDRIP().contains(ingressIpMask)) {
                        ingressIpMaskExist = true;
                        break;
                    }
                }
                if (!ingressIpMaskExist) {
                    //Remove old ingress Ips
                    for (IPRange ipRange : ipRanges) {
                        RevokeDBSecurityGroupIngressRequest revokeDBSecurityGroupIngressRequest = new RevokeDBSecurityGroupIngressRequest()
                                .withDBSecurityGroupName(awsProperties.getSecurityGroupName())
                                .withCIDRIP(ipRange.getCIDRIP());
                        rdsClient.revokeDBSecurityGroupIngress(revokeDBSecurityGroupIngressRequest);
                    }
                }
            } else {
                dbSecurityGroup = rdsClient.createDBSecurityGroup(new CreateDBSecurityGroupRequest()
                        .withDBSecurityGroupName(awsProperties.getSecurityGroupName())
                        .withDBSecurityGroupDescription(awsProperties.getSecurityGroupDescription()));
            }
            //Authorize new ingress Ip
            if (!ingressIpMaskExist) {
                rdsClient.authorizeDBSecurityGroupIngress(new AuthorizeDBSecurityGroupIngressRequest()
                        .withDBSecurityGroupName(dbSecurityGroup.getDBSecurityGroupName())
                        .withCIDRIP(ingressIpMask));
            }
        }

        if (vpcSecurityGroupId == null) {
            List<DBSecurityGroupMembership> dbSecurityGroupMemberships = dbInstance.getDBSecurityGroups();
            List<String> dbSecurityGroupNames = new ArrayList<String>();
            for (DBSecurityGroupMembership dbSecurityGroupMembership : dbSecurityGroupMemberships) {
                dbSecurityGroupNames.add(dbSecurityGroupMembership.getDBSecurityGroupName());
            }
            //If RDS Instance does not contain JSSecurityGroup that we should assign it to.
            if (!dbSecurityGroupNames.contains(awsProperties.getSecurityGroupName())) {
                dbSecurityGroupNames.add(awsProperties.getSecurityGroupName());
                ModifyDBInstanceRequest modifyDBInstanceRequest = new ModifyDBInstanceRequest()
                        .withDBSecurityGroups(dbSecurityGroupNames)
                        .withDBInstanceIdentifier(dbInstance.getDBInstanceIdentifier());
                modifyDBInstanceRequest.setApplyImmediately(true);
                rdsClient.modifyDBInstance(modifyDBInstanceRequest);
            }
        } else {
            List<VpcSecurityGroupMembership> vpcSecurityGroupMemberships = dbInstance.getVpcSecurityGroups();
            List<String> vpcSecurityGroupIds = new ArrayList<String>();
            for (VpcSecurityGroupMembership vpcSecurityGroupMembership : vpcSecurityGroupMemberships) {
                vpcSecurityGroupIds.add(vpcSecurityGroupMembership.getVpcSecurityGroupId());
            }
            //If RDS Instance does not contain VPC Security Group that we should assign it to.
            if (!vpcSecurityGroupIds.contains(vpcSecurityGroupId)) {
                vpcSecurityGroupIds.add(vpcSecurityGroupId);
                ModifyDBInstanceRequest modifyDBInstanceRequest = new ModifyDBInstanceRequest()
                        .withVpcSecurityGroupIds(vpcSecurityGroupIds)
                        .withDBInstanceIdentifier(dbInstance.getDBInstanceIdentifier());
                modifyDBInstanceRequest.setApplyImmediately(true);
                rdsClient.modifyDBInstance(modifyDBInstanceRequest);
            }
        }
    }
}

From source file:com.jaspersoft.jasperserver.war.amazon.client.AwsDataSourceServiceImpl.java

License:Open Source License

public List<AwsDBInstanceDTO> getAwsDBInstances(AWSCredentials awsCredentials, String amazonDBService,
        String endpoint) {/*from   w w w.j  a  va2  s.c om*/
    try {
        if (amazonDBService.toLowerCase().equals(RDS)) {
            //Make RDS service calls to read all available RDS instances
            AmazonRDSClient rdsClient = new AmazonRDSClient(awsCredentials);
            if (endpoint != null) {
                rdsClient.setEndpoint(RDS + "." + endpoint);
            }
            return toRDSInstancesDTOs(getRdsInstances(rdsClient), amazonDBService);
        } else if (amazonDBService.toLowerCase().equals(Redshift)) {
            //Make RedShift service calls to read all available RedShift instances
            AmazonRedshiftClient redshiftClient = new AmazonRedshiftClient(awsCredentials);
            if (endpoint != null) {
                redshiftClient.setEndpoint(Redshift + "." + endpoint);
            }
            return toRedshiftInstancesDTOs(getRedshiftInstances(redshiftClient), amazonDBService);
        } else {
            return new ArrayList<AwsDBInstanceDTO>();
        }
    } catch (AmazonServiceException ex) {
        log.warn("Loading AWS data source metadata for " + amazonDBService + ": " + ex.getMessage());

        String errorCode = ex.getErrorCode();
        if (ex.getStatusCode() == 403 && errorCode != null) {
            errorCode = errorCode.toLowerCase();
            if (errorCode.equals(ACCESS_DENIED)) {
                return generateDBServiceInfoStatus(amazonDBService, "resource.dataSource.aws.access.denied");
            } else if (errorCode.equals(INVALID_CLIENT_TOKEN_ID)) {
                throw new JSShowOnlyErrorMessage(
                        messageSource.getMessage("" + "aws.exception.datasource.accessKey.invalid", null,
                                LocaleContextHolder.getLocale()));
            } else if (errorCode.equals(SIGNATURE_DOES_NOT_MATCH)) {
                throw new JSShowOnlyErrorMessage(
                        messageSource.getMessage("" + "aws.exception.datasource.secretKey.invalid", null,
                                LocaleContextHolder.getLocale()));
            }
        }

        return generateDBServiceInfoStatus(amazonDBService, "[" + ex.getMessage() + "]");
    } catch (AmazonClientException ex) {
        if (ex.getCause() instanceof UnknownHostException) {
            return generateDBServiceInfoStatus(endpoint, "resource.dataSource.aws.unknown.host");
        }

        return generateDBServiceInfoStatus(amazonDBService, "[" + ex.getMessage() + "]");
    }
}

From source file:com.kpbird.aws.Main.java

private void init() {
    credentials = new BasicAWSCredentials(accessKey, secretKey);
    // end point for singapore 
    endPoint = "https://rds.ap-southeast-1.amazonaws.com";
    // regions for singapore
    region = Region.getRegion(Regions.AP_SOUTHEAST_1);
    // EC2Client object
    ec2client = new AmazonEC2Client(credentials);
    ec2client.setEndpoint(endPoint);//from ww w  .  j a  v a 2 s .c  om
    ec2client.setRegion(region);
    // RDSClient object
    rdsclient = new AmazonRDSClient(credentials);
    rdsclient.setRegion(region);
    rdsclient.setEndpoint(endPoint);

}

From source file:com.optimalbi.AmazonAccount.java

License:Apache License

private void populateRDS() throws AmazonClientException {
    for (Region region : getRegions()) {
        try {/*from  ww  w. j  a  va  2s  . c o  m*/
            if (region.isServiceSupported(ServiceAbbreviations.RDS)) {
                AmazonRDSClient rds = new AmazonRDSClient(getCredentials().getCredentials());
                rds.setRegion(region);

                DescribeDBInstancesResult result = rds.describeDBInstances();
                List<DBInstance> instances = result.getDBInstances();

                getLogger().info("RDS, Adding " + instances.size() + " instances from " + region.getName());

                for (DBInstance i : instances) {
                    LocalRDSService temp;
                    if (i.getDBName() != null) {
                        temp = new LocalRDSService(i.getDBName(), getCredentials(), region, i, getLogger());
                    } else {
                        temp = new LocalRDSService(i.getDBInstanceIdentifier(), getCredentials(), region, i,
                                getLogger());
                    }
                    if (servicePricings != null && servicePricings.size() > 0) {
                        if (servicePricings.get(region).getRDSPricing() != null) {
                            temp.attachPricing(servicePricings.get(region).getRDSPricing());
                        }
                    }
                    services.add(temp);
                }
            } else {
                getLogger().info("RDS, NOPE from " + region.getName());
            }
        } catch (AmazonClientException e) {
            throw new AmazonClientException(region.getName() + " " + e.getMessage());
        }
        completed.set(completed.get() + 1);
    }
}

From source file:com.optimalbi.Controller.AmazonAccount.java

License:Apache License

private void populateRDS() throws AmazonClientException {
    for (Region region : getRegions()) {
        try {//from   w w w .j  a v  a  2  s .c o  m
            if (region.isServiceSupported(ServiceAbbreviations.RDS)) {
                //                services.addAll(RDSService.populateServices(region, getCredentials(), getLogger()));
                AmazonRDSClient rds = new AmazonRDSClient(getCredentials().getCredentials());
                rds.setRegion(region);

                DescribeDBInstancesResult result = rds.describeDBInstances();
                List<DBInstance> instances = result.getDBInstances();

                getLogger().info("RDS, Adding " + instances.size() + " instances from " + region.getName());
                services.addAll(
                        instances
                                .stream().map(i -> new LocalRDSService(i.getDBInstanceIdentifier(),
                                        getCredentials(), region, i, getLogger()))
                                .collect(Collectors.toList()));
            } else {
                getLogger().info("RDS, NOPE from " + region.getName());
            }
        } catch (AmazonClientException e) {
            throw new AmazonClientException(region.getName() + " " + e.getMessage());
        }
        completed.set(completed.get() + 1);

    }
}

From source file:com.optimalbi.Services.LocalRDSService.java

License:Apache License

public void refreshInstance() {
    AmazonRDSClient rds = new AmazonRDSClient(getCredentials().getCredentials());
    rds.setRegion(region);//from ww w .j  av a 2  s.  co m

    DescribeDBInstancesResult result = rds.describeDBInstances();
    List<DBInstance> instances = result.getDBInstances();
    DBInstance tempInstance = null;
    for (DBInstance d : instances) {
        if (d.getDBInstanceIdentifier().equalsIgnoreCase(thisService.getDBInstanceIdentifier())) {
            tempInstance = d;
        }
    }
    if (tempInstance != null) {
        thisService = tempInstance;
    } else {
        getLogger().error("Failed to refresh " + this.serviceName());
    }
}

From source file:com.optimalbi.Services.LocalRDSService.java

License:Apache License

public Map<String, String> getTags() {
    AmazonRDS rds = new AmazonRDSClient(this.getCredentials().getCredentials());
    String arn = thisService.getTdeCredentialArn();
    ListTagsForResourceResult tagsList = rds
            .listTagsForResource(new ListTagsForResourceRequest().withResourceName(arn));

    List<Tag> tagList = tagsList.getTagList();
    Map<String, String> tagMap = new HashMap<>();
    for (Tag t : tagList) {
        tagMap.put(t.getKey(), t.getValue());
    }/*from w w w  .jav a 2  s. c om*/
    return tagMap;
}

From source file:com.trsvax.tapestry.aws.core.services.AWSCoreModule.java

License:Apache License

public static void bind(ServiceBinder binder) {
    //binder.bind(AWSMailTransport.class,AWSMailTransportImpl.class);

    binder.bind(AmazonS3.class, new ServiceBuilder<AmazonS3>() {
        public AmazonS3 buildService(ServiceResources serviceResources) {
            return new AmazonS3Client(serviceResources.getService(AWSCredentials.class));
        }/*from   w w w  .ja v a  2s.  c o  m*/
    });
    binder.bind(AmazonDynamoDB.class, new ServiceBuilder<AmazonDynamoDB>() {
        public AmazonDynamoDB buildService(ServiceResources serviceResources) {
            return new AmazonDynamoDBClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonEC2.class, new ServiceBuilder<AmazonEC2>() {
        public AmazonEC2 buildService(ServiceResources serviceResources) {
            return new AmazonEC2Client(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonSimpleDB.class, new ServiceBuilder<AmazonSimpleDB>() {
        public AmazonSimpleDB buildService(ServiceResources serviceResources) {
            return new AmazonSimpleDBClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonSQS.class, new ServiceBuilder<AmazonSQS>() {
        public AmazonSQS buildService(ServiceResources serviceResources) {
            return new AmazonSQSClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonSNS.class, new ServiceBuilder<AmazonSNS>() {
        public AmazonSNS buildService(ServiceResources serviceResources) {
            return new AmazonSNSClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonRDS.class, new ServiceBuilder<AmazonRDS>() {
        public AmazonRDS buildService(ServiceResources serviceResources) {
            return new AmazonRDSClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonElasticMapReduce.class, new ServiceBuilder<AmazonElasticMapReduce>() {
        public AmazonElasticMapReduce buildService(ServiceResources serviceResources) {
            return new AmazonElasticMapReduceClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonSimpleEmailService.class, new ServiceBuilder<AmazonSimpleEmailService>() {
        public AmazonSimpleEmailService buildService(ServiceResources serviceResources) {
            return new AmazonSimpleEmailServiceClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonElasticLoadBalancing.class, new ServiceBuilder<AmazonElasticLoadBalancing>() {
        public AmazonElasticLoadBalancing buildService(ServiceResources serviceResources) {
            return new AmazonElasticLoadBalancingClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonCloudWatch.class, new ServiceBuilder<AmazonCloudWatch>() {
        public AmazonCloudWatch buildService(ServiceResources serviceResources) {
            return new AmazonCloudWatchClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonAutoScaling.class, new ServiceBuilder<AmazonAutoScaling>() {
        public AmazonAutoScaling buildService(ServiceResources serviceResources) {
            return new AmazonAutoScalingClient(serviceResources.getService(AWSCredentials.class));
        }
    });
    binder.bind(AmazonIdentityManagement.class, new ServiceBuilder<AmazonIdentityManagement>() {
        public AmazonIdentityManagement buildService(ServiceResources serviceResources) {
            return new AmazonIdentityManagementClient(serviceResources.getService(AWSCredentials.class));
        }
    });
}

From source file:com.vb.services.database.rds.MySQLDBUtils.java

public MySQLDBUtils(AWSCredentialsProvider awsCredentialsProvider) {
    this.amazonRDSClient = new AmazonRDSClient(awsCredentialsProvider);
    this.mysqlDB = new MySQLDB();
    this.createDBInstanceRequest = new CreateDBInstanceRequest();
}