Module: AWS::Utils
Instance Method Summary collapse
- #all_availability_zones(region) ⇒ Object
- #all_regions ⇒ Object
- #default_availability_zone(region) ⇒ Object
- #default_image_id(region, flavor_id, root_device_type) ⇒ Object
- #ec2_name_tag(server_name) ⇒ Object
- #elasticache_name_tag(server_name) ⇒ Object
- #find_server_by_name(name, region = nil) ⇒ Object
- #list_stage_servers(region = nil) ⇒ Object
- #rds_name_tag(server_name) ⇒ Object
Instance Method Details
#all_availability_zones(region) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/conan/cloud/aws/utils.rb', line 51 def all_availability_zones(region) case region when "us-east-1" #not using availability zone us-east-1a as it often fails ["us-east-1b", "us-east-1d"] when "us-west-1" ["us-west-1a", "us-west-1b", "us-west-1c"] when "eu-west-1" ["eu-west-1a", "eu-west-1b", "eu-west-1c"] when "ap-northeast-1" ["ap-northeast-1a", "ap-northeast-1a"] when "ap-southeast-1" ["ap-southeast-1a", "ap-southeast-1b"] end end |
#all_regions ⇒ Object
47 48 49 |
# File 'lib/conan/cloud/aws/utils.rb', line 47 def all_regions ['us-east-1', 'us-west-1', 'eu-west-1', 'ap-northeast-1', 'ap-southeast-1'] end |
#default_availability_zone(region) ⇒ Object
42 43 44 45 |
# File 'lib/conan/cloud/aws/utils.rb', line 42 def default_availability_zone(region) #using availability zone b by default as a is often unavailable in us-east-1 "#{region}b" end |
#default_image_id(region, flavor_id, root_device_type) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/conan/cloud/aws/utils.rb', line 67 def default_image_id(region, flavor_id, root_device_type) #now default to 64 bit architecture as all flavors support 64 bit arch = "64-bit" defaults = JSON.parse(File.read(File.(File.join(File.dirname(__FILE__), 'default_amis.json')))) #not defaulting to ubuntu 12.04 region_defaults = defaults["ubuntu 12.04"][region] raise "Invalid Region" if region_defaults.nil? default_ami = region_defaults[arch][root_device_type] raise "Default AMI not found for #{region} #{flavor_id} #{root_device_type}" if default_ami.nil? default_ami end |
#ec2_name_tag(server_name) ⇒ Object
8 9 10 |
# File 'lib/conan/cloud/aws/utils.rb', line 8 def ec2_name_tag(server_name) "#{stage}-#{server_name}" end |
#elasticache_name_tag(server_name) ⇒ Object
16 17 18 |
# File 'lib/conan/cloud/aws/utils.rb', line 16 def elasticache_name_tag(server_name) "#{stage}-elasticache-#{server_name}" end |
#find_server_by_name(name, region = nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/conan/cloud/aws/utils.rb', line 20 def find_server_by_name(name, region = nil) regions_to_search = region.nil? ? all_regions : [region] found_servers = [] regions_to_search.each do |r| compute = Fog::Compute.new(:provider => :aws, :region => r) servers = compute.servers.all found_servers = found_servers + servers.select { |server| server.["name"] == ec2_name_tag(name) and server.state == 'running' } end found_servers.empty? ? nil : found_servers[0] end |
#list_stage_servers(region = nil) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/conan/cloud/aws/utils.rb', line 31 def list_stage_servers(region = nil) regions_to_search = region.nil? ? all_regions : [region] found_servers = [] regions_to_search.each do |r| compute = Fog::Compute.new(:provider => :aws, :region => r) servers = compute.servers.all found_servers = found_servers + servers.select { |server| server.["stage"] == stage and server.state == 'running' } end found_servers end |
#rds_name_tag(server_name) ⇒ Object
12 13 14 |
# File 'lib/conan/cloud/aws/utils.rb', line 12 def rds_name_tag(server_name) "#{stage}-db-#{server_name}" end |