本文整理汇总了Java中com.amazonaws.services.cloudformation.model.DescribeStacksRequest类的典型用法代码示例。如果您正苦于以下问题:Java DescribeStacksRequest类的具体用法?Java DescribeStacksRequest怎么用?Java DescribeStacksRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DescribeStacksRequest类属于com.amazonaws.services.cloudformation.model包,在下文中一共展示了DescribeStacksRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getStack
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
protected Optional<Stack> getStack() {
final List<Stack> stacks;
try {
stacks = cloudFormation.describeStacks(new DescribeStacksRequest().withStackName(stackName)).getStacks();
} catch (final AmazonCloudFormationException e) {
if (e.getStatusCode() == 400) {
return Optional.empty();
}
throw e;
}
if (stacks.isEmpty()) {
return Optional.empty();
}
if (stacks.size() > 1) {
throw new DeploymentException("Found more than one stack for name '" + stackName + "'");
}
final Stack stack = stacks.get(0);
return Optional.of(stack);
}
示例2: getStackStatus
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
/**
* Returns the current status of the named stack.
*
* @param stackId Stack ID.
* @return Stack status data.
*/
@Nullable
public StackStatus getStackStatus(final String stackId) {
final DescribeStacksRequest request = new DescribeStacksRequest().withStackName(stackId);
try {
final DescribeStacksResult result = cloudFormationClient.describeStacks(request);
if (result.getStacks().size() > 0) {
final String status = result.getStacks().get(0).getStackStatus();
if (StringUtils.isNotBlank(status)) {
return StackStatus.fromValue(status);
}
}
} catch (final AmazonServiceException ase) {
// Stack doesn't exist, just return with no status
if (ase.getStatusCode() != 400) {
throw ase;
}
}
return null;
}
示例3: searchStacksForOutput
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
/**
* Since there doesn't appear to be a first class way through the SDK at this time to get a CF export. We can
* iterate through the stacks for a given output key and return the value.
* @param outputKey The exported CF variable to search and retrieve the value of.
* @return The value for the export if found
*/
public Optional<String> searchStacksForOutput(String outputKey) {
DescribeStacksResult describeStacksResult = null;
do {
DescribeStacksRequest request = new DescribeStacksRequest();
if (describeStacksResult != null && describeStacksResult.getNextToken() != null) {
request.withNextToken(describeStacksResult.getNextToken());
}
describeStacksResult = cloudFormationClient.describeStacks();
for (Stack stack : describeStacksResult.getStacks()) {
for (Output output : stack.getOutputs()) {
if (StringUtils.equals(output.getOutputKey(), outputKey)) {
return Optional.of(output.getOutputValue());
}
}
}
} while (describeStacksResult.getNextToken() != null);
return Optional.empty();
}
示例4: getObject_stackWithTagsDefined_createTagsMap
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
@Test
public void getObject_stackWithTagsDefined_createTagsMap() throws Exception {
//Arrange
AmazonCloudFormation cloudFormation = mock(AmazonCloudFormation.class);
StackNameProvider stackNameProvider = mock(StackNameProvider.class);
when(stackNameProvider.getStackName()).thenReturn("testStack");
when(cloudFormation.describeStacks(new DescribeStacksRequest().withStackName("testStack"))).
thenReturn(new DescribeStacksResult().withStacks(new Stack().withTags(
new Tag().withKey("key1").withValue("value1"),
new Tag().withKey("key2").withValue("value2")
)));
StackResourceUserTagsFactoryBean factoryBean = new StackResourceUserTagsFactoryBean(cloudFormation, stackNameProvider);
//Act
factoryBean.afterPropertiesSet();
Map<String, String> factoryBeanObject = factoryBean.getObject();
//Assert
assertEquals("value1", factoryBeanObject.get("key1"));
assertEquals("value2", factoryBeanObject.get("key2"));
}
示例5: DefaultListableBeanFactory
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
@Test
public void parseInternal_stackConfigurationWithExternallyConfiguredCloudFormationClient_returnsConfiguredStackWithExternallyConfiguredClient() throws Exception {
//Arrange
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(new ClassPathResource(getClass().getSimpleName() + "-withCustomCloudFormationClient.xml", getClass()));
AmazonCloudFormation amazonCloudFormationMock = beanFactory.getBean(AmazonCloudFormation.class);
when(amazonCloudFormationMock.listStackResources(new ListStackResourcesRequest().withStackName("test"))).
thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));
when(amazonCloudFormationMock.describeStacks(new DescribeStacksRequest().withStackName("test"))).
thenReturn(new DescribeStacksResult().withStacks(new Stack()));
//Act
StackResourceRegistry stackResourceRegistry = beanFactory.getBean(StackResourceRegistry.class);
//Assert
assertNotNull(stackResourceRegistry);
assertFalse(beanFactory.containsBeanDefinition(getBeanName(AmazonCloudFormationClient.class.getName())));
verify(amazonCloudFormationMock, times(1)).listStackResources(new ListStackResourcesRequest().withStackName("test"));
beanFactory.getBean("customStackTags");
verify(amazonCloudFormationMock, times(1)).describeStacks(new DescribeStacksRequest().withStackName("test"));
}
开发者ID:spring-cloud,项目名称:spring-cloud-aws,代码行数:26,代码来源:StackConfigurationBeanDefinitionParserTest.java
示例6: getOutputForRequest
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
private List<Output> getOutputForRequest(String vpcStackName, AmazonCloudFormationClient client) {
int tried = 0;
while (tried < MAX_TRY) {
LOGGER.info("checking vpc stack creation result, tried: " + tried + '/' + MAX_TRY);
DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest();
describeStacksRequest.withStackName(vpcStackName);
Stack resultStack = client.describeStacks(describeStacksRequest).getStacks().get(0);
StackStatus stackStatus = StackStatus.valueOf(resultStack.getStackStatus());
if (FAILED_STATUSES.contains(stackStatus)) {
LOGGER.error("stack creation failed: ", stackStatus);
throw new RuntimeException();
} else if (CREATE_COMPLETE.equals(stackStatus)) {
return resultStack.getOutputs();
}
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
LOGGER.error("thread sleep interrupted", e);
}
tried++;
}
throw new RuntimeException("vpc creation timed out");
}
示例7: getStackParameters
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
/**
* Returns the current status of the named stack.
*
* @param stackId Stack name.
* @return Stack outputs data.
*/
public Map<String, String> getStackParameters(final String stackId) {
final DescribeStacksRequest request = new DescribeStacksRequest().withStackName(stackId);
final DescribeStacksResult result = cloudFormationClient.describeStacks(request);
final Map<String, String> parameters = Maps.newHashMap();
if (result.getStacks().size() > 0) {
parameters.putAll(result.getStacks().get(0).getParameters().stream().collect(
Collectors.toMap(Parameter::getParameterKey, Parameter::getParameterValue)));
}
return parameters;
}
示例8: getStackOutputs
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
/**
* Returns the current status of the named stack.
*
* @param stackId Stack name.
* @return Stack outputs data.
*/
public Map<String, String> getStackOutputs(final String stackId) {
final DescribeStacksRequest request = new DescribeStacksRequest().withStackName(stackId);
final DescribeStacksResult result = cloudFormationClient.describeStacks(request);
final Map<String, String> outputs = Maps.newHashMap();
if (result.getStacks().size() > 0) {
outputs.putAll(result.getStacks().get(0).getOutputs().stream().collect(
Collectors.toMap(Output::getOutputKey, Output::getOutputValue)));
}
return outputs;
}
示例9: createInstance
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
@Override
protected Map<String, String> createInstance() throws Exception {
LinkedHashMap<String, String> userTags = new LinkedHashMap<>();
DescribeStacksResult stacksResult = this.amazonCloudFormation.describeStacks(new DescribeStacksRequest().withStackName(this.stackNameProvider.getStackName()));
for (Stack stack : stacksResult.getStacks()) {
for (Tag tag : stack.getTags()) {
userTags.put(tag.getKey(), tag.getValue());
}
}
return userTags;
}
示例10: getStackResources
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
private DescribeStackResourcesResult getStackResources(String stackName) throws InterruptedException, IOException {
try {
DescribeStacksResult describeStacksResult = this.amazonCloudFormationClient.describeStacks(new DescribeStacksRequest().withStackName(stackName));
for (Stack stack : describeStacksResult.getStacks()) {
if (isAvailable(stack)) {
return this.amazonCloudFormationClient.describeStackResources(new DescribeStackResourcesRequest().withStackName(stack.getStackName()));
}
if (isError(stack)) {
if (this.stackCreatedByThisInstance) {
throw new IllegalArgumentException("Could not create stack");
}
this.amazonCloudFormationClient.deleteStack(new DeleteStackRequest().withStackName(stack.getStackName()));
return getStackResources(stackName);
}
if (isInProgress(stack)) {
//noinspection BusyWait
Thread.sleep(5000L);
return getStackResources(stackName);
}
}
} catch (AmazonClientException e) {
String templateBody = FileCopyUtils.copyToString(new InputStreamReader(new ClassPathResource(TEMPLATE_PATH).getInputStream()));
this.amazonCloudFormationClient.createStack(new CreateStackRequest().withTemplateBody(templateBody).withOnFailure(OnFailure.DELETE).
withStackName(stackName).withTags(new Tag().withKey("tag1").withValue("value1")).
withParameters(new Parameter().withParameterKey("RdsPassword").withParameterValue(this.rdsPassword)));
this.stackCreatedByThisInstance = true;
}
return getStackResources(stackName);
}
示例11: getInstanceId
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
@Override
public String getInstanceId() {
DescribeStacksResult describeStacksResult = this.amazonCloudFormationClient.describeStacks(new DescribeStacksRequest());
Stack stack = getStack(describeStacksResult, this.stackName);
return getOutputValue(stack, this.outputKey);
}
示例12: waitForCloudFormationStackToReachStatus
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
public static boolean waitForCloudFormationStackToReachStatus(
AmazonCloudFormationClient client, String stackName, String status) {
int count = 0;
while (true) {
if (count++ == 100) {
System.out
.println(stackName + " never reached state " + status);
return false;
}
try {
Thread.sleep(1000 * 30);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
return false;
}
String stackStatus = client
.describeStacks(
new DescribeStacksRequest()
.withStackName(stackName)).getStacks()
.get(0).getStackStatus();
if (stackStatus.equals(status)) {
return true;
} else if (stackStatus.contains(FAILED)) {
System.out.println("The process failed with status " + stackStatus);
return false;
}
System.out.println(stackName + " is in status " + stackStatus);
}
}
示例13: getOutputs
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
private Map<String, String> getOutputs(String cFStackName, AmazonCloudFormationClient client) {
DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest().withStackName(cFStackName);
String outputNotFound = String.format("Couldn't get Cloudformation stack's('%s') output", cFStackName);
List<Output> cfStackOutputs = client.describeStacks(describeStacksRequest).getStacks()
.stream().findFirst().orElseThrow(getCloudConnectorExceptionSupplier(outputNotFound)).getOutputs();
return cfStackOutputs.stream().collect(Collectors.toMap(Output::getOutputKey, Output::getOutputValue));
}
示例14: validate
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
@Override
public void validate(AuthenticatedContext ac, CloudStack cloudStack) {
AwsCredentialView credentialView = new AwsCredentialView(ac.getCloudCredential());
String regionName = ac.getCloudContext().getLocation().getRegion().value();
AmazonCloudFormationClient cfClient = awsClient.createCloudFormationClient(credentialView, regionName);
String cFStackName = cfStackUtil.getCfStackName(ac);
try {
cfClient.describeStacks(new DescribeStacksRequest().withStackName(cFStackName));
throw new CloudConnectorException(String.format("Stack is already exists with the given name: %s", cFStackName));
} catch (AmazonServiceException ignored) {
}
}
示例15: AbstractAwsStackStatusCheckerTask
import com.amazonaws.services.cloudformation.model.DescribeStacksRequest; //导入依赖的package包/类
AbstractAwsStackStatusCheckerTask(AuthenticatedContext authenticatedContext, AmazonCloudFormationClient cfClient, StackStatus successStatus,
StackStatus errorStatus, List<StackStatus> stackErrorStatuses, String cloudFormationStackName, boolean cancellable) {
super(authenticatedContext, cancellable);
this.cfClient = cfClient;
this.successStatus = successStatus;
this.errorStatus = errorStatus;
this.stackErrorStatuses = stackErrorStatuses;
this.cloudFormationStackName = cloudFormationStackName;
describeStacksRequest = new DescribeStacksRequest().withStackName(cloudFormationStackName);
stackEventsRequest = new DescribeStackEventsRequest().withStackName(cloudFormationStackName);
}