class NCC::Instance
Attributes
console_log[RW]
environment[RW]
host[RW]
id[RW]
image[R]
ip_address[RW]
name[RW]
size[R]
status[R]
Public Class Methods
new(cfg, opt={})
click to toggle source
# File lib/ncc/instance.rb, line 73 def initialize(cfg, opt={}) @cfg = cfg @logger = opt[:logger] if opt.has_key? :logger self.id = opt['id'] self.name = opt['name'] self.size = opt['size'] self.image = opt['image'] self.environment = opt['environment'] self.role = opt['role'] self.host = opt['host'] self.ip_address = opt['ip_address'] self.console_log = opt['console_log'] self.extra = opt['extra'] end
Public Instance Methods
clear_extra()
click to toggle source
# File lib/ncc/instance.rb, line 159 def clear_extra @extra = nil end
debug(msg=nil) { || ... }
click to toggle source
Should be mixed in
# File lib/ncc/instance.rb, line 59 def debug(msg=nil) msg ||= yield log 'debug', msg end
extra(param=nil)
click to toggle source
# File lib/ncc/instance.rb, line 163 def extra(param=nil) if param.nil? @extra else if !@extra.nil? and @extra.has_key? param @extra[param] else { } end end end
extra=(newextra)
click to toggle source
# File lib/ncc/instance.rb, line 175 def extra=(newextra) if !newextra.nil? raise NCC::Error, "Invalid extra parameter of type " + "#{newextra.class} (must be Hash)" unless newextra.respond_to? :to_hash if @extra.nil? @extra = newextra.to_hash else @extra = @extra.deep_soft_merge(newextra.to_hash) end end end
image=(newimage)
click to toggle source
# File lib/ncc/instance.rb, line 147 def image=(newimage) raise NCC::Error, "Invalid image #{newimage.inspect}" unless newimage.nil? or @cfg[:images].has_key? newimage @image = newimage end
log(level, msg)
click to toggle source
# File lib/ncc/instance.rb, line 68 def log(level, msg) @logger.send(level.intern, "#<#{me}>: #{msg}") if @logger.respond_to? level.intern end
role()
click to toggle source
# File lib/ncc/instance.rb, line 102 def role @role end
role=(value)
click to toggle source
# File lib/ncc/instance.rb, line 106 def role=(value) if value.nil? @role = [] elsif value.respond_to? :join @role = value else @role = value.split(/, */) end end
set_without_validation(fields)
click to toggle source
# File lib/ncc/instance.rb, line 116 def set_without_validation(fields) fields.each_pair do |field, value| case field when :id @id = value when :name @name = value when :size @size = value when :image @image = value when :environment @environment = value when :role self.role = value when :extra @extra = value when :status self.status = value when :ip_address @ip_address = value when :host @host = value when :console_log @console_log = value else raise NCC::Error, "Invalid field #{field.inspect}" end end end
size=(newsize)
click to toggle source
# File lib/ncc/instance.rb, line 153 def size=(newsize) raise NCC::Error, "Invalid size ${newsize.inspect}" unless newsize.nil? or @cfg[:sizes].has_key? newsize @size = newsize end
status=(newstatus)
click to toggle source
# File lib/ncc/instance.rb, line 188 def status=(newstatus) raise NCC::Error, "Invalid status #{newstatus.inspect}" unless @@valid_statuses.include? newstatus @status = newstatus end
to_hash()
click to toggle source
# File lib/ncc/instance.rb, line 194 def to_hash { 'name' => name, 'id' => id, 'extra' => extra, 'environment' => environment, 'role' => role, 'size' => size, 'image' => image, 'ip_address' => ip_address, 'host' => host, 'status' => status }.delete_nil_values end
to_json()
click to toggle source
# File lib/ncc/instance.rb, line 209 def to_json to_hash.to_json end
warn(msg)
click to toggle source
# File lib/ncc/instance.rb, line 64 def warn(msg) log 'warn', msg end
with_defaults(*defaults)
click to toggle source
# File lib/ncc/instance.rb, line 88 def with_defaults(*defaults) obj = self.dup defaults.each do |d| next if d.nil? obj.name ||= d['name'] obj.size ||= d['size'] obj.image ||= d['image'] obj.environment ||= d['environment'] obj.role ||= d['role'] obj.extra = d['extra'] end obj end