Example usage for com.amazonaws.services.rds.model ModifyDBInstanceRequest ModifyDBInstanceRequest

List of usage examples for com.amazonaws.services.rds.model ModifyDBInstanceRequest ModifyDBInstanceRequest

Introduction

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

Prototype

public ModifyDBInstanceRequest() 

Source Link

Document

Default constructor for ModifyDBInstanceRequest object.

Usage

From source file:com.github.blacklocus.rdsecho.EchoModify.java

License:Open Source License

@Override
boolean traverseStage(DBInstance instance) {

    // Prepare request and build up informational message with conditional parts.

    StringWriter proposed = new StringWriter();
    PrintWriter printer = new PrintWriter(proposed);
    printer.format("Proposed db modifications...%n");

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
    request.withDBInstanceIdentifier(instance.getDBInstanceIdentifier());

    Optional<String> dbParameterGroupNameOpt = cfg.modDbParameterGroupName();
    if (dbParameterGroupNameOpt.isPresent()) {
        request.withDBParameterGroupName(dbParameterGroupNameOpt.get());
        printer.format("  db param group name    : %s%n", dbParameterGroupNameOpt.get());
    }//ww w. j a  v a  2 s  .c o m
    Optional<String[]> dbSecurityGroupsOpt = cfg.modDbSecurityGroups();
    if (dbSecurityGroupsOpt.isPresent()) {
        request.withDBSecurityGroups(dbSecurityGroupsOpt.get());
        printer.format("  db security groups     : %s%n", Arrays.asList(dbSecurityGroupsOpt.get()));
    }
    Optional<Integer> backupRetentionPeriodOpt = cfg.modBackupRetentionPeriod();
    if (backupRetentionPeriodOpt.isPresent()) {
        request.withBackupRetentionPeriod(backupRetentionPeriodOpt.get());
        printer.format("  backup retention period: %d%n", backupRetentionPeriodOpt.get());
    }
    boolean applyImmediately = cfg.modApplyImmediately();
    printer.format("  apply immediately      : %b%n", applyImmediately);
    request.withApplyImmediately(applyImmediately);

    LOG.info(proposed.toString());

    // Interactive user confirm

    if (cfg.interactive()) {
        String format = "Proceed to modify DB instance with these settings? Input %s to confirm.";
        String dbInstanceId = instance.getDBInstanceIdentifier();
        if (!EchoUtil.prompt(dbInstanceId, format, dbInstanceId)) {
            LOG.info("User declined to proceed. Exiting.");
            return false;
        }
    }

    // Do the deed

    LOG.info("Modifying existing DB instance.");
    rds.modifyDBInstance(request);
    LOG.info("Submitted instance modify request. The instance may need to be rebooted to receive the effect of "
            + "certain settings. See AWS RDS documentation for details:\n"
            + "http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html#Overview.DBInstance.Modifying");

    return true;
}

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  ww.  java  2s  .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:jp.classmethod.aws.gradle.rds.AmazonRDSMigrateDBInstanceTask.java

License:Apache License

private void modifyDBInstance(AmazonRDS rds) {
    // to enable conventionMappings feature
    String dbInstanceIdentifier = getDbInstanceIdentifier();

    if (dbInstanceIdentifier == null) {
        throw new GradleException("dbInstanceIdentifier is required");
    }//from  w  w  w  .j  av a2  s.co  m

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest()
            .withDBInstanceIdentifier(dbInstanceIdentifier).withAllocatedStorage(getAllocatedStorage())
            .withDBInstanceClass(getDbInstanceClass()).withMasterUserPassword(getMasterUserPassword())
            .withVpcSecurityGroupIds(getVpcSecurityGroupIds())
            .withPreferredMaintenanceWindow(getPreferredMaintenanceWindow())
            .withDBParameterGroupName(getDbParameterGroupName())
            .withBackupRetentionPeriod(getBackupRetentionPeriod())
            .withPreferredBackupWindow(getPreferredBackupWindow()).withMultiAZ(getMultiAZ())
            .withEngineVersion(getEngineVersion()).withAutoMinorVersionUpgrade(getAutoMinorVersionUpgrade())
            .withIops(getIops()).withOptionGroupName(getOptionGroupName()).withStorageType(getStorageType())
            .withTdeCredentialArn(getTdeCredentialArn()).withTdeCredentialPassword(getTdeCredentialPassword());
    dbInstance = rds.modifyDBInstance(request);
    getLogger().info("Modify RDS instance requested: {}", dbInstance.getDBInstanceIdentifier());
}

