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

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

Introduction

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

Prototype

@Deprecated
public void setEndpoint(String endpoint) throws IllegalArgumentException 

Source Link

Document

Overrides the default endpoint for this client.

Usage

From source file:ch.admin.isb.hermes5.tools.deploysupport.DeploySupport.java

License:Apache License

private AmazonRDS rds() {
    AmazonRDSClient rds = new AmazonRDSClient(credentials());
    rds.setEndpoint(rdsRegionEndpoint);
    return rds;
}

From source file:com.cloudera.director.aws.rds.RDSProvider.java

License:Apache License

/**
 * Configures the specified client.//from  w  ww.  ja v a  2 s . com
 *
 * @param configuration               the provider configuration
 * @param accumulator                 the exception accumulator
 * @param client                      the RDS client
 * @param endpoints                   the RDS endpoints
 * @param providerLocalizationContext the resource provider localization context
 * @param verify                      whether to verify the configuration by making an API call
 * @return the configured client
 * @throws InvalidCredentialsException    if the supplied credentials are invalid
 * @throws TransientProviderException     if a transient exception occurs communicating with the
 *                                        provider
 * @throws UnrecoverableProviderException if an unrecoverable exception occurs communicating with
 *                                        the provider
 */
protected static AmazonRDSClient configureClient(Configured configuration,
        PluginExceptionConditionAccumulator accumulator, AmazonRDSClient client, RDSEndpoints endpoints,
        LocalizationContext providerLocalizationContext, boolean verify) {
    checkNotNull(client, "client is null");
    try {
        String regionEndpoint = configuration.getConfigurationValue(REGION_ENDPOINT,
                providerLocalizationContext);
        if (regionEndpoint != null) {
            LOG.info("<< Using configured region endpoint: {}", regionEndpoint);
        } else {
            String region = configuration.getConfigurationValue(REGION, providerLocalizationContext);
            if (region == null) {
                region = configuration.getConfigurationValue(
                        EC2Provider.EC2ProviderConfigurationPropertyToken.REGION, providerLocalizationContext);
            }
            regionEndpoint = getEndpointForRegion(checkNotNull(endpoints, "endpoints is null"), region);
        }
        client.setEndpoint(regionEndpoint);

        if (verify) {
            // Attempt to use client, to validate credentials and connectivity
            client.describeDBSecurityGroups();
        }

    } catch (AmazonClientException e) {
        throw AWSExceptions.propagate(e);
    } catch (IllegalArgumentException e) {
        accumulator.addError(REGION.unwrap().getConfigKey(), e.getMessage());
    }
    return client;
}

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);
    }/*from   w  w w. ja  v a2  s .  co  m*/
    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   www  .  ja  va 2 s  . c o m
    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() + "]");
    }
}