fog-ovirt 1.2.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -0
  3. data/.rubocop_todo.yml +17 -5
  4. data/Gemfile +0 -1
  5. data/Gemfile.local.rb +0 -0
  6. data/README.md +2 -6
  7. data/Rakefile +2 -8
  8. data/fog-ovirt.gemspec +3 -2
  9. data/lib/fog/ovirt/compute.rb +5 -29
  10. data/lib/fog/ovirt/compute/v4.rb +42 -24
  11. data/lib/fog/ovirt/models/compute/instance_type.rb +1 -0
  12. data/lib/fog/ovirt/models/compute/interfaces.rb +0 -2
  13. data/lib/fog/ovirt/models/compute/server.rb +0 -2
  14. data/lib/fog/ovirt/models/compute/volume.rb +1 -0
  15. data/lib/fog/ovirt/models/compute/volumes.rb +0 -2
  16. data/lib/fog/ovirt/requests/compute/v4/add_interface.rb +0 -2
  17. data/lib/fog/ovirt/requests/compute/v4/add_volume.rb +2 -2
  18. data/lib/fog/ovirt/requests/compute/v4/create_vm.rb +4 -4
  19. data/lib/fog/ovirt/requests/compute/v4/get_volume.rb +19 -0
  20. data/lib/fog/ovirt/requests/compute/v4/list_template_volumes.rb +0 -2
  21. data/lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb +0 -2
  22. data/lib/fog/ovirt/requests/compute/v4/mock_files/disk.xml +28 -0
  23. data/lib/fog/ovirt/requests/compute/v4/mock_files/operating_systems.xml +4 -4
  24. data/lib/fog/ovirt/requests/compute/v4/mock_files/template.xml +48 -45
  25. data/lib/fog/ovirt/requests/compute/v4/mock_files/templates.xml +17 -2
  26. data/lib/fog/ovirt/requests/compute/v4/mock_files/vnic_profile.xml +10 -0
  27. data/lib/fog/ovirt/requests/compute/v4/storage_domains.rb +1 -0
  28. data/lib/fog/ovirt/requests/compute/v4/update_vm.rb +0 -2
  29. data/lib/fog/ovirt/version.rb +1 -1
  30. data/tests/ovirt/models/compute/instance_type_tests.rb +23 -0
  31. data/tests/ovirt/models/compute/instance_types_tests.rb +7 -0
  32. data/tests/ovirt/requests/compute/v4/client_tests.rb +1 -1
  33. data/tests/ovirt/requests/compute/v4/create_vm_tests.rb +1 -0
  34. metadata +28 -84
  35. data/lib/fog/ovirt/compute/v3.rb +0 -137
  36. data/lib/fog/ovirt/requests/compute/v3/activate_volume.rb +0 -23
  37. data/lib/fog/ovirt/requests/compute/v3/add_interface.rb +0 -22
  38. data/lib/fog/ovirt/requests/compute/v3/add_to_affinity_group.rb +0 -23
  39. data/lib/fog/ovirt/requests/compute/v3/add_volume.rb +0 -23
  40. data/lib/fog/ovirt/requests/compute/v3/attach_volume.rb +0 -24
  41. data/lib/fog/ovirt/requests/compute/v3/create_affinity_group.rb +0 -20
  42. data/lib/fog/ovirt/requests/compute/v3/create_vm.rb +0 -20
  43. data/lib/fog/ovirt/requests/compute/v3/datacenters.rb +0 -22
  44. data/lib/fog/ovirt/requests/compute/v3/deactivate_volume.rb +0 -24
  45. data/lib/fog/ovirt/requests/compute/v3/destroy_affinity_group.rb +0 -21
  46. data/lib/fog/ovirt/requests/compute/v3/destroy_interface.rb +0 -24
  47. data/lib/fog/ovirt/requests/compute/v3/destroy_vm.rb +0 -21
  48. data/lib/fog/ovirt/requests/compute/v3/destroy_volume.rb +0 -24
  49. data/lib/fog/ovirt/requests/compute/v3/detach_volume.rb +0 -24
  50. data/lib/fog/ovirt/requests/compute/v3/get_affinity_group.rb +0 -20
  51. data/lib/fog/ovirt/requests/compute/v3/get_api_version.rb +0 -18
  52. data/lib/fog/ovirt/requests/compute/v3/get_cluster.rb +0 -19
  53. data/lib/fog/ovirt/requests/compute/v3/get_instance_type.rb +0 -19
  54. data/lib/fog/ovirt/requests/compute/v3/get_quota.rb +0 -19
  55. data/lib/fog/ovirt/requests/compute/v3/get_template.rb +0 -19
  56. data/lib/fog/ovirt/requests/compute/v3/get_virtual_machine.rb +0 -19
  57. data/lib/fog/ovirt/requests/compute/v3/list_affinity_group_vms.rb +0 -24
  58. data/lib/fog/ovirt/requests/compute/v3/list_affinity_groups.rb +0 -22
  59. data/lib/fog/ovirt/requests/compute/v3/list_clusters.rb +0 -21
  60. data/lib/fog/ovirt/requests/compute/v3/list_instance_types.rb +0 -21
  61. data/lib/fog/ovirt/requests/compute/v3/list_networks.rb +0 -18
  62. data/lib/fog/ovirt/requests/compute/v3/list_operating_systems.rb +0 -21
  63. data/lib/fog/ovirt/requests/compute/v3/list_quotas.rb +0 -21
  64. data/lib/fog/ovirt/requests/compute/v3/list_template_interfaces.rb +0 -21
  65. data/lib/fog/ovirt/requests/compute/v3/list_template_volumes.rb +0 -21
  66. data/lib/fog/ovirt/requests/compute/v3/list_templates.rb +0 -21
  67. data/lib/fog/ovirt/requests/compute/v3/list_virtual_machines.rb +0 -21
  68. data/lib/fog/ovirt/requests/compute/v3/list_vm_interfaces.rb +0 -21
  69. data/lib/fog/ovirt/requests/compute/v3/list_vm_volumes.rb +0 -21
  70. data/lib/fog/ovirt/requests/compute/v3/list_volumes.rb +0 -21
  71. data/lib/fog/ovirt/requests/compute/v3/mock_files/affinitygroup.xml +0 -8
  72. data/lib/fog/ovirt/requests/compute/v3/mock_files/affinitygroup_vms.xml +0 -9
  73. data/lib/fog/ovirt/requests/compute/v3/mock_files/affinitygroups.xml +0 -17
  74. data/lib/fog/ovirt/requests/compute/v3/mock_files/cluster.xml +0 -20
  75. data/lib/fog/ovirt/requests/compute/v3/mock_files/clusters.xml +0 -39
  76. data/lib/fog/ovirt/requests/compute/v3/mock_files/data_centers.xml +0 -17
  77. data/lib/fog/ovirt/requests/compute/v3/mock_files/disks.xml +0 -58
  78. data/lib/fog/ovirt/requests/compute/v3/mock_files/instance_type.xml +0 -42
  79. data/lib/fog/ovirt/requests/compute/v3/mock_files/instance_types.xml +0 -197
  80. data/lib/fog/ovirt/requests/compute/v3/mock_files/nics.xml +0 -10
  81. data/lib/fog/ovirt/requests/compute/v3/mock_files/operating_systems.xml +0 -10
  82. data/lib/fog/ovirt/requests/compute/v3/mock_files/quotas.xml +0 -7
  83. data/lib/fog/ovirt/requests/compute/v3/mock_files/storage_domains.xml +0 -36
  84. data/lib/fog/ovirt/requests/compute/v3/mock_files/template.xml +0 -39
  85. data/lib/fog/ovirt/requests/compute/v3/mock_files/templates.xml +0 -110
  86. data/lib/fog/ovirt/requests/compute/v3/mock_files/vm.xml +0 -52
  87. data/lib/fog/ovirt/requests/compute/v3/mock_files/vms.xml +0 -152
  88. data/lib/fog/ovirt/requests/compute/v3/mock_files/volumes.xml +0 -40
  89. data/lib/fog/ovirt/requests/compute/v3/remove_from_affinity_group.rb +0 -23
  90. data/lib/fog/ovirt/requests/compute/v3/storage_domains.rb +0 -22
  91. data/lib/fog/ovirt/requests/compute/v3/update_interface.rb +0 -36
  92. data/lib/fog/ovirt/requests/compute/v3/update_vm.rb +0 -20
  93. data/lib/fog/ovirt/requests/compute/v3/update_volume.rb +0 -37
  94. data/lib/fog/ovirt/requests/compute/v3/vm_action.rb +0 -24
  95. data/lib/fog/ovirt/requests/compute/v3/vm_start_with_cloudinit.rb +0 -21
  96. data/lib/fog/ovirt/requests/compute/v3/vm_ticket.rb +0 -19
  97. data/tests/ovirt/requests/compute/v3/client_tests.rb +0 -31
  98. data/tests/ovirt/requests/compute/v3/create_vm_tests.rb +0 -17
  99. data/tests/ovirt/requests/compute/v3/destroy_vm_tests.rb +0 -14
  100. data/tests/ovirt/requests/compute/v3/list_datacenters_tests.rb +0 -11
  101. data/tests/ovirt/requests/compute/v3/list_quotas_tests.rb +0 -10
  102. data/tests/ovirt/requests/compute/v3/list_storage_domains_tests.rb +0 -11
  103. data/tests/ovirt/requests/compute/v3/update_vm_tests.rb +0 -14
  104. data/tests/ovirt/requests/compute/v3/update_volume_tests.rb +0 -15
