Class: NovaDsl::NovaVmsContainer

Inherits:
Object
  • Object
show all
Defined in:
lib/nova/utils/nova_vm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vms_array = []) ⇒ NovaVmsContainer

Returns a new instance of NovaVmsContainer.



34
35
36
37
38
# File 'lib/nova/utils/nova_vm.rb', line 34

def initialize(vms_array = [])
  Common::type_checker vms_array, Array
  vms_array.each { |v| Common::type_checker v, NovaDsl::NovaVm }
  @vms = vms_array
end

Instance Attribute Details

#vmsObject

Returns the value of attribute vms.



32
33
34
# File 'lib/nova/utils/nova_vm.rb', line 32

def vms
  @vms
end

Instance Method Details

#<<(vm) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/nova/utils/nova_vm.rb', line 45

def <<(vm)
  if vm.is_a? NovaDsl::NovaVm;
    @vms << vm
  end
  if vm.is_a? Array;
    @vms += vm
  end
end

#[](index) ⇒ Object



40
41
42
43
# File 'lib/nova/utils/nova_vm.rb', line 40

def [](index)
  raise IndexError("Index #{index} is too large ") unless index < @vms.size
  @vms[index]
end

#find_by_id(id) ⇒ Object



69
70
71
72
# File 'lib/nova/utils/nova_vm.rb', line 69

def find_by_id(id)
  Common::type_checker id, Fixnum
  @vms.select { |v| v.id.eql?(id) }
end

#find_by_ip(ip) ⇒ Object



74
75
76
77
# File 'lib/nova/utils/nova_vm.rb', line 74

def find_by_ip(ip)
  Common::type_checker ip, Fixnum
  @vms.select { |v| v.ip.eql?(ip) }
end

#find_by_name(name) ⇒ Object



79
80
81
82
# File 'lib/nova/utils/nova_vm.rb', line 79

def find_by_name(name)
  Common::type_checker name, String
  @vms.select { |v| v.name.eql?(name) }
end

#find_by_status(status) ⇒ Object



84
85
86
87
# File 'lib/nova/utils/nova_vm.rb', line 84

def find_by_status(status)
  Common::type_checker status, String
  @vms.select { |v| v.status.eql?(status) }
end

#merge(container) ⇒ Object



60
61
62
63
# File 'lib/nova/utils/nova_vm.rb', line 60

def merge(container)
  Common::type_checker container, NovaVmsContainer
  NovaVmsContainer.new( @vms|container.vms )
end

#merge!(container) ⇒ Object



54
55
56
57
58
# File 'lib/nova/utils/nova_vm.rb', line 54

def merge!(container)
  Common::type_checker container, NovaVmsContainer
  @vms |= container.vms
  self
end

#sizeObject



65
66
67
# File 'lib/nova/utils/nova_vm.rb', line 65

def size
  @vms.size
end