Class: Fog::Compute::Hyperv::Mock

Inherits:
Shared
  • Object
show all
Defined in:
lib/fog/hyperv/compute.rb,
lib/fog/hyperv/requests/compute/get_vm.rb,
lib/fog/hyperv/requests/compute/get_vhd.rb,
lib/fog/hyperv/requests/compute/get_vm_bios.rb,
lib/fog/hyperv/requests/compute/get_vm_group.rb,
lib/fog/hyperv/requests/compute/get_vm_firmware.rb,
lib/fog/hyperv/requests/compute/get_cluster_node.rb,
lib/fog/hyperv/requests/compute/get_vm_dvd_drive.rb,
lib/fog/hyperv/requests/compute/get_vm_host_cluster.rb,
lib/fog/hyperv/requests/compute/get_vm_hard_disk_drive.rb,
lib/fog/hyperv/requests/compute/get_vm_network_adapter.rb,
lib/fog/hyperv/requests/compute/get_vm_floppy_disk_drive.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Shared

#version

Constructor Details

#initialize(_options = {}) ⇒ Mock

Returns a new instance of Mock.



383
384
385
# File 'lib/fog/hyperv/compute.rb', line 383

def initialize(_options = {})
  require 'fog/json'
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



387
388
389
390
391
392
393
# File 'lib/fog/hyperv/compute.rb', line 387

def method_missing(method, *args)
  if requests.find { |_, k| k == method }
    handle_mock_response((args.first || {}).merge(_method: method))
  else
    super
  end
end

Class Method Details

.method_defined?(method) ⇒ Boolean

Returns:

  • (Boolean)


399
400
401
# File 'lib/fog/hyperv/compute.rb', line 399

def self.method_defined?(method)
  Fog::Compute::Hyperv.requests.find { |_, k| k == method } || super
end

Instance Method Details

#get_cluster_node(args = {}) ⇒ Object



11
12
13
14
15
# File 'lib/fog/hyperv/requests/compute/get_cluster_node.rb', line 11

def get_cluster_node(args = {})
  data = handle_mock_response args
  data = data.find { |n| n[:name] == args[:name] } if args[:name]
  data
end

#get_vhd(args = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fog/hyperv/requests/compute/get_vhd.rb', line 12

def get_vhd(args = {})
  requires_one args, :vm_id, :path, :disk_number
  data = handle_mock_response args

  if args[:vm_id]
    data = case args[:vm_id].downcase
           when '20ff7fe3-fd54-425c-aa97-fbf3c2e7a868'
             data[1..-1]
           when '416e49fd-28dd-413c-9743-aa3e69e4807d'
             data[0]
           end
  elsif args[:path]
    data = data.find { |d| d[:path].casecmp(args[:path]).zero? }
  elsif args[:disk_number]
    Fog::Mock.not_implemented
  end

  data
end

#get_vm(args = {}) ⇒ Object



11
12
13
14
15
16
# File 'lib/fog/hyperv/requests/compute/get_vm.rb', line 11

def get_vm(args = {})
  data = handle_mock_response args
  data = data.find { |v| v[:name].casecmp(args[:name]).zero? } if args[:name]
  data = data.find { |v| v[:id].casecmp(args[:id]).zero? } if args[:id]
  data
end

#get_vm_bios(args = {}) ⇒ Object



12
13
14
15
16
# File 'lib/fog/hyperv/requests/compute/get_vm_bios.rb', line 12

def get_vm_bios(args = {})
  requires args, :vm_name

  handle_mock_response(args).find { |b| b[:vm_name].casecmp(args[:vm_name]).zero? }
end

#get_vm_dvd_drive(options = {}) ⇒ Object



12
13
14
15
16
# File 'lib/fog/hyperv/requests/compute/get_vm_dvd_drive.rb', line 12

def get_vm_dvd_drive(options = {})
  requires options, :vm_name

  handle_mock_response(args).find { |b| b[:vm_name].casecmp(args[:vm_name]).zero? }
end

#get_vm_firmware(args = {}) ⇒ Object



12
13
14
# File 'lib/fog/hyperv/requests/compute/get_vm_firmware.rb', line 12

def get_vm_firmware(args = {})
  handle_mock_response(args).find { |b| b[:vm_name].casecmp(args[:vm_name]).zero? }
end

#get_vm_floppy_disk_drive(options = {}) ⇒ Object



12
13
14
15
16
# File 'lib/fog/hyperv/requests/compute/get_vm_floppy_disk_drive.rb', line 12

def get_vm_floppy_disk_drive(options = {})
  requires options, :vm_name

  handle_mock_response(args).find { |b| b[:vm_name].casecmp(args[:vm_name]).zero? }
end

#get_vm_group(options = {}) ⇒ Object



13
14
15
16
17
18
# File 'lib/fog/hyperv/requests/compute/get_vm_group.rb', line 13

def get_vm_group(options = {})
  requires_version '10.0'

  # TODO
  Fog::Mock.not_implemented
end

#get_vm_hard_disk_drive(args = {}) ⇒ Object



12
13
14
15
16
# File 'lib/fog/hyperv/requests/compute/get_vm_hard_disk_drive.rb', line 12

def get_vm_hard_disk_drive(args = {})
  requires args, :vm_name

  handle_mock_response(args).find { |b| b[:vm_name].casecmp(args[:vm_name]).zero? }
end

#get_vm_host_cluster(options = {}) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/fog/hyperv/requests/compute/get_vm_host_cluster.rb', line 14

def get_vm_host_cluster(options = {})
  requires_version '10.0'
  requires options, :cluster_name

  # TODO
  Fog::Mock.not_implemented
end

#get_vm_network_adapter(args = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/hyperv/requests/compute/get_vm_network_adapter.rb', line 12

def get_vm_network_adapter(args = {})
  requires_one args, :vm_name, :all, :management_os

  data = handle_mock_response(args)
  if args[:all]
    data
  elsif args[:vm_name]
    data.find { |i| i[:vm_name].casecmp(args[:vm_name]).zero? }
  elsif args[:management_os]
    data.find { |i| i[:is_management_os] }
  end
end

#respond_to_missing?(method, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


395
396
397
# File 'lib/fog/hyperv/compute.rb', line 395

def respond_to_missing?(method, include_private = false)
  requests.find { |_, k| k == method } || super
end