@@ -1,137 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3 < Fog::Service
5
- requires :ovirt_username, :ovirt_password
6
- recognizes :ovirt_url, :ovirt_server, :ovirt_port, :ovirt_api_path, :ovirt_datacenter,
7
- :ovirt_filtered_api, :public_key, :api_version,
8
- :ovirt_ca_cert_store, :ovirt_ca_cert_file, :ovirt_ca_no_verify
9
- request_path "fog/ovirt/requests/compute/v3"
10
-
11
- request :vm_action
12
- request :vm_start_with_cloudinit
13
- request :destroy_vm
14
- request :create_vm
15
- request :update_vm
16
- request :datacenters
17
- request :storage_domains
18
- request :list_virtual_machines
19
- request :get_virtual_machine
20
- request :list_templates
21
- request :get_template
22
- request :list_instance_types
23
- request :get_instance_type
24
- request :list_clusters
25
- request :get_cluster
26
- request :add_interface
27
- request :destroy_interface
28
- request :update_interface
29
- request :list_vm_interfaces
30
- request :list_template_interfaces
31
- request :list_networks
32
- request :vm_ticket
33
- request :list_vm_volumes
34
- request :list_template_volumes
35
- request :list_volumes
36
- request :add_volume
37
- request :destroy_volume
38
- request :update_volume
39
- request :attach_volume
40
- request :detach_volume
41
- request :activate_volume
42
- request :deactivate_volume
43
- request :get_api_version
44
- request :list_quotas
45
- request :get_quota
46
- request :list_affinity_groups
47
- request :get_affinity_group
48
- request :list_affinity_group_vms
49
- request :create_affinity_group
50
- request :destroy_affinity_group
51
- request :add_to_affinity_group
52
- request :remove_from_affinity_group
53
- request :list_operating_systems
54
-
55
- module Shared
56
- # converts an OVIRT object into an hash for fog to consume.
57
- def ovirt_attrs(obj)
58
- opts = { :raw => obj }
59
- obj.instance_variables.each do |v|
60
- key = v.to_s.delete("@").to_sym
61
- value = obj.instance_variable_get(v)
62
- # ignore nil values
63
- next if value.nil?
64
-
65
- opts[key] = case value
66
- when OVIRT::Link
67
- value.id
68
- when OVIRT::TemplateVersion
69
- value
70
- when Array
71
- value
72
- when Hash
73
- value
74
- else
75
- value.to_s.strip
76
- end
77
- end
78
- opts
79
- end
80
- end
81
-
82
- class Mock
83
- include Shared
84
-
85
- def initialize(_options = {})
86
- require "rbovirt"
87
- end
88
-
89
- private
90
-
91
- def client
92
- return @client if defined?(@client)
93
- end
94
-
95
- # read mocks xml
96
- def read_xml(file_name)
97
- file_path = File.join(__dir__, "../requests", "compute/v3", "mock_files", file_name)
98
- File.read(file_path)
99
- end
100
- end
101
-
102
- class Real
103
- include Shared
104
-
105
- # rubocop:disable Metrics/AbcSize
106
- def initialize(options = {})
107
- require "rbovirt"
108
- username = options[:ovirt_username]
109
- password = options[:ovirt_password]
110
- server = options[:ovirt_server]
111
- port = options[:ovirt_port] || 8080
112
- api_path = options[:ovirt_api_path] || "/api"
113
- url = options[:ovirt_url] || "#{@scheme}://#{server}:#{port}#{api_path}"
114
-
115
- connection_opts = {}
116
- connection_opts[:datacenter_id] = options[:ovirt_datacenter]
117
- connection_opts[:ca_cert_store] = options[:ovirt_ca_cert_store]
118
- connection_opts[:ca_cert_file] = options[:ovirt_ca_cert_file]
119
- connection_opts[:ca_no_verify] = options[:ovirt_ca_no_verify]
120
- connection_opts[:filtered_api] = options[:ovirt_filtered_api]
121
-
122
- @client = ExceptionWrapper.new(OVIRT::Client.new(username, password, url, connection_opts))
123
- end
124
- # rubocop:enable Metrics/AbcSize
125
-
126
- def api_version
127
- client.api_version
128
- end
129
-
130
- private
131
-
132
- attr_reader :client
133
- end
134
- end
135
- end
136
- end
137
- end
@@ -1,23 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def activate_volume(id, options)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "volume id is a required parameter for activate-volume" unless options.key? :id
9
- client.activate_volume(id, options[:id])
10
- end
11
- end
12
-
13
- class Mock
14
- def activate_volume(id, options)
15
- raise ArgumentError, "instance id is a required parameter" unless id
16
- raise ArgumentError, "volume id is a required parameter for activate-volume" unless options.key? :id
17
- true
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def add_interface(id, options = {})
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
-
9
- client.add_interface(id, options)
10
- end
11
- end
12
-
13
- class Mock
14
- def add_interface(id, _options = {})
15
- raise ArgumentError, "instance id is a required parameter" unless id
16
- true
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,23 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def add_to_affinity_group(id, options = {})
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "affinity group id is a required parameter for add-to-affinity-group" unless options.key? :id
9
- client.add_vm_to_affinity_group(options[:id], id)
10
- end
11
- end
12
-
13
- class Mock
14
- def add_to_affinity_group(id, options = {})
15
- raise ArgumentError, "instance id is a required parameter" unless id
16
- raise ArgumentError, "affinity group id is a required parameter for add-to-affinity-group" unless options.key? :id
17
- true
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- DISK_SIZE_TO_GB = 1_073_741_824
7
- def add_volume(id, options = {})
8
- raise ArgumentError, "instance id is a required parameter" unless id
9
- options[:size] = options[:size_gb].to_i * DISK_SIZE_TO_GB if options[:size_gb]
10
- client.add_volume(id, options)
11
- end
12
- end
13
-
14
- class Mock
15
- def add_volume(id, _options = {})
16
- raise ArgumentError, "instance id is a required parameter" unless id
17
- true
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def attach_volume(id, options)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "volume id is a required parameter for attach-volume" unless options.key? :id
9
-
10
- client.attach_volume(id, options[:id])
11
- end
12
- end
13
-
14
- class Mock
15
- def attach_volume(id, options)
16
- raise ArgumentError, "instance id is a required parameter" unless id
17
- raise ArgumentError, "volume id is a required parameter for attach-volume" unless options.key? :id
18
- true
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,20 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def create_affinity_group(attrs)
7
- client.create_affinity_group(attrs)
8
- end
9
- end
10
-
11
- class Mock
12
- def create_affinity_group(_attrs)
13
- xml = read_xml("affinitygroup.xml")
14
- OVIRT::AffinityGroup.new(self, Nokogiri::XML(xml).root)
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def create_vm(attrs)
7
- client.create_vm(attrs)
8
- end
9
- end
10
-
11
- class Mock
12
- def create_vm(_attrs)
13
- xml = read_xml("vm.xml")
14
- OVIRT::VM.new(self, Nokogiri::XML(xml).root)
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,22 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def datacenters(filter = {})
7
- client.datacenters(filter).map { |ovirt_obj| ovirt_attrs ovirt_obj }
8
- end
9
- end
10
-
11
- class Mock
12
- def datacenters(_filters = {})
13
- xml = read_xml "data_centers.xml"
14
- Nokogiri::XML(xml).xpath("/data_centers/data_center").map do |dc|
15
- ovirt_attrs OVIRT::DataCenter.new(self, dc)
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,24 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def deactivate_volume(id, options)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "volume id is a required parameter for deactivate-volume" unless options.key? :id
9
-
10
- client.deactivate_volume(id, options[:id])
11
- end
12
- end
13
-
14
- class Mock
15
- def deactivate_volume(id, options)
16
- raise ArgumentError, "instance id is a required parameter" unless id
17
- raise ArgumentError, "volume id is a required parameter for deactivate-volume" unless options.key? :id
18
- true
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,21 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def destroy_affinity_group(id)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- client.destroy_affinity_group(id)
9
- end
10
- end
11
-
12
- class Mock
13
- def destroy_affinity_group(id)
14
- raise ArgumentError, "instance id is a required parameter" unless id
15
- true
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def destroy_interface(id, options)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.key? :id
9
-
10
- client.destroy_interface(id, options[:id])
11
- end
12
- end
13
-
14
- class Mock
15
- def destroy_interface(id, options)
16
- raise ArgumentError, "instance id is a required parameter" unless id
17
- raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.key? :id
18
- true
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,21 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def destroy_vm(options = {})
7
- raise ArgumentError, "instance id is a required parameter" unless options.key? :id
8
- client.destroy_vm(options[:id])
9
- end
10
- end
11
-
12
- class Mock
13
- def destroy_vm(options = {})
14
- raise ArgumentError, "instance id is a required parameter" unless options.key? :id
15
- true
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- module Fog
2
- module Ovirt
3
- class Compute
4
- class V3
5
- class Real
6
- def destroy_volume(id, options)
7
- raise ArgumentError, "instance id is a required parameter" unless id
8
- raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.key? :id
9
-
10
- client.destroy_volume(id, options[:id])
11
- end
12
- end
13
-
14
- class Mock
15
- def destroy_volume(id, options)
16
- raise ArgumentError, "instance id is a required parameter" unless id
17
- raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.key? :id
18
- true
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end