class Fog::Compute::Vsphere::Mock
Public Class Methods
data()
click to toggle source
# File lib/fog/vsphere/compute.rb, line 192 def self.data @data ||= Hash.new do |hash, key| hash[key] = { :servers => { "5032c8a5-9c5e-ba7a-3804-832a03e16381" => { "resource_pool" => "Resources", "memory_mb" => 2196, "mac_addresses" => { "Network adapter 1" => "00:50:56:a9:00:28" }, "power_state" => "poweredOn", "cpus" => 1, "hostname" => "dhcp75-197.virt.bos.redhat.com", "mo_ref" => "vm-562", "connection_state" => "connected", "overall_status" => "green", "datacenter" => "Solutions", "volumes" => [{ "id" => "6000C29c-a47d-4cd9-5249-c371de775f06", "datastore" => "Storage1", "mode" => "persistent", "size" => 8388608, "thin" => true, "name" => "Hard disk 1", "filename" => "[Storage1] rhel6-mfojtik/rhel6-mfojtik.vmdk", "size_gb" => 8 }], "interfaces" => [{"mac" => "00:50:56:a9:00:28", "network" => "VM Network", "name" => "Network adapter 1", "status" => "ok", "summary" => "VM Network", }], "hypervisor" => "gunab.puppetlabs.lan", "guest_id" => "rhel6_64Guest", "tools_state" => "toolsOk", "cluster" => "Solutionscluster", "name" => "rhel64", "operatingsystem" => "Red Hat Enterprise Linux 6 (64-bit)", "path" => "/Datacenters/Solutions/vm", "uuid" => "4229f0e9-bfdc-d9a7-7bac-12070772e6dc", "instance_uuid" => "5032c8a5-9c5e-ba7a-3804-832a03e16381", "id" => "5032c8a5-9c5e-ba7a-3804-832a03e16381", "tools_version" => "guestToolsUnmanaged", "ipaddress" => "192.168.100.184", "template" => false }, "502916a3-b42e-17c7-43ce-b3206e9524dc" => { "resource_pool" => "Resources", "memory_mb" => 512, "power_state" => "poweredOn", "mac_addresses" => { "Network adapter 1" => "00:50:56:a9:00:00" }, "hostname" => nil, "cpus" => 1, "connection_state" => "connected", "mo_ref" => "vm-621", "overall_status" => "green", "datacenter" => "Solutions", "volumes" => [{"thin" => false, "size_gb" => 10, "datastore" => "datastore1", "filename" => "[datastore1] i-1342439683/i-1342439683.vmdk", "size" => 10485762, "name" => "Hard disk 1", "mode" => "persistent", "id" => "6000C29b-f364-d073-8316-8e98ac0a0eae" }], "interfaces" => [{ "summary" => "VM Network", "mac" => "00:50:56:a9:00:00", "status" => "ok", "network" => "VM Network", "name" => "Network adapter 1" }], "hypervisor" => "gunab.puppetlabs.lan", "guest_id" => nil, "cluster" => "Solutionscluster", "tools_state" => "toolsNotInstalled", "name" => "i-1342439683", "operatingsystem" => nil, "path" => "/", "tools_version" => "guestToolsNotInstalled", "uuid" => "4229e0de-30cb-ceb2-21f9-4d8d8beabb52", "instance_uuid" => "502916a3-b42e-17c7-43ce-b3206e9524dc", "id" => "502916a3-b42e-17c7-43ce-b3206e9524dc", "ipaddress" => nil, "template" => false }, "5029c440-85ee-c2a1-e9dd-b63e39364603" => { "resource_pool" => "Resources", "memory_mb" => 2196, "power_state" => "poweredOn", "mac_addresses" => { "Network adapter 1" => "00:50:56:b2:00:af" }, "hostname" => "centos56gm.localdomain", "cpus" => 1, "connection_state" => "connected", "mo_ref" => "vm-715", "overall_status" => "green", "datacenter" => "Solutions", "hypervisor" => "gunab.puppetlabs.lan", "guest_id" => "rhel6_64Guest", "cluster" => "Solutionscluster", "tools_state" => "toolsOk", "name" => "jefftest", "operatingsystem" => "Red Hat Enterprise Linux 6 (64-bit)", "path" => "/", "tools_version" => "guestToolsUnmanaged", "ipaddress" => "192.168.100.187", "uuid" => "42329da7-e8ab-29ec-1892-d6a4a964912a", "instance_uuid" => "5029c440-85ee-c2a1-e9dd-b63e39364603", "id" => "5029c440-85ee-c2a1-e9dd-b63e39364603", "template" => false } }, :datacenters => { "Solutions" => {:name => "Solutions", :status => "grey"} } } end end
new(options={})
click to toggle source
# File lib/fog/vsphere/compute.rb, line 312 def initialize(options={}) require 'rbvmomi' @vsphere_username = options[:vsphere_username] @vsphere_password = 'REDACTED' @vsphere_server = options[:vsphere_server] @vsphere_expected_pubkey_hash = options[:vsphere_expected_pubkey_hash] @vsphere_is_vcenter = true @vsphere_rev = '4.0' end
Public Instance Methods
add_vm_interface(vmid, options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/modify_vm_interface.rb, line 45 def add_vm_interface(vmid, options = {}) raise ArgumentError, "instance id is a required parameter" unless vmid raise ArgumentError, "interface is a required parameter" unless options and options[:interface] true end
add_vm_volume(volume)
click to toggle source
# File lib/fog/vsphere/requests/compute/modify_vm_volume.rb, line 15 def add_vm_volume(volume) true end
create_vm(attributes = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/create_vm.rb, line 156 def create_vm attributes = { } end
current_time()
click to toggle source
# File lib/fog/vsphere/requests/compute/current_time.rb, line 12 def current_time { 'current_time' => Time.now.utc } end
data()
click to toggle source
# File lib/fog/vsphere/compute.rb, line 322 def data self.class.data[@vsphere_username] end
destroy_vm_interface(vmid, options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/modify_vm_interface.rb, line 51 def destroy_vm_interface(vmid, options = {}) raise ArgumentError, "instance id is a required parameter" unless vmid raise ArgumentError, "interface is a required parameter" unless options and options[:interface] true end
destroy_vm_volume(volume)
click to toggle source
# File lib/fog/vsphere/requests/compute/modify_vm_volume.rb, line 19 def destroy_vm_volume(volume) true end
get_cluster(id)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_cluster.rb, line 20 def get_cluster(id) end
get_datacenter(name)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_datacenter.rb, line 23 def get_datacenter name dc = self.data[:datacenters][name] raise(Fog::Compute::Vsphere::NotFound) unless dc dc end
get_datastore(name, datacenter_name)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_datastore.rb, line 25 def get_datastore(name, datacenter_name) end
get_folder(path, filters = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/get_folder.rb, line 69 def get_folder(path, filters = { }) end
get_folder_path(folder, root = nil)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_virtual_machines.rb, line 58 def get_folder_path(folder, root = nil) nil end
get_network(id)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_network.rb, line 25 def get_network(id) end
get_resource_pool(name, cluster_name, datacenter_name)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_resource_pool.rb, line 21 def get_resource_pool(name, cluster_name, datacenter_name) end
get_server_type(id)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_server_type.rb, line 22 def get_server_type(id) {:id=>"rhel6Guest", :name=>"rhel6Guest", :family=>"linuxGuest", :fullname=>"Red Hat Enterprise Linux 6 (32-Bit)", :datacenter=>"Solutions"} end
get_template(id, datacenter_name = nil)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_template.rb, line 11 def get_template(id, datacenter_name = nil) end
get_virtual_machine(id, datacenter_name = nil)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_virtual_machine.rb, line 32 def get_virtual_machine(id, datacenter_name = nil) if is_uuid?(id) vm = list_virtual_machines({ 'instance_uuid' => id, 'datacenter' => datacenter_name }).first else # try to find based on VM name. May need to handle the path of the VM vm = list_virtual_machines({ 'name' => id, 'datacenter' => datacenter_name }).first end vm ? vm : raise(Fog::Compute::Vsphere::NotFound, "#{id} was not found") end
get_vm_first_scsi_controller(vm_id)
click to toggle source
# File lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb, line 21 def get_vm_first_scsi_controller(vm_id) end
list_clusters(filters = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/list_clusters.rb, line 31 def list_clusters(filters = { }) end
list_datacenters(filters = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/list_datacenters.rb, line 47 def list_datacenters filters = {} [ {:name => "Solutions", :status => "grey"}, {:name => "Solutions2", :status => "green" }] end
list_datastores(datacenter_name)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_datastores.rb, line 34 def list_datastores(datacenter_name) [] end
list_networks(datacenter_name)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_networks.rb, line 31 def list_networks(datacenter_name) [] end
list_resource_pools(filters = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/list_resource_pools.rb, line 33 def list_resource_pools(filters = { }) end
list_server_types(datacenter_name)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_server_types.rb, line 39 def list_server_types(datacenter_name) [{:id=>"rhel6Guest", :name=>"rhel6Guest", :family=>"linuxGuest", :fullname=>"Red Hat Enterprise Linux 6 (32-Bit)", :datacenter=>"Solutions"}, {:id=>"rhel5_64Guest", :name=>"rhel5_64Guest", :family=>"linuxGuest", :fullname=>"Red Hat Enterprise Linux 5 (64-Bit)", :datacenter=>"Solutions"}] end
list_templates(filters = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/list_templates.rb, line 43 def list_templates(filters = { }) end
list_virtual_machines(options = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/list_virtual_machines.rb, line 62 def list_virtual_machines(options = { }) if options['instance_uuid'].nil? and options['mo_ref'].nil? self.data[:servers].values elsif !options['instance_uuid'].nil? server = self.data[:servers][options['instance_uuid']] server.nil? ? [] : [server] else self.data[:servers].values.select{|vm| vm['mo_ref'] == options['mo_ref']} end end
list_vm_customfields()
click to toggle source
# File lib/fog/vsphere/requests/compute/list_customfields.rb, line 16 def list_vm_customfields() end
list_vm_interfaces(vm_id)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_vm_interfaces.rb, line 58 def list_vm_interfaces(vm_id) end
list_vm_volumes(vm_id)
click to toggle source
# File lib/fog/vsphere/requests/compute/list_vm_volumes.rb, line 47 def list_vm_volumes(vm_id) end
reset_data()
click to toggle source
# File lib/fog/vsphere/compute.rb, line 326 def reset_data self.class.data.delete(@vsphere_username) end
set_vm_customvalue(vm_id, key, value)
click to toggle source
# File lib/fog/vsphere/requests/compute/set_vm_customvalue.rb, line 11 def set_vm_customvalue(vm_id, key, value) nil end
vm_clone(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_clone.rb, line 275 def vm_clone(options = {}) # Option handling TODO Needs better method of checking options = vm_clone_check_options(options) notfound = lambda { raise Fog::Compute::Vsphere::NotFound, "Could not find VM template" } template = list_virtual_machines.find(notfound) do |vm| vm['name'] == options['template_path'].split("/")[-1] end # generate a random id id = [8,4,4,4,12].map{|i| Fog::Mock.random_hex(i)}.join("-") new_vm = template.clone.merge({ "name" => options['name'], "id" => id, "instance_uuid" => id, "path" => "/Datacenters/#{options['datacenter']}/#{options['dest_folder'] ? options['dest_folder']+"/" : ""}#{options['name']}" }) self.data[:servers][id] = new_vm { 'vm_ref' => "vm-#{Fog::Mock.random_numbers(3)}", 'new_vm' => new_vm, 'task_ref' => "task-#{Fog::Mock.random_numbers(4)}", } end
vm_config_vnc(options = { })
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_config_vnc.rb, line 34 def vm_config_vnc(options = { }) raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => 'success' } end
vm_destroy(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_destroy.rb, line 16 def vm_destroy(options = {}) raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => 'success' } end
vm_get_vnc(uuid)
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_config_vnc.rb, line 39 def vm_get_vnc uuid {:password => 'secret', :port => '5900', :enabled => 'true'} end
vm_migrate(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_migrate.rb, line 25 def vm_migrate(options = {}) priority = options['priority'].nil? ? 'defaultPriority' : options["priority"] raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => 'success' } end
vm_power_off(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_power_off.rb, line 27 def vm_power_off(options = {}) raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' vm = get_virtual_machine(options['instance_uuid']) vm["power_state"] = "poweredOff" { 'task_state' => "running", 'power_off_type' => options['force'] ? 'cut_power' : 'shutdown_guest', } end
vm_power_on(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_power_on.rb, line 19 def vm_power_on(options = {}) raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => 'success' } end
vm_reboot(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_reboot.rb, line 24 def vm_reboot(options = {}) raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => "running", 'reboot_type' => options['force'] ? 'reset_power' : 'reboot_guest' } end
vm_reconfig_cpus(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb, line 14 def vm_reconfig_cpus(options = {}) raise ArgumentError, "cpus is a required parameter" unless options.key? 'cpus' raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' hardware_spec={'numCPUs' => options['cpus'], 'numCoresPerSocket' => options['corespersocket']} vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec ) end
vm_reconfig_hardware(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb, line 16 def vm_reconfig_hardware(options = {}) raise ArgumentError, "hardware_spec is a required parameter" unless options.key? 'hardware_spec' raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' { 'task_state' => 'success' } end
vm_reconfig_memory(options = {})
click to toggle source
# File lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb, line 14 def vm_reconfig_memory(options = {}) raise ArgumentError, "memory is a required parameter" unless options.key? 'memory' raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid' hardware_spec={'memoryMB' => options['memory']} vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec ) end