List of usage examples for com.amazonaws.services.rds AmazonRDS describeDBInstances
DescribeDBInstancesResult describeDBInstances(DescribeDBInstancesRequest describeDBInstancesRequest);
Returns information about provisioned RDS instances.
From source file:com.haskins.cloudtrailviewer.dialog.resourcedetail.detailpanels.RdsInstanceDetail.java
License:Open Source License
@Override public String retrieveDetails(ResourceDetailRequest detailRequest) { String response = null;/*from w ww .j av a 2 s . c o m*/ try { AmazonRDS client = new AmazonRDSClient(credentials); client.setRegion(Region.getRegion(Regions.fromName(detailRequest.getRegion()))); DescribeDBInstancesRequest request = new DescribeDBInstancesRequest(); request.setDBInstanceIdentifier(detailRequest.getResourceName()); DescribeDBInstancesResult result = client.describeDBInstances(request); buildUI(result); } catch (IllegalArgumentException | AmazonClientException e) { response = e.getMessage(); LOGGER.log(Level.WARNING, "Problem retrieving RDS details from AWS", e); } return response; }
From source file:fr.xebia.cloud.amazon.aws.tools.AmazonAwsUtils.java
License:Apache License
/** * <p>// www .jav a2 s . c o m * Wait for the database creation and returns a {@link DBInstance} with up * to date values. * </p> * <p> * Note: some information are missing of the {@link DBInstance} returned by * {@link AmazonRDS#describeDBInstances(DescribeDBInstancesRequest)} as long * as the instance is "creating" rather than "available" (e.g. * {@link DBInstance#getEndpoint()} that holds the ip address). * </p> * * @param dbInstance * @param rds * @return up to date 'available' dbInstance * @throws DBInstanceNotFoundException the given <code>dbInstance</code> no longer exists (e.g. it * has been destroyed, etc). */ @Nonnull public static DBInstance awaitForDbInstanceCreation(@Nonnull DBInstance dbInstance, @Nonnull AmazonRDS rds) throws DBInstanceNotFoundException { logger.info( "Get Instance " + dbInstance.getDBInstanceIdentifier() + "/" + dbInstance.getDBName() + " status"); while (!"available".equals(dbInstance.getDBInstanceStatus())) { logger.info("Instance " + dbInstance.getDBInstanceIdentifier() + "/" + dbInstance.getDBName() + " not yet available, sleep..."); try { // 20 s because MySQL creation takes much more than 60s Thread.sleep(20 * 1000); } catch (InterruptedException e) { throw Throwables.propagate(e); } DescribeDBInstancesRequest describeDbInstanceRequest = new DescribeDBInstancesRequest() .withDBInstanceIdentifier(dbInstance.getDBInstanceIdentifier()); DescribeDBInstancesResult describeDBInstancesResult = rds .describeDBInstances(describeDbInstanceRequest); List<DBInstance> dbInstances = describeDBInstancesResult.getDBInstances(); Preconditions.checkState(dbInstances.size() == 1, "Exactly 1 db instance expected : %S", dbInstances); dbInstance = Iterables.getFirst(dbInstances, null); } return dbInstance; }
From source file:jp.classmethod.aws.gradle.rds.AmazonRDSDescribeInstancesTask.java
License:Apache License
@TaskAction public void describeDBInstances() { // NOPMD // to enable conventionMappings feature String dbInstanceIdentifier = getDbInstanceIdentifier(); AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class); AmazonRDS rds = ext.getClient(); try {/*ww w .j a va 2s. c o m*/ DescribeDBInstancesRequest request = new DescribeDBInstancesRequest().withMaxRecords(getMaxRecords()); if (getDbInstanceIdentifier() != null && getDbInstanceIdentifier().length() > 0) { request.withDBInstanceIdentifier(getDbInstanceIdentifier()); } if (getFilters() != null) { request.withFilters(getFilters().entrySet().stream() .map(it -> new Filter().withName(it.getKey().toString()).withValues(it.getValue())) .collect(Collectors.toList())); } DescribeDBInstancesResult dir = rds.describeDBInstances(request); dbInstances = dir.getDBInstances(); } catch (AmazonServiceException e) { throw new GradleException("Fail to describe instance: " + dbInstanceIdentifier, e); } }
From source file:jp.classmethod.aws.gradle.rds.AmazonRDSDescribeInstanceTask.java
License:Apache License
@TaskAction public void waitInstanceForStatus() { // NOPMD // to enable conventionMappings feature String dbInstanceIdentifier = getDbInstanceIdentifier(); List<String> successStatuses = getSuccessStatuses(); List<String> waitStatuses = getWaitStatuses(); int loopTimeout = getLoopTimeout(); int loopWait = getLoopWait(); if (dbInstanceIdentifier == null) { throw new GradleException("dbInstanceIdentifier is not specified"); }/*from w ww . ja v a 2s. co m*/ AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class); AmazonRDS rds = ext.getClient(); long start = System.currentTimeMillis(); while (true) { if (System.currentTimeMillis() > start + (loopTimeout * 1000)) { throw new GradleException("Timeout"); } try { DescribeDBInstancesResult dir = rds.describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceIdentifier)); dbInstance = dir.getDBInstances().get(0); found = true; lastStatus = dbInstance.getDBInstanceStatus(); if (successStatuses.contains(lastStatus)) { getLogger().info("Description of DB instance {} is now {}.", dbInstanceIdentifier, lastStatus); break; } else if (waitStatuses.contains(lastStatus)) { getLogger().info("Description of DB instance {} is {}...", dbInstanceIdentifier, lastStatus); try { Thread.sleep(loopWait * 1000); } catch (InterruptedException e) { throw new GradleException("Sleep interrupted", e); } } else { // fail when current status is not waitStatuses or successStatuses throw new GradleException("Status of " + dbInstanceIdentifier + " is " + lastStatus + ". It seems to be failed."); } } catch (DBInstanceNotFoundException e) { throw new GradleException(dbInstanceIdentifier + " is not exists", e); } catch (AmazonServiceException e) { if (found) { break; } else { throw new GradleException("Fail to describe instance: " + dbInstanceIdentifier, e); } } } }
From source file:jp.classmethod.aws.gradle.rds.AmazonRDSMigrateDBInstanceTask.java
License:Apache License
@TaskAction public void createOrUpdateDBInstance() throws InterruptedException { AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class); AmazonRDS rds = ext.getClient(); try {//w ww. j ava 2 s .c o m DescribeDBInstancesResult describeDBInstancesResult = rds.describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceIdentifier)); DBInstance dbInstance = describeDBInstancesResult.getDBInstances().get(0); if (stableStatuses.contains(dbInstance.getDBInstanceStatus())) { modifyDBInstance(rds); } else { throw new GradleException("Invalid status for update: " + dbInstance.getDBInstanceStatus()); } } catch (DBInstanceNotFoundException e) { getLogger().info(e.getMessage()); createDBInstance(rds); } }
From source file:jp.classmethod.aws.gradle.rds.AmazonRDSWaitInstanceStatusTask.java
License:Apache License
@TaskAction public void waitInstanceForStatus() { // NOPMD // to enable conventionMappings feature String dbInstanceIdentifier = getDbInstanceIdentifier(); List<String> successStatuses = getSuccessStatuses(); List<String> waitStatuses = getWaitStatuses(); int loopTimeout = getLoopTimeout(); int loopWait = getLoopWait(); if (dbInstanceIdentifier == null) { throw new GradleException("dbInstanceIdentifier is not specified"); }/*from w ww . j av a 2 s .c o m*/ AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class); AmazonRDS rds = ext.getClient(); long start = System.currentTimeMillis(); while (true) { if (System.currentTimeMillis() > start + (loopTimeout * 1000)) { throw new GradleException("Timeout"); } try { DescribeDBInstancesResult dir = rds.describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceIdentifier)); DBInstance dbInstance = dir.getDBInstances().get(0); found = true; lastStatus = dbInstance.getDBInstanceStatus(); if (successStatuses.contains(lastStatus)) { getLogger().info("Status of DB instance {} is now {}.", dbInstanceIdentifier, lastStatus); break; } else if (waitStatuses.contains(lastStatus)) { getLogger().info("Status of DB instance {} is {}...", dbInstanceIdentifier, lastStatus); try { Thread.sleep(loopWait * 1000); } catch (InterruptedException e) { throw new GradleException("Sleep interrupted", e); } } else { // fail when current status is not waitStatuses or successStatuses throw new GradleException("Status of " + dbInstanceIdentifier + " is " + lastStatus + ". It seems to be failed."); } } catch (DBInstanceNotFoundException e) { throw new GradleException(dbInstanceIdentifier + " is not exists", e); } catch (AmazonServiceException e) { if (found) { break; } else { throw new GradleException("Fail to describe instance: " + dbInstanceIdentifier, e); } } } }
From source file:org.xmlsh.aws.gradle.rds.AmazonRDSWaitInstanceStatusTask.java
License:BSD License
@TaskAction public void waitInstanceForStatus() { // to enable conventionMappings feature String dbInstanceIdentifier = getDbInstanceIdentifier(); List<String> successStatuses = getSuccessStatuses(); List<String> waitStatuses = getWaitStatuses(); int loopTimeout = getLoopTimeout(); int loopWait = getLoopWait(); if (dbInstanceIdentifier == null) throw new GradleException("dbInstanceIdentifier is not specified"); AmazonRDSPluginExtension ext = getProject().getExtensions().getByType(AmazonRDSPluginExtension.class); AmazonRDS rds = ext.getClient(); long start = System.currentTimeMillis(); while (true) { if (System.currentTimeMillis() > start + (loopTimeout * 1000)) { throw new GradleException("Timeout"); }/*from w w w.j a v a 2 s .co m*/ try { DescribeDBInstancesResult dir = rds.describeDBInstances( new DescribeDBInstancesRequest().withDBInstanceIdentifier(dbInstanceIdentifier)); DBInstance dbInstance = dir.getDBInstances().get(0); found = true; lastStatus = dbInstance.getDBInstanceStatus(); if (successStatuses.contains(lastStatus)) { getLogger().info("Status of DB instance {} is now {}.", dbInstanceIdentifier, lastStatus); break; } else if (waitStatuses.contains(lastStatus)) { getLogger().info("Status of DB instance {} is {}...", dbInstanceIdentifier, lastStatus); try { Thread.sleep(loopWait * 1000); } catch (InterruptedException e) { throw new GradleException("Sleep interrupted", e); } } else { // fail when current status is not waitStatuses or successStatuses throw new GradleException("Status of " + dbInstanceIdentifier + " is " + lastStatus + ". It seems to be failed."); } } catch (DBInstanceNotFoundException e) { throw new GradleException(dbInstanceIdentifier + " is not exists", e); } catch (AmazonServiceException e) { if (found) { break; } else { throw new GradleException("Fail to describe instance: " + dbInstanceIdentifier, e); } } } }