class Stackspec::Type::Server

Public Class Methods

new(name) click to toggle source
# File lib/stackspec/type/server.rb, line 5
def initialize(name)
  @name = name
end

Public Instance Methods

has_security_group?(name: nil) click to toggle source
# File lib/stackspec/type/server.rb, line 21
def has_security_group?(name: nil)
  !! resource.security_groups.find {|sg| sg.name == name }
end
inspect()
Alias for: to_s
resource() click to toggle source
# File lib/stackspec/type/server.rb, line 9
def resource
  @resource ||= find_counterpart_resource
end
security_groups() click to toggle source
# File lib/stackspec/type/server.rb, line 17
def security_groups
  resource.security_groups.uniq {|sg| sg.name }
end
to_s() click to toggle source
# File lib/stackspec/type/server.rb, line 13
def to_s
  "OpenStack server #{@name.inspect}"
end
Also aliased as: inspect

Private Instance Methods

find_counterpart_resource() click to toggle source
# File lib/stackspec/type/server.rb, line 28
def find_counterpart_resource
  begin
    servers = Yao::Server.list_detail(name: @name)
  rescue => e
    raise Stackspec::ResourceNotFound, "Something is wrong: #{e.class}: #{e.message}"
  end

  if servers.empty?
    raise Stackspec::ResourceNotFound, "No server found for name: #{@name.inspect}"
  end
  servers.first
end
method_missing(name) click to toggle source
Calls superclass method
# File lib/stackspec/type/server.rb, line 41
def method_missing(name)
  # FIXME: The resource reader
  if resource.respond_to? name
    return resource.send(name)
  end
  super
end