List of usage examples for com.amazonaws.services.rds.model DBInstance getDBInstanceStatus
public String getDBInstanceStatus()
Specifies the current state of this database.
From source file:RDSManager.java
public String createRDS() { String endPointAddr = null;//from w w w . ja va 2 s.c o m try { System.out.println("Creating RDS"); CreateDBParameterGroupRequest cdpgr = new CreateDBParameterGroupRequest(); cdpgr.setDBParameterGroupName(DB_PARAM_GROUP_NAME); cdpgr.setDescription(DB_PARAM_GROU_DESC); cdpgr.setDBParameterGroupFamily(DB_PARAM_GROUP_FAMILY); rds.createDBParameterGroup(cdpgr); Collection<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter().withParameterName("max_connections").withParameterValue("200") .withApplyMethod("immediate")); parameters.add(new Parameter().withParameterName("max_allowed_packet").withParameterValue("999999") .withApplyMethod("immediate")); rds.modifyDBParameterGroup(new ModifyDBParameterGroupRequest() .withDBParameterGroupName(DB_PARAM_GROUP_NAME).withParameters(parameters)); /// create configuration of instance CreateDBInstanceRequest cdbir = new CreateDBInstanceRequest(); cdbir.setEngine(RDS_ENGINE); cdbir.setEngineVersion(ENGINE_VERSION); cdbir.setLicenseModel(LICENSE_MODEL); cdbir.setAutoMinorVersionUpgrade(AUTO_MINOR_VERSION_UPGRADE); cdbir.setDBInstanceClass(DB_INSTANCE_TYPE); cdbir.setMultiAZ(MULTI_AZ); cdbir.setAllocatedStorage(ALLOCATED_STORAGE); cdbir.setDBInstanceIdentifier(DBInstanceIdentifier); cdbir.setMasterUsername(MASTER_USER_NAME); cdbir.setMasterUserPassword(MasterUserPassword); cdbir.setDBName(DB_NAME); cdbir.setPort(DB_PORT); cdbir.setBackupRetentionPeriod(BackupRetentionPeriod); cdbir.setPubliclyAccessible(PubliclyAccessible); cdbir.setDBParameterGroupName(DB_PARAM_GROUP_NAME); ArrayList<String> arrDbSecur = new ArrayList<String>(); arrDbSecur.add(SECURITY_GROUP_NAME); cdbir.setDBSecurityGroups(arrDbSecur); System.out.println("Creating RDS DB Instance"); // creating instance DBInstance dbi = rds.createDBInstance(cdbir); // wait till instance created boolean isWaiting = true; while (isWaiting) { Thread.sleep(30000); DescribeDBInstancesRequest request = new DescribeDBInstancesRequest(); request.setDBInstanceIdentifier(dbi.getDBInstanceIdentifier()); DescribeDBInstancesResult result = rds.describeDBInstances(request); List<DBInstance> d = result.getDBInstances(); Iterator<DBInstance> i = d.iterator(); while (i.hasNext()) { DBInstance d1 = i.next(); System.out.println("RDS Status : " + d1.getDBInstanceStatus()); if (d1.getDBInstanceStatus().equals("available")) { isWaiting = false; System.out.println("RDS Endpoint Address : " + d1.getEndpoint().getAddress()); endPointAddr = d1.getEndpoint().getAddress(); } } } } catch (Exception e) { e.printStackTrace(); } return endPointAddr; }
From source file:com.airbnb.billow.RDSInstance.java
public RDSInstance(DBInstance instance, DBCluster cluster, List<Tag> tagList) { this.allocatedStorage = instance.getAllocatedStorage(); this.autoMinorVersionUpgrade = instance.getAutoMinorVersionUpgrade(); this.availabilityZone = instance.getAvailabilityZone(); this.backupRetentionPeriod = instance.getBackupRetentionPeriod(); this.characterSetName = instance.getCharacterSetName(); this.dBInstanceClass = instance.getDBInstanceClass(); this.dBInstanceIdentifier = instance.getDBInstanceIdentifier(); this.dBInstanceStatus = instance.getDBInstanceStatus(); this.dBClusterIdentifier = instance.getDBClusterIdentifier(); this.dBName = instance.getDBName(); this.dBParameterGroups = instance.getDBParameterGroups(); this.dBSecurityGroups = instance.getDBSecurityGroups(); this.dBSubnetGroup = instance.getDBSubnetGroup(); this.endpoint = instance.getEndpoint(); if (this.endpoint != null) { this.hostname = endpoint.getAddress(); this.privateIP = getPrivateIp(hostname); } else {/*from w w w .j a va 2 s. c o m*/ this.hostname = null; this.privateIP = null; } this.engine = instance.getEngine(); this.engineVersion = instance.getEngineVersion(); this.instanceCreateTime = instance.getInstanceCreateTime(); this.iops = instance.getIops(); this.latestRestorableTime = instance.getLatestRestorableTime(); this.licenseModel = instance.getLicenseModel(); this.masterUsername = instance.getMasterUsername(); this.multiAZ = instance.getMultiAZ(); this.optionGroupMemberships = instance.getOptionGroupMemberships(); this.pendingModifiedValues = instance.getPendingModifiedValues(); this.preferredBackupWindow = instance.getPreferredBackupWindow(); this.preferredMaintenanceWindow = instance.getPreferredMaintenanceWindow(); this.publiclyAccessible = instance.getPubliclyAccessible(); this.readReplicaDBInstanceIdentifiers = instance.getReadReplicaDBInstanceIdentifiers(); this.readReplicaSourceDBInstanceIdentifier = instance.getReadReplicaSourceDBInstanceIdentifier(); this.secondaryAvailabilityZone = instance.getSecondaryAvailabilityZone(); this.statusInfos = instance.getStatusInfos(); this.vpcSecurityGroups = instance.getVpcSecurityGroups(); this.isMaster = checkIfMaster(instance, cluster); this.tags = new HashMap<>(tagList.size()); for (Tag tag : tagList) { this.tags.put(tag.getKey(), tag.getValue()); } }
From source file:com.amediamanager.dao.RdsDbEndpointRetriever.java
License:Apache License
@Override public List<Endpoint> getReadReplicaEndpoints(String dbInstanceId) { List<Endpoint> endpoints = null; DescribeDBInstancesResult result = rds .describeDBInstances(new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceId)); // If the master exist and has any read replicas if (result.getDBInstances().size() == 1 && result.getDBInstances().get(0).getReadReplicaDBInstanceIdentifiers().size() > 0) { endpoints = new ArrayList<Endpoint>(); for (String readReplicaId : result.getDBInstances().get(0).getReadReplicaDBInstanceIdentifiers()) { DBInstance rrInstance = rds .describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(readReplicaId)) .getDBInstances().get(0); if (rrInstance.getDBInstanceStatus().equals("available")) { endpoints.add(rrInstance.getEndpoint()); }/* ww w . j ava 2 s. com*/ } if (endpoints.size() == 0) { endpoints = null; } } return endpoints; }
From source file:com.AWSManagementAntTask.dao.RDSDao.java
public AWSMATDto find() { List<IAWSDto> dtolist = new ArrayList<IAWSDto>(); for (DBInstance res : rds.describeDBInstances().getDBInstances()) { RDSDto dto = new RDSDto(); dto.setRegionName(this.dto.getRegionName()); dto.setDBInstanceIdentifier(res.getDBInstanceIdentifier()); dto.setDBName(res.getDBName());//from w w w. j av a 2s. c o m dto.setDBInstanceStatus(res.getDBInstanceStatus()); dto.setInstanceCreateTime(res.getInstanceCreateTime()); dto.setEngine(res.getEngine()); dto.setEngineVersion(res.getEngineVersion()); dto.setLicenseModel(res.getLicenseModel()); dto.setStorageType(res.getStorageType()); dto.setAllocatedStorage(res.getAllocatedStorage()); dto.setDBInstanceClass(res.getDBInstanceClass()); dto.setMasterUsername(res.getMasterUsername()); dtolist.add(dto); } this.dto.setRdslist(dtolist); return this.dto; }
From source file:com.cloudera.director.aws.rds.RDSProvider.java
License:Apache License
@Override public Map<String, InstanceState> getInstanceState(RDSInstanceTemplate template, Collection<String> virtualInstanceIds) { Map<String, InstanceState> instanceStateByVirtualInstanceId = Maps .newHashMapWithExpectedSize(virtualInstanceIds.size()); // RDS does not allow batching of DB instance status requests. for (String virtualInstanceId : virtualInstanceIds) { InstanceState instanceState;//from w w w. j a va2 s.c o m try { DescribeDBInstancesResult result = client.describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(virtualInstanceId)); LOG.info("<< Result: {}", result); // Paging not required, should only ever be one instance returned if (result.getDBInstances().size() > 0) { DBInstance dbInstance = result.getDBInstances().get(0); RDSStatus status = RDSStatus.valueOfRDSString(dbInstance.getDBInstanceStatus()); instanceState = RDSInstanceState.fromRdsStatus(status); } else { instanceState = RDSInstanceState.fromRdsStatus(null); } } catch (DBInstanceNotFoundException e) { instanceState = RDSInstanceState.fromRdsStatus(null); } instanceStateByVirtualInstanceId.put(virtualInstanceId, instanceState); } return instanceStateByVirtualInstanceId; }
From source file:com.github.blacklocus.rdsecho.AbstractEchoIntermediateStage.java
License:Open Source License
@Override public Boolean call() throws Exception { // Validate state, make sure we're operating on what we expect to. String tagEchoManaged = echo.getTagEchoManaged(); String tagEchoStage = echo.getTagEchoStage(); LOG.info("Locating latest Echo managed instance (tagged with {}=true) in stage '{}' (tagged with {}={}).", tagEchoManaged, requisiteStage, tagEchoStage, requisiteStage); Optional<DBInstance> instanceOpt = echo.lastEchoInstance(); if (!instanceOpt.isPresent()) { LOG.error(" Unable to locate Echo-managed instance. Is there one? Aborting.", tagEchoManaged); return false; }/*from www .j av a 2s .c o m*/ DBInstance instance = instanceOpt.get(); Optional<Tag> stageOpt = echo.instanceStage(instance.getDBInstanceIdentifier()); if (!stageOpt.isPresent()) { LOG.error("Unable to read Echo stage tag so cannot determine stage. To forcefully set the stage, edit " + "the instance's tags to add {}={} and run this modify operation again. " + "Cannot continue as it is so exiting.", tagEchoStage, requisiteStage); return false; } String instanceStage = stageOpt.get().getValue(); if (!requisiteStage.equals(instanceStage)) { LOG.error("Current Echo stage on instance is {}={} but needs to be {}={}. To forcefully set the stage, " + "edit the instance's tags to set the required stage and run this modify operation again. " + "Cannot continue as it is so exiting.", tagEchoStage, instanceStage, tagEchoStage, requisiteStage); return false; } // Looks like we found a good echo instance, but is it available to us. String dbInstanceId = instance.getDBInstanceIdentifier(); LOG.info(" Located echo-managed instance with identifier {}", dbInstanceId); if (!"available".equals(instance.getDBInstanceStatus())) { LOG.error(" Instance does not have status 'available' (saw {}) so aborting.", instance.getDBInstanceStatus()); return false; } // Do the part special to traversing the this stage if (traverseStage(instance)) { // Advance. This replaces, same-named tags. rds.addTagsToResource(new AddTagsToResourceRequest() .withResourceName(RdsFind.instanceArn(cfg.region(), cfg.accountNumber(), instance.getDBInstanceIdentifier())) .withTags(new Tag().withKey(tagEchoStage).withValue(resultantStage))); return true; } else { return false; } }
From source file:com.gs.obevo.amazon.CreateDbInstance.java
License:Apache License
private void describe(String dbInstanceIdentifier) throws Exception { while (true) { DescribeDBInstancesRequest request = new DescribeDBInstancesRequest() .withDBInstanceIdentifier(dbInstanceIdentifier); DescribeDBInstancesResult response = client.describeDBInstances(request); DBInstance dbInstance = response.getDBInstances().get(0); if (!dbInstance.getDBInstanceStatus().equalsIgnoreCase("creating")) { System.out.println("Done! " + response); System.out.println(dbInstance.getEndpoint().getAddress()); System.out.println(dbInstance.getEndpoint().getPort()); break; }/* www. j ava2 s . co m*/ System.out.println("Not done - will wait 10s: " + response); Thread.sleep(10000L); } }
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); }// w w w.j av a 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:com.jaspersoft.jasperserver.war.amazon.client.AwsDataSourceServiceImpl.java
License:Open Source License
private List<AwsDBInstanceDTO> toRDSInstancesDTOs(List<DBInstance> dbInstances, String amazonDBService) { List<AwsDBInstanceDTO> awsDBInstanceDTOs = new ArrayList<AwsDBInstanceDTO>(); if (dbInstances != null && dbInstances.size() > 0) { for (DBInstance dbInstance : dbInstances) { if (dbInstance.getDBInstanceStatus().toLowerCase().equals(awsDataSourceActiveStatus)) { AwsDBInstanceDTO awsDBInstanceDTO = new AwsDBInstanceDTO(); awsDBInstanceDTO.setdBInstanceIdentifier(dbInstance.getDBInstanceIdentifier()); awsDBInstanceDTO.setdBName(dbInstance.getDBName()); awsDBInstanceDTO.setEngine(dbInstance.getEngine()); awsDBInstanceDTO.setEngineVersion(dbInstance.getEngineVersion()); awsDBInstanceDTO.setAddress(dbInstance.getEndpoint().getAddress()); awsDBInstanceDTO.setPort(dbInstance.getEndpoint().getPort()); awsDBInstanceDTO.setAmazonDbService(amazonDBService.toLowerCase()); updateWithConnectionUrl(awsDBInstanceDTO); awsDBInstanceDTOs.add(awsDBInstanceDTO); }// ww w . j a v a2s . c o m } } else { return generateDBServiceInfoStatus(amazonDBService, "resource.dataSource.aws.empty"); } return awsDBInstanceDTOs; }
From source file:com.kpbird.aws.Main.java
public void createRDS() { try {//ww w.j a va 2 s .co m log.Info("About to Launch RDS"); log.Info("Createing DB Parameger Group"); CreateDBParameterGroupRequest cdpgr = new CreateDBParameterGroupRequest(); cdpgr.setDBParameterGroupName(DBParameterGroupName); cdpgr.setDescription(DBParameterGroupDescription); cdpgr.setDBParameterGroupFamily(DBParameterGroupFamily); rdsclient.createDBParameterGroup(cdpgr); Collection<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter().withParameterName(DBParameterName1).withParameterValue(DBParameterValue1) .withApplyMethod(DBParameterApplyMethod1)); parameters.add(new Parameter().withParameterName(DBParameterName2).withParameterValue(DBParameterValue2) .withApplyMethod(DBParameterApplyMethod2)); rdsclient.modifyDBParameterGroup(new ModifyDBParameterGroupRequest() .withDBParameterGroupName(DBParameterGroupName).withParameters(parameters)); log.Info("Create DB Instance Request"); /// create configuration of instance CreateDBInstanceRequest cdbir = new CreateDBInstanceRequest(); cdbir.setEngine(rdsengine); cdbir.setEngineVersion(EngineVersion); cdbir.setLicenseModel(LicenseModel); cdbir.setAutoMinorVersionUpgrade(AutoMinorVersionUpgrade); cdbir.setDBInstanceClass(DBInstanceClass); cdbir.setMultiAZ(MultiAZ); cdbir.setAllocatedStorage(AllocatedStorage); cdbir.setDBInstanceIdentifier(DBInstanceIdentifier); cdbir.setMasterUsername(MasterUsername); cdbir.setMasterUserPassword(MasterUserPassword); cdbir.setDBName(DBName); cdbir.setPort(Port); cdbir.setBackupRetentionPeriod(BackupRetentionPeriod); cdbir.setPubliclyAccessible(PubliclyAccessible); cdbir.setDBParameterGroupName(DBParameterGroupName); ArrayList<String> arrDbSecur = new ArrayList<String>(); arrDbSecur.add(DBSecurityGroupName); cdbir.setDBSecurityGroups(arrDbSecur); log.Info("Creating RDS DB Instance"); // creating instance DBInstance dbi = rdsclient.createDBInstance(cdbir); // wait till instance created boolean isWaiting = true; while (isWaiting) { Thread.sleep(5000); DescribeDBInstancesRequest request = new DescribeDBInstancesRequest(); request.setDBInstanceIdentifier(dbi.getDBInstanceIdentifier()); DescribeDBInstancesResult result = rdsclient.describeDBInstances(request); List<DBInstance> d = result.getDBInstances(); Iterator<DBInstance> i = d.iterator(); while (i.hasNext()) { DBInstance d1 = i.next(); log.Info("RDS Status : " + d1.getDBInstanceStatus()); if (d1.getDBInstanceStatus().equals("available")) { isWaiting = false; log.Info("RDS Endpoint : " + d1.getEndpoint().getAddress()); } } } } catch (Exception e) { e.printStackTrace(); System.exit(0); } }