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

Inherits:
Shared
  • Object
show all
Defined in:
lib/fog/hyperv/compute.rb,
lib/fog/hyperv/compute/requests/get_vm.rb,
lib/fog/hyperv/compute/requests/get_vhd.rb,
lib/fog/hyperv/compute/requests/save_vm.rb,
lib/fog/hyperv/compute/requests/stop_vm.rb,
lib/fog/hyperv/compute/requests/start_vm.rb,
lib/fog/hyperv/compute/requests/resume_vm.rb,
lib/fog/hyperv/compute/requests/update_vm.rb,
lib/fog/hyperv/compute/requests/restart_vm.rb,
lib/fog/hyperv/compute/requests/suspend_vm.rb,
lib/fog/hyperv/compute/requests/get_vm_bios.rb,
lib/fog/hyperv/compute/requests/get_vm_group.rb,
lib/fog/hyperv/compute/requests/get_vm_firmware.rb,
lib/fog/hyperv/compute/requests/get_cluster_node.rb,
lib/fog/hyperv/compute/requests/get_vm_dvd_drive.rb,
lib/fog/hyperv/compute/requests/get_vm_host_cluster.rb,
lib/fog/hyperv/compute/requests/get_vm_hard_disk_drive.rb,
lib/fog/hyperv/compute/requests/get_vm_network_adapter.rb,
lib/fog/hyperv/compute/requests/connect_vm_network_adapter.rb,
lib/fog/hyperv/compute/requests/get_vm_network_adapter_vlan.rb,
lib/fog/hyperv/compute/requests/disconnect_vm_network_adapter.rb

Overview

Mocked version of the provider for use in testing

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Shared

#version

Constructor Details

#initialize(_options = {}) ⇒ Mock

rubocop:disable Lint/MissingSuper – No super method



197
198
199
# File 'lib/fog/hyperv/compute.rb', line 197

def initialize(_options = {}) # rubocop:disable Lint/MissingSuper -- No super method
  require 'fog/json'
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



201
202
203
204
205
206
207
# File 'lib/fog/hyperv/compute.rb', line 201

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)


213
214
215
# File 'lib/fog/hyperv/compute.rb', line 213

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

Instance Method Details

#connect_vm_network_adapter(*args) ⇒ Object



39
# File 'lib/fog/hyperv/compute/requests/connect_vm_network_adapter.rb', line 39

def connect_vm_network_adapter(*args); end

#disconnect_vm_network_adapter(*args) ⇒ Object



27
# File 'lib/fog/hyperv/compute/requests/disconnect_vm_network_adapter.rb', line 27

def disconnect_vm_network_adapter(*args); end

#get_cluster_node(**args) ⇒ Object



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

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/compute/requests/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..]
           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/compute/requests/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



17
18
19
# File 'lib/fog/hyperv/compute/requests/get_vm_bios.rb', line 17

def get_vm_bios(**args)
  handle_mock_response(args).find { |b| b[:vm_id].casecmp(args[:vm_id]).zero? }
end

#get_vm_dvd_drive(**options) ⇒ Object



19
20
21
22
23
# File 'lib/fog/hyperv/compute/requests/get_vm_dvd_drive.rb', line 19

def get_vm_dvd_drive(**options)
  requires options, :vm_id

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

#get_vm_firmware(**args) ⇒ Object



17
18
19
# File 'lib/fog/hyperv/compute/requests/get_vm_firmware.rb', line 17

def get_vm_firmware(**args)
  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/compute/requests/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



18
19
20
21
22
# File 'lib/fog/hyperv/compute/requests/get_vm_hard_disk_drive.rb', line 18

def get_vm_hard_disk_drive(**args)
  requires args, :vm_id

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

#get_vm_host_cluster(**options) ⇒ Object



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

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



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fog/hyperv/compute/requests/get_vm_network_adapter.rb', line 28

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

#get_vm_network_adapter_vlan(**args) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/fog/hyperv/compute/requests/get_vm_network_adapter_vlan.rb', line 30

def get_vm_network_adapter_vlan(**args)
  data = handle_mock_response(args)
  if args[:vm_id]
    data.find { |i| i[:vm_id].casecmp(args[:vm_id]).zero? }
  elsif args[:management_os]
    data.find { |i| i[:is_management_os] }
  else
    data
  end
end

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

Returns:

  • (Boolean)


209
210
211
# File 'lib/fog/hyperv/compute.rb', line 209

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

#restart_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/restart_vm.rb', line 18

def restart_vm(**_)
  true
end

#resume_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/resume_vm.rb', line 18

def resume_vm(**_)
  true
end

#save_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/save_vm.rb', line 18

def save_vm(**_)
  true
end

#start_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/start_vm.rb', line 18

def start_vm(**_)
  true
end

#stop_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/stop_vm.rb', line 18

def stop_vm(**_)
  true
end

#suspend_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/suspend_vm.rb', line 18

def suspend_vm(**_)
  true
end

#update_vm(**_) ⇒ Object



18
19
20
# File 'lib/fog/hyperv/compute/requests/update_vm.rb', line 18

def update_vm(**_)
  true
end