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

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

Introduction

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

Prototype

DescribeDBInstancesRequest

Source Link

Usage

From source file:RDSManager.java

public String createRDS() {
    String endPointAddr = null;/*w ww  . j  a v  a  2s.  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:beanstalk.BeansDatabase.java

License:Apache License

public DatabaseObject createDatabase(String AWSKeyId, String AWSSecretKey, String dbname, String dbType,
        String dbIdentifier, String dbClass, int dbSize, String dbUser, String dbPassword) {//throws Exception {
    DatabaseObject dbobj = new DatabaseObject();

    String endpoint_str = "";
    BasicAWSCredentials basic_credentials = new BasicAWSCredentials(AWSKeyId, AWSSecretKey);

    AmazonRDSClient rDSClient = new AmazonRDSClient(basic_credentials);

    //Minimum size per db type, as described in API Reference
    if (dbType != null && dbType.equalsIgnoreCase("MySQL") && dbSize < 5) {
        dbSize = 5;//w w w  .jav a2  s  .co  m
    }

    if (dbType != null && (dbType.equalsIgnoreCase("oracle-se1") || dbType.equalsIgnoreCase("oracle-se")
            || dbType.equalsIgnoreCase("oracle-ee")) && dbSize < 10) {
        dbSize = 10;
    }

    CreateDBInstanceRequest create_dbinstance = new CreateDBInstanceRequest();
    create_dbinstance.setDBName(dbname);
    create_dbinstance.setEngine(dbType);
    create_dbinstance.setMasterUsername(dbUser);
    create_dbinstance.setMasterUserPassword(dbPassword);
    create_dbinstance.setDBInstanceIdentifier(dbIdentifier);
    create_dbinstance.setAllocatedStorage(dbSize);//min size =5GB for mysql,10gb for oracle
    create_dbinstance.setDBInstanceClass("db.m1.small");//db.m1.small//db.m1.large//db.m1.xlarge//db.m2.xlarge//db.m2.2xlarge//db.m2.4xlarge....
    String group = "c4sallowallipgroup";
    Vector sec_groups = new Vector();
    sec_groups.add(group);
    create_dbinstance.setDBSecurityGroups(sec_groups);
    DBInstance dbInstance_create = new DBInstance();
    System.out.println("will call createDBInstance");

    try {
        dbInstance_create = rDSClient.createDBInstance(create_dbinstance);
    } catch (AmazonClientException amazonClientException) {
        System.out.println("Error in Database Creation.");
    }
    System.out.println("called createDBInstance");

    String status = "";
    System.out.println("called createDBInstance");

    //wait 5 minutes for the first time
    int busyWaitingTime = 3000;//3sec
    //int busyWaitingTime=300000;
    //int busyWaitingTime=40000;  

    while (!status.equalsIgnoreCase("available")) {
        System.out.println("just got inside while");

        try {
            System.out.println("preparing for sleep");

            Thread.sleep(busyWaitingTime);
            System.out.println("woke up");

        } catch (InterruptedException ex) {
            Logger.getLogger(BeansDatabase.class.getName()).log(Level.SEVERE, null, ex);

        }

        DescribeDBInstancesRequest describeDBInstancesRequest = new DescribeDBInstancesRequest();

        describeDBInstancesRequest.setDBInstanceIdentifier(dbname + "cloud4soaid");
        //describeDBInstancesRequest.setDBInstanceIdentifier("c4sdb2cloud4soaid");
        DBInstance dbInstance = new DBInstance();

        System.out.println("will call describeDBInstances");
        DescribeDBInstancesResult describeDBInstances = rDSClient
                .describeDBInstances(describeDBInstancesRequest);
        System.out.println("called describeDBInstances");

        List<DBInstance> dbInstances = describeDBInstances.getDBInstances();

        System.out.println("size--->" + dbInstances.size());
        System.out.println("status--->" + dbInstances.get(0).getDBInstanceStatus());
        System.out.println("dbname--->" + dbInstances.get(0).getDBName());
        dbobj.setDbhost(dbInstances.get(0).getDBInstanceStatus());

        if (dbInstances.get(0).getEndpoint() != null) {

            System.out.println("endpoint--->" + dbInstances.get(0).getEndpoint().getAddress());
            System.out.println("port--->" + dbInstances.get(0).getEndpoint().getPort());
            System.out.println("all--->" + dbInstances.get(0).toString());

            dbobj.setDbhost(dbInstances.get(0).getEndpoint().getAddress());
            dbobj.setDbname(dbInstances.get(0).getDBName());
            dbobj.setPort(dbInstances.get(0).getEndpoint().getPort());

            status = dbInstances.get(0).getDBInstanceStatus();

            //after the first 5 minutes test every minute
            busyWaitingTime = 60000;
        }
    }
    System.out.println("just got outside while");
    System.out.println(
            "just got outside while and endpoint is :" + dbobj.getDbhost() + ", name is " + dbobj.getDbname());

    /*
     *
     * DescribeDBInstancesRequest describeDBInstancesRequest = new
     * DescribeDBInstancesRequest();
     *
     * describeDBInstancesRequest.setDBInstanceIdentifier(dbname +
     * "cloud4soaid");
     * //describeDBInstancesRequest.setDBInstanceIdentifier("c4sdb2cloud4soaid");
     * DBInstance dbInstance = new DBInstance();
     *
     * System.out.println("will call describeDBInstances");
     * DescribeDBInstancesResult describeDBInstances =
     * rDSClient.describeDBInstances(describeDBInstancesRequest);
     * System.out.println("called describeDBInstances");
     *
     * List<DBInstance> dbInstances = describeDBInstances.getDBInstances();
     *
     * System.out.println("size--->" + dbInstances.size());
     * System.out.println("status--->" +
     * dbInstances.get(0).getDBInstanceStatus());
     * System.out.println("dbname--->" + dbInstances.get(0).getDBName());
     * dbobj.setDbhost(dbInstances.get(0).getDBInstanceStatus());
     *
     *
     * if(dbInstances.get(0).getEndpoint()!=null){
     *
     *
     * System.out.println("endpoint--->" +
     * dbInstances.get(0).getEndpoint().getAddress());
     * System.out.println("port--->" +
     * dbInstances.get(0).getEndpoint().getPort());
     * System.out.println("all--->" + dbInstances.get(0).toString());
     *
     * dbobj.setDbhost(dbInstances.get(0).getEndpoint().getAddress());
     * dbobj.setDbname(dbInstances.get(0).getDBName());
     * dbobj.setPort(dbInstances.get(0).getEndpoint().getPort()); }
     */

    return dbobj;
}

