List of usage examples for com.amazonaws.services.rds.model ModifyDBInstanceRequest ModifyDBInstanceRequest
public ModifyDBInstanceRequest()
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()); }