class Elasticsnap::SecurityGroup
Attributes
name[RW]
Public Class Methods
new(name: nil)
click to toggle source
# File lib/elasticsnap/security_group.rb, line 7 def initialize(name: nil) raise ArgumentError, 'name required' if name.nil? @name = name end
Public Instance Methods
fog_group()
click to toggle source
# File lib/elasticsnap/security_group.rb, line 33 def fog_group @fog_group ||= connection.security_groups.all('group-name' => name).first end
hosts()
click to toggle source
# File lib/elasticsnap/security_group.rb, line 13 def hosts @hosts ||= connection.servers.all('group-id' => id) end
id()
click to toggle source
# File lib/elasticsnap/security_group.rb, line 37 def id @id ||= fog_group.group_id end
reload()
click to toggle source
# File lib/elasticsnap/security_group.rb, line 41 def reload @hosts = @id = nil end
ssh_hosts(ssh_user: nil)
click to toggle source
# File lib/elasticsnap/security_group.rb, line 17 def ssh_hosts(ssh_user: nil) hosts.map do |host| if ssh_user "#{ssh_user}@#{host.dns_name}" else host.dns_name end end end
volumes(cluster_name: nil)
click to toggle source
# File lib/elasticsnap/security_group.rb, line 27 def volumes(cluster_name: nil) filters = { 'attachment.instance-id' => hosts.map(&:id) } filters.merge!('tag:ClusterName' => cluster_name) if cluster_name connection.volumes.all(filters) end
Private Instance Methods
connection()
click to toggle source
# File lib/elasticsnap/security_group.rb, line 46 def connection Config.fog_connection end