private AutoDetectingStackNameProvider(AmazonCloudFormation amazonCloudFormationClient, AmazonEC2 amazonEc2Client, InstanceIdProvider instanceIdProvider) { this.amazonCloudFormationClient = amazonCloudFormationClient; this.amazonEc2Client = amazonEc2Client; this.instanceIdProvider = instanceIdProvider; afterPropertiesSet(); }
@Bean @ConditionalOnMissingBean(StackResourceRegistry.class) public StackResourceRegistryFactoryBean stackResourceRegistryFactoryBean(AmazonCloudFormation amazonCloudFormation) { if (StringUtils.hasText(environment.getProperty("cloud.aws.stack.name"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new StaticStackNameProvider(this.environment.getProperty("cloud.aws.stack.name"))); } if (environment.getProperty("cloud.aws.stack.auto") == null || "true".equalsIgnoreCase(environment.getProperty("cloud.aws.stack.auto"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new AutoDetectingStackNameProvider(amazonCloudFormation, this.amazonEC2)); } return null; }
@Override public void afterPropertiesSet() { String instanceId = this.instanceIdProvider.getCurrentInstanceId(); this.stackName = autoDetectStackName(instanceId); if (this.stackName == null) { throw new IllegalStateException("No stack resources found in stack for EC2 instance '" + instanceId + "'"); } }
@Bean @ConditionalOnMissingBean(StackResourceRegistry.class) public StackResourceRegistryFactoryBean stackResourceRegistryFactoryBean(AmazonCloudFormation amazonCloudFormation) { if (StringUtils.hasText(environment.getProperty("cloud.aws.stack.name"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new StaticStackNameProvider(this.environment.getProperty("cloud.aws.stack.name"))); } if (environment.getProperty("cloud.aws.stack.auto") == null || "true".equalsIgnoreCase(environment.getProperty("cloud.aws.stack.auto"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new AutoDetectingStackNameProvider(amazonCloudFormation, this.amazonEC2)); } return null; }
@Override public void afterPropertiesSet() { String instanceId = this.instanceIdProvider.getCurrentInstanceId(); this.stackName = autoDetectStackName(instanceId); if (this.stackName == null) { throw new IllegalStateException("No stack resources found in stack for EC2 instance '" + instanceId + "'"); } }
@Bean public StackResourceRegistryFactoryBean stackResourceRegistryFactoryBean(AmazonCloudFormation amazonCloudFormation) { if (StringUtils.hasText(this.annotationAttributes.getString("stackName"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new StaticStackNameProvider(this.annotationAttributes.getString("stackName"))); } else { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new AutoDetectingStackNameProvider(amazonCloudFormation, this.amazonEc2)); } }
private AutoDetectingStackNameProvider(AmazonCloudFormation amazonCloudFormationClient, AmazonEC2 amazonEc2Client, InstanceIdProvider instanceIdProvider) { this.amazonCloudFormationClient = amazonCloudFormationClient; this.amazonEc2Client = amazonEc2Client; this.instanceIdProvider = instanceIdProvider; afterPropertiesSet(); }
@Bean public StackResourceRegistryFactoryBean stackResourceRegistryFactoryBean(AmazonCloudFormation amazonCloudFormation) { if (StringUtils.hasText(this.annotationAttributes.getString("stackName"))) { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new StaticStackNameProvider(this.annotationAttributes.getString("stackName"))); } else { return new StackResourceRegistryFactoryBean(amazonCloudFormation, new AutoDetectingStackNameProvider(amazonCloudFormation, this.amazonEc2)); } }