Example usage for com.amazonaws.services.rds.model DBInstance getDBInstanceStatus

List of usage examples for com.amazonaws.services.rds.model DBInstance getDBInstanceStatus

Introduction

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

Prototype


public String getDBInstanceStatus() 

Source Link

Document

Specifies the current state of this database.

Usage

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);
    }
}