Class: Opsmgr::Renderer::AWS
- Inherits:
-
Mustache
- Object
- Mustache
- Opsmgr::Renderer::AWS
- Defined in:
- lib/opsmgr/renderer/aws.rb
Constant Summary collapse
- BASE_RENDERER_FIELDS =
{ vpc: 'PcfVpc', iam_aws_access_key_id: 'PcfIamUserAccessKey', iam_aws_secret_access_key: 'PcfIamUserSecretAccessKey', ssh_key_pair_name: 'PcfKeyPairName', public_subnet_id: 'PcfPublicSubnetId', private_subnet_id: 'PcfPrivateSubnetId', ops_manager_security_group_id: 'PcfOpsManagerSecurityGroupId', vms_security_group_id: 'PcfVmsSecurityGroupId', private_subnet_availability_zone: 'PcfPrivateSubnetAvailabilityZone', public_subnet_availability_zone: 'PcfPublicSubnetAvailabilityZone', s3_bucket_name: 'PcfOpsManagerS3Bucket', ert_s3_bucket_name: 'PcfElasticRuntimeS3Bucket', ert_s3_buildpacks_bucket_name: 'PcfElasticRuntimeS3BuildpacksBucket', ert_s3_droplets_bucket_name: 'PcfElasticRuntimeS3DropletsBucket', ert_s3_packages_bucket_name: 'PcfElasticRuntimeS3PackagesBucket', ert_s3_resources_bucket_name: 'PcfElasticRuntimeS3ResourcesBucket', rds_address: 'PcfRdsAddress', rds_port: 'PcfRdsPort', rds_username: 'PcfRdsUsername', rds_password: 'PcfRdsPassword', rds_ops_manager_dbname: 'PcfRdsDBName', ert_elb_dns_name: 'PcfElbDnsName', ert_ssh_elb_dns_name: 'PcfElbSshDnsName', ert_tcp_elb_dns_name: 'PcfElbTcpDnsName' }.freeze
Instance Attribute Summary collapse
-
#region ⇒ Object
readonly
Returns the value of attribute region.
-
#stack_name ⇒ Object
readonly
Returns the value of attribute stack_name.
Instance Method Summary collapse
-
#initialize(settings_file_contents) ⇒ AWS
constructor
A new instance of AWS.
- #previous_version_public_ip ⇒ Object
- #release_candidate_public_ip ⇒ Object
- #rendered_settings ⇒ Object
- #s3_endpoint ⇒ Object
- #setup_custom_renderer_field_methods! ⇒ Object
- #vms_security_group_name ⇒ Object
Constructor Details
#initialize(settings_file_contents) ⇒ AWS
Returns a new instance of AWS.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/opsmgr/renderer/aws.rb', line 43 def initialize(settings_file_contents) @settings_file_contents = settings_file_contents settings = YAML.load(@settings_file_contents) @vm_configs = settings.fetch('vm_shepherd').fetch('vm_configs') @stack_name = settings.fetch('vm_shepherd').fetch('env_config').fetch('stack_name') @region = settings.fetch('vm_shepherd').fetch('env_config').fetch('region') ::AWS.config( access_key_id: settings.fetch('vm_shepherd').fetch('env_config').fetch('aws_access_key'), secret_access_key: settings.fetch('vm_shepherd').fetch('env_config').fetch('aws_secret_key'), region: region, ) @cloud_formation = ::AWS::CloudFormation.new @ec2 = ::AWS::EC2.new @custom_renderer_fields = settings.fetch('custom_renderer_fields', []) setup_custom_renderer_field_methods! unless @custom_renderer_fields.empty? end |
Instance Attribute Details
#region ⇒ Object (readonly)
Returns the value of attribute region.
42 43 44 |
# File 'lib/opsmgr/renderer/aws.rb', line 42 def region @region end |
#stack_name ⇒ Object (readonly)
Returns the value of attribute stack_name.
42 43 44 |
# File 'lib/opsmgr/renderer/aws.rb', line 42 def stack_name @stack_name end |
Instance Method Details
#previous_version_public_ip ⇒ Object
93 94 95 |
# File 'lib/opsmgr/renderer/aws.rb', line 93 def previous_version_public_ip previous_version_elastic_ip ? previous_version_elastic_ip.public_ip : nil end |
#release_candidate_public_ip ⇒ Object
89 90 91 |
# File 'lib/opsmgr/renderer/aws.rb', line 89 def release_candidate_public_ip ops_manager_elastic_ip ? ops_manager_elastic_ip.public_ip : nil end |
#rendered_settings ⇒ Object
73 74 75 |
# File 'lib/opsmgr/renderer/aws.rb', line 73 def rendered_settings render(@settings_file_contents) end |
#s3_endpoint ⇒ Object
82 83 84 85 86 87 |
# File 'lib/opsmgr/renderer/aws.rb', line 82 def s3_endpoint { 'us-east-1' => 'https://s3.amazonaws.com', 'us-west-1' => 'https://s3-us-west-1.amazonaws.com', }[region] end |
#setup_custom_renderer_field_methods! ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/opsmgr/renderer/aws.rb', line 62 def setup_custom_renderer_field_methods! @custom_renderer_fields.each do |property| method_body = proc do # convert my_custom_key to MyCustomKey to match AWS format output(property.camelize) end self.class.send(:define_method, property.to_sym, &method_body) end end |
#vms_security_group_name ⇒ Object
77 78 79 80 |
# File 'lib/opsmgr/renderer/aws.rb', line 77 def vms_security_group_name security_group = @ec2.security_groups.find { |g| g.id == vms_security_group_id } security_group ? security_group.name : '' end |