From source file:jp.classmethod.aws.gradle.rds.AmazonRDSModifyDBInstanceTask.java

License:Apache License

@TaskAction
public void modifyDBInstance() {
    // to enable conventionMappings feature
    String dbInstanceIdentifier = getDbInstanceIdentifier();

    if (dbInstanceIdentifier == null) {
        throw new GradleException("dbInstanceIdentifier is required");
    }/*from  w  ww  .ja v  a  2 s . com*/

    AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class);
    AmazonRDS rds = ext.getClient();

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest()
            .withDBInstanceIdentifier(dbInstanceIdentifier).withAllocatedStorage(getAllocatedStorage())
            .withDBInstanceClass(getDbInstanceClass()).withMasterUserPassword(getMasterUserPassword())
            .withVpcSecurityGroupIds(getVpcSecurityGroupIds())
            .withPreferredMaintenanceWindow(getPreferredMaintenanceWindow())
            .withDBParameterGroupName(getDbParameterGroupName())
            .withBackupRetentionPeriod(getBackupRetentionPeriod())
            .withPreferredBackupWindow(getPreferredBackupWindow()).withMultiAZ(getMultiAZ())
            .withEngineVersion(getEngineVersion()).withAutoMinorVersionUpgrade(getAutoMinorVersionUpgrade())
            .withIops(getIops()).withOptionGroupName(getOptionGroupName()).withStorageType(getStorageType())
            .withTdeCredentialArn(getTdeCredentialArn()).withTdeCredentialPassword(getTdeCredentialPassword());
    dbInstance = rds.modifyDBInstance(request);
    getLogger().info("Modify RDS instance requested: {}", dbInstance.getDBInstanceIdentifier());
}

From source file:org.cloudml.connectors.BeanstalkConnector.java

License:Open Source License

/**
 * Not used yet!/*from w  w w  . j a  va  2 s.  c  o m*/
 *
 * @param dbInstanceIdentifier
 * @param group
 * @param owner
 */
public void setSecuretGroup(String dbInstanceIdentifier, String group, String owner) {

    String groupName = dbInstanceIdentifier + "-security-group";
    CreateDBSecurityGroupRequest csg = new CreateDBSecurityGroupRequest();
    csg.setDBSecurityGroupName(groupName);
    csg.setDBSecurityGroupDescription(groupName);
    rdsClient.createDBSecurityGroup(csg);

    RevokeDBSecurityGroupIngressRequest rsgi = new RevokeDBSecurityGroupIngressRequest();
    rsgi.setDBSecurityGroupName(groupName);
    rsgi.setEC2SecurityGroupId(group);
    rsgi.setEC2SecurityGroupOwnerId(owner);
    rsgi.setRequestCredentials(awsCredentials);
    //rsgi.set
    rdsClient.revokeDBSecurityGroupIngress(rsgi);

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
    Collection<String> groups = new ArrayList();
    groups.add(groupName);
    request.setDBSecurityGroups(groups);
    request.setDBInstanceIdentifier(dbInstanceIdentifier);
    rdsClient.modifyDBInstance(request);

}

From source file:org.cloudml.connectors.BeanstalkConnector.java

License:Open Source License