From source file:beanstalk.BeansDatabase.java

License:Apache License

public DatabaseObject getDBInstanceInfo(String AWSKeyId, String AWSSecretKey, String dbname) {//throws Exception {
    BasicAWSCredentials basic_credentials = new BasicAWSCredentials(AWSKeyId, AWSSecretKey);
    AmazonRDSClient rDSClient = new AmazonRDSClient(basic_credentials);
    DescribeDBInstancesRequest describeDBInstancesRequest = new DescribeDBInstancesRequest();
    describeDBInstancesRequest.setDBInstanceIdentifier(dbname + "cloud4soaid");
    DBInstance dbInstance = new DBInstance();
    DescribeDBInstancesResult describeDBInstances = rDSClient.describeDBInstances(describeDBInstancesRequest);
    List<DBInstance> dbInstances = describeDBInstances.getDBInstances();

    System.out.println("size--->" + dbInstances.size());
    System.out.println("dbname--->" + dbInstances.get(0).getDBName());
    System.out.println("endpoint--->" + dbInstances.get(0).getEndpoint().getAddress());
    System.out.println("port--->" + dbInstances.get(0).getEndpoint().getPort());
    System.out.println("all--->" + dbInstances.get(0).toString());
    DatabaseObject dbobj = new DatabaseObject();
    dbobj.setDbhost(dbInstances.get(0).getEndpoint().getAddress());
    dbobj.setDbname(dbInstances.get(0).getDBName());
    dbobj.setPort(dbInstances.get(0).getEndpoint().getPort());

    return dbobj;

}

From source file:beanstalk.BeansDatabase.java

License:Apache License

