1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vsphere/models/compute/interfaces.rb
Marc Grimme 38c3bb1ba4 [vSphere] Refactor and extend network interface methods (similar to the ovirt implementation)
* added methods to add, remove and update interfaces for vSphere
* added missing method to retrieve the interface
* added existing attribute key to interface (required for modifying, deleting interfaces)
* alias interface's mac to id
2013-04-23 10:52:52 +02:00

45 lines
1.2 KiB
Ruby

require 'fog/core/collection'
require 'fog/vsphere/models/compute/interface'
module Fog
module Compute
class Vsphere
class Interfaces < Fog::Collection
model Fog::Compute::Vsphere::Interface
attr_accessor :vm
def all(filters = {})
requires :vm
case vm
when Fog::Compute::Vsphere::Server
load service.list_vm_interfaces(vm.id)
when Fog::Compute::Vsphere::Template
load service.list_template_interfaces(vm.id)
else
raise 'interfaces should have vm or template'
end
end
def get(id)
requires :vm
case vm
when Fog::Compute::Vsphere::Server
interface=service.get_vm_interface(vm.id, :key => id, :mac=> id, :name => id)
when Fog::Compute::Vsphere::Template
interface=service.get_template_interfaces(vm.id, :key => id, :mac=> id, :name => id)
else
raise 'interfaces should have vm or template'
end
if interface
Fog::Compute::Vsphere::Interface.new(interface)
else
nil
end
end
end
end
end
end