public void openDBForIps(String dbInstanceIdentifier, Collection<String> ips, int timeout) {
    String groupName = dbInstanceIdentifier + "-security-group";
    for (String ip : ips) {
        AuthorizeDBSecurityGroupIngressRequest audbgi = new AuthorizeDBSecurityGroupIngressRequest()
                .withCIDRIP(ip + "/32").withDBSecurityGroupName(groupName);
        audbgi.setRequestCredentials(awsCredentials);
        rdsClient.authorizeDBSecurityGroupIngress(audbgi);

    }/*w w  w .j  a v  a  2  s  . co  m*/
    rdsClient.authorizeDBSecurityGroupIngress(new AuthorizeDBSecurityGroupIngressRequest()
            .withCIDRIP("0.0.0.0/0").withDBSecurityGroupName(groupName));
    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
    Collection<String> groups = new ArrayList();
    groups.add(groupName);
    request.setDBSecurityGroups(groups);
    request.setDBInstanceIdentifier(dbInstanceIdentifier);
    System.out.print("Modifying security group");
    while (timeout-- > 0) {
        System.out.print("-");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Logger.getLogger(BeanstalkConnector.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            rdsClient.modifyDBInstance(request);
            break;
        } catch (Exception e) {
            continue;
        }

    }

}

From source file:org.xmlsh.aws.gradle.rds.AmazonRDSMigrateDBInstanceTask.java

License:BSD License

private void modifyDBInstance(AmazonRDS rds) {
    // to enable conventionMappings feature
    String dbInstanceIdentifier = getDbInstanceIdentifier();

    if (dbInstanceIdentifier == null)
        throw new GradleException("dbInstanceIdentifier is required");

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest()
            .withDBInstanceIdentifier(dbInstanceIdentifier).withAllocatedStorage(getAllocatedStorage())
            .withDBInstanceClass(getDbInstanceClass()).withMasterUserPassword(getMasterUserPassword())
            .withVpcSecurityGroupIds(getVpcSecurityGroupIds())
            .withPreferredMaintenanceWindow(getPreferredMaintenanceWindow())
            .withDBParameterGroupName(getDbParameterGroupName())
            .withBackupRetentionPeriod(getBackupRetentionPeriod())
            .withPreferredBackupWindow(getPreferredBackupWindow()).withMultiAZ(getMultiAZ())
            .withEngineVersion(getEngineVersion()).withAutoMinorVersionUpgrade(getAutoMinorVersionUpgrade())
            .withIops(getIops()).withOptionGroupName(getOptionGroupName()).withStorageType(getStorageType())
            .withTdeCredentialArn(getTdeCredentialArn()).withTdeCredentialPassword(getTdeCredentialPassword());
    dbInstance = rds.modifyDBInstance(request);
    getLogger().info("Modify RDS instance requested: {}", dbInstance.getDBInstanceIdentifier());
}

From source file:org.xmlsh.aws.gradle.rds.AmazonRDSModifyDBInstanceTask.java

License:BSD License

@TaskAction
public void modifyDBInstance() {
    // to enable conventionMappings feature
    String dbInstanceIdentifier = getDbInstanceIdentifier();

    if (dbInstanceIdentifier == null)
        throw new GradleException("dbInstanceIdentifier is required");

    AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class);
    AmazonRDS rds = ext.getClient();/*from w  w w  .jav a2 s  .  co m*/

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest()
            .withDBInstanceIdentifier(dbInstanceIdentifier).withAllocatedStorage(getAllocatedStorage())
            .withDBInstanceClass(getDbInstanceClass()).withMasterUserPassword(getMasterUserPassword())
            .withVpcSecurityGroupIds(getVpcSecurityGroupIds())
            .withPreferredMaintenanceWindow(getPreferredMaintenanceWindow())
            .withDBParameterGroupName(getDbParameterGroupName())
            .withBackupRetentionPeriod(getBackupRetentionPeriod())
            .withPreferredBackupWindow(getPreferredBackupWindow()).withMultiAZ(getMultiAZ())
            .withEngineVersion(getEngineVersion()).withAutoMinorVersionUpgrade(getAutoMinorVersionUpgrade())
            .withIops(getIops()).withOptionGroupName(getOptionGroupName()).withStorageType(getStorageType())
            .withTdeCredentialArn(getTdeCredentialArn()).withTdeCredentialPassword(getTdeCredentialPassword());
    dbInstance = rds.modifyDBInstance(request);
    getLogger().info("Modify RDS instance requested: {}", dbInstance.getDBInstanceIdentifier());
}