public boolean deleteDatabase(String AWSKeyId, String AWSSecretKey, String dbIdentifier) {//throws Exception {

    boolean ret = false;
    //  credentials = new PropertiesCredentials(BeanstalkDeployNoGUI.class.getResourceAsStream("AwsCredentials.properties"))
    BasicAWSCredentials basic_credentials = new BasicAWSCredentials(AWSKeyId, AWSSecretKey);

    //  SimpleDBUtils simpledb= new SimpleDBUtils();
    AmazonRDSClient rDSClient = new AmazonRDSClient(basic_credentials);
    // RestoreDBInstanceFromDBSnapshotRequest req= new RestoreDBInstanceFromDBSnapshotRequest();
    //  req.setDBName("dbname");
    //  req.setPort(3306);

    DescribeDBInstancesRequest ddbi = new DescribeDBInstancesRequest();

    DBInstance dbins = new DBInstance();
    dbins.getEndpoint();/*  ww w .  j  a  v a  2  s  .  c  om*/
    DeleteDBInstanceRequest delRequest = new DeleteDBInstanceRequest(dbIdentifier);
    // rDSClient.restoreDBInstanceFromDBSnapshot(req);
    delRequest.setSkipFinalSnapshot(true);
    rDSClient.deleteDBInstance(delRequest);

    return ret;
}

From source file:com.amazon.aws.myyoutube.videoUtil.GetRDSInstance.java

License:Open Source License

public static void main(String[] args) throws Exception {

    credentials = new PropertiesCredentials(
            GetRDSInstance.class.getResourceAsStream("AwsCredentials.properties"));

    try {/*from  w  w  w. ja va 2 s . co m*/
        rds = new AmazonRDSClient(credentials);

        /*********************************************
         *  RDS DB
         *********************************************/

        System.out.println("Creating a database instance");

        CreateDBSecurityGroupRequest d = new CreateDBSecurityGroupRequest()
                .withDBSecurityGroupName("javaSecurityGroup1")
                .withDBSecurityGroupDescription("DB security group1");
        rds.createDBSecurityGroup(d);

        AuthorizeDBSecurityGroupIngressRequest auth = new AuthorizeDBSecurityGroupIngressRequest()
                .withDBSecurityGroupName("javaSecurityGroup1")
                //         .withEC2SecurityGroupName("javaSecurityGroup")
                .withCIDRIP("0.0.0.0/0");
        //         .withCIDRIP("216.165.95.69/32");

        DBSecurityGroup dbsecuritygroup = rds.authorizeDBSecurityGroupIngress(auth);
        String[] dBSecurityGroups = { dbsecuritygroup.getDBSecurityGroupName() };

        CreateDBInstanceRequest createDBInstanceRequest = new CreateDBInstanceRequest().withEngine("MySQL")
                .withLicenseModel("general-public-license").withEngineVersion("5.6.13")
                .withDBInstanceClass("db.t1.micro").withMultiAZ(false).withAutoMinorVersionUpgrade(true)
                .withAllocatedStorage(5).withDBInstanceIdentifier("mydbinstance1").withMasterUsername("awsuser")
                .withMasterUserPassword("mypassword").withDBName("dbname1").withPort(3306)
                .withAvailabilityZone(null).withDBSecurityGroups(dBSecurityGroups);

        ArrayList<String> arrDbSecur = new ArrayList<String>();
        arrDbSecur.add("javaSecurityGroup1");
        createDBInstanceRequest.setDBSecurityGroups(arrDbSecur);

        DBInstance dbInstance = rds.createDBInstance(createDBInstanceRequest);

        Thread.sleep(600000);

        DescribeDBInstancesRequest instRequest = new DescribeDBInstancesRequest()
                .withDBInstanceIdentifier("mydbinstance1");

        DescribeDBInstancesResult instres = rds.describeDBInstances(instRequest);

        Endpoint e = instres.getDBInstances().get(0).getEndpoint();
        System.out.println("ENd point " + e.getAddress() + " " + e.getPort());
        System.out.println("Database Created");
        System.out.println("Creating a table");
        //connection
        java.sql.Connection con = null;
        Statement st = null;
        // Format "jdbc:mysql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password;
        String url = "jdbc:mysql://" + e.getAddress() + ":" + e.getPort()
                + "/dbname1?user=awsuser&password=mypassword"; //  "jdbc:mysql://master:password@"+e+"/dbname";
        System.out.println("Url is " + url);
        String user = "awsuser";
        String password = "mypassword";

        con = DriverManager.getConnection(url, user, password);

        System.out.println("Connection created");

        java.sql.Statement stat = con.createStatement();

        String query = "CREATE TABLE Items ( item_id VARCHAR(200), type INTEGER, quantity INTEGER, user VARCHAR(100), price FLOAT(5,2) );";
        stat.execute(query);

        String query1 = "CREATE TABLE WishList ( user VARCHAR(200), wishlistId VARCHAR(100) );";
        stat.execute(query1);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught Exception: " + ase.getMessage());
        System.out.println("Response Status Code: " + ase.getStatusCode());
        System.out.println("Error Code: " + ase.getErrorCode());
        System.out.println("Request ID: " + ase.getRequestId());
    }
}

