List of usage examples for com.amazonaws.services.rds AmazonRDSClient describeDBInstances
@Override
public DescribeDBInstancesResult describeDBInstances(DescribeDBInstancesRequest request)
Returns information about provisioned RDS instances.
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 . j a v a 2 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:com.cloudera.director.aws.rds.RDSInstanceTemplateConfigurationValidator.java
License:Apache License
/** * Validates that no database instance with the specified identifier already * exists.//w w w . ja v a2 s . c om * * @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.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 w w. j a v a 2 s . c o 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); } } } }