Class: Fog::Compute::Vsphere::Interfaces

Inherits:
Fog::Collection
  • Object
show all
Defined in:
lib/fog/vsphere/models/compute/interfaces.rb

Instance Method Summary collapse

Instance Method Details

#all(_filters = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/vsphere/models/compute/interfaces.rb', line 11

def all(_filters = {})
  requires :server_id

  case server
  when Fog::Compute::Vsphere::Server
    load service.list_vm_interfaces(server.id)
  when Fog::Compute::Vsphere::Template
    load service.list_template_interfaces(server.id)
  else
    raise 'interfaces should have vm or template'
  end

  each { |interface| interface.server_id = server.id }
  self
end

#get(id) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/fog/vsphere/models/compute/interfaces.rb', line 27

def get(id)
  requires :server_id

  case server
  when Fog::Compute::Vsphere::Server
    interface = service.get_vm_interface(server.id, key: id, mac: id, name: id, datacenter: server.datacenter)
  when Fog::Compute::Vsphere::Template
    interface = service.get_template_interfaces(server.id, key: id, mac: id, name: id)
  else

    raise 'interfaces should have vm or template'
  end

  if interface
    Fog::Compute::Vsphere::Interface.new(interface.merge(server_id: server.id, service: service))
  end
end

#new(attributes = {}) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/fog/vsphere/models/compute/interfaces.rb', line 45

def new(attributes = {})
  if server_id
    super({ server_id: server_id }.merge(attributes))
  else
    super
  end
end

#serverObject



53
54
55
56
# File 'lib/fog/vsphere/models/compute/interfaces.rb', line 53

def server
  return nil if server_id.nil?
  service.servers.get(server_id)
end

#server=(new_server) ⇒ Object



58
59
60
# File 'lib/fog/vsphere/models/compute/interfaces.rb', line 58

def server=(new_server)
  server_id = new_server.id
end