From source file:com.amediamanager.dao.RdsDbEndpointRetriever.java

License:Apache License

@Override
public Endpoint getMasterDbEndpoint(String dbInstanceId) {
    Endpoint endpoint = null;//from   w w w  .  j a v a2  s .  com

    DescribeDBInstancesResult result = rds
            .describeDBInstances(new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceId));

    if (result.getDBInstances().size() == 1) {
        endpoint = result.getDBInstances().get(0).getEndpoint();
    }

    return endpoint;
}

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//from   ww w. j  a  v  a  2s. co  m
                    .describeDBInstances(
                            new DescribeDBInstancesRequest().withDBInstanceIdentifier(readReplicaId))
                    .getDBInstances().get(0);
            if (rrInstance.getDBInstanceStatus().equals("available")) {
                endpoints.add(rrInstance.getEndpoint());
            }
        }
        if (endpoints.size() == 0) {
            endpoints = null;
        }

    }

    return endpoints;
}

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

License:Apache License

/**
 * Validates that no database instance with the specified identifier already
 * exists.// w w  w . j  a v a2 s .c o m
 *
 * @param client              the RDS client
 * @param identifier          the identifier
 * @param propertyToken       the token representing the configuration property in error
 * @param accumulator         the exception condition accumulator
 * @param localizationContext the localization context
 */
@VisibleForTesting
void checkIdentifierUniqueness(AmazonRDSClient client, String identifier,
        ConfigurationPropertyToken propertyToken, PluginExceptionConditionAccumulator accumulator,
        LocalizationContext localizationContext) {
    DescribeDBInstancesRequest request = new DescribeDBInstancesRequest().withDBInstanceIdentifier(identifier);
    try {
        client.describeDBInstances(request);
        addError(accumulator, propertyToken, localizationContext, null, INSTANCE_ALREADY_EXISTS, identifier);
    } catch (DBInstanceNotFoundException e) {
        /* Good! */
        LOG.debug("Instance {} does not already exist", identifier);
    } catch (AmazonServiceException e) {
        throw Throwables.propagate(e);
    }
}

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  ww  .j a v a  2  s .c  om*/
        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.cloudera.director.aws.rds.RDSProvider.java

License:Apache License

/**
 * Iterates through the instances identified by the specified virtual instance IDs
 * and calls the specified handler on each instance.
 *
 * @param virtualInstanceIds the virtual instance IDs
 * @param instanceHandler    the instance handler
 *//*from  www .jav a 2s. c  om*/
private void forEachInstance(Collection<String> virtualInstanceIds,
        RDSProvider.InstanceHandler instanceHandler) {
    // TODO RDS does not currently support the withFilters parameter, so we have to load one at a
    // time by id
    //DescribeDBInstancesResult result = client.describeDBInstances(new DescribeDBInstancesRequest()
    //    .withFilters(new Filter().withFilterName("tag:" + Tags.CLOUDERA_DIRECTOR_ID)
    //        .withFilterValue(virtualInstanceIds)));
    for (String virtualInstanceId : virtualInstanceIds) {
        DescribeDBInstancesResult result = client.describeDBInstances(
                new DescribeDBInstancesRequest().withDBInstanceIdentifier(virtualInstanceId));
        forEachInstance(result, instanceHandler);
    }
}