fog-ovirt 1.2.0 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/Rakefile +1 -1
- data/lib/fog/ovirt/compute.rb +4 -4
- data/lib/fog/ovirt/compute/v3.rb +1 -2
- data/lib/fog/ovirt/compute/v4.rb +39 -24
- data/lib/fog/ovirt/models/compute/instance_type.rb +1 -0
- data/lib/fog/ovirt/models/compute/interfaces.rb +0 -2
- data/lib/fog/ovirt/models/compute/server.rb +0 -2
- data/lib/fog/ovirt/models/compute/volume.rb +1 -0
- data/lib/fog/ovirt/models/compute/volumes.rb +0 -2
- data/lib/fog/ovirt/requests/compute/v3/get_volume.rb +19 -0
- data/lib/fog/ovirt/requests/compute/v3/mock_files/volume.xml +21 -0
- data/lib/fog/ovirt/requests/compute/v4/add_interface.rb +0 -2
- data/lib/fog/ovirt/requests/compute/v4/add_volume.rb +2 -2
- data/lib/fog/ovirt/requests/compute/v4/create_vm.rb +4 -4
- data/lib/fog/ovirt/requests/compute/v4/get_volume.rb +19 -0
- data/lib/fog/ovirt/requests/compute/v4/list_template_volumes.rb +0 -2
- data/lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb +0 -2
- data/lib/fog/ovirt/requests/compute/v4/mock_files/disk.xml +28 -0
- data/lib/fog/ovirt/requests/compute/v4/mock_files/template.xml +48 -45
- data/lib/fog/ovirt/requests/compute/v4/mock_files/templates.xml +17 -2
- data/lib/fog/ovirt/requests/compute/v4/mock_files/vnic_profile.xml +10 -0
- data/lib/fog/ovirt/requests/compute/v4/storage_domains.rb +1 -0
- data/lib/fog/ovirt/requests/compute/v4/update_vm.rb +0 -2
- data/lib/fog/ovirt/version.rb +1 -1
- data/tests/ovirt/models/compute/instance_type_tests.rb +23 -0
- data/tests/ovirt/models/compute/instance_types_tests.rb +7 -0
- data/tests/ovirt/requests/compute/v4/client_tests.rb +1 -1
- data/tests/ovirt/requests/compute/v4/create_vm_tests.rb +1 -0
- metadata +12 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b24b23699c22d16d6f7a5da99f613ec7e7066022e5d6f0097fc15236745db8
|
4
|
+
data.tar.gz: e7f4357f8b657cd35625ebffe798cbc9bc09a65db3cb2aa6d5ec6f9706fad6c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 805c36e9f5631026c94921b4278f1a193e5e52287a270e83a13c7bc1dfcdcd04a9588d76eb572ae5e2c632aba578acad499fd74a6bc3ca1965ac72ce72c37f9c
|
7
|
+
data.tar.gz: 83ce48a44a9f6952b18e8314551529e44cb7caf5df055dfdfb2402a4e976966f1191970538f8c5215f67ecf917c195ef464f841f931e8b2707d6077bf704ab52
|
data/.rubocop.yml
CHANGED
data/Rakefile
CHANGED
data/lib/fog/ovirt/compute.rb
CHANGED
@@ -78,10 +78,10 @@ module Fog
|
|
78
78
|
class Mock
|
79
79
|
def initialize(options = {})
|
80
80
|
if options[:api_version] == "v4"
|
81
|
-
Fog::Ovirt::Compute::V4::Mock.
|
81
|
+
Fog::Ovirt::Compute::V4::Mock.include Fog::Ovirt::Compute::Collections
|
82
82
|
@client = Fog::Ovirt::Compute::V4::Mock.new(options)
|
83
83
|
else
|
84
|
-
Fog::Ovirt::Compute::V3::Mock.
|
84
|
+
Fog::Ovirt::Compute::V3::Mock.include Fog::Ovirt::Compute::Collections
|
85
85
|
@client = Fog::Ovirt::Compute::V3::Mock.new(options)
|
86
86
|
end
|
87
87
|
end
|
@@ -100,10 +100,10 @@ module Fog
|
|
100
100
|
class Real
|
101
101
|
def initialize(options = {})
|
102
102
|
if options[:api_version] == "v4"
|
103
|
-
Fog::Ovirt::Compute::V4::Real.
|
103
|
+
Fog::Ovirt::Compute::V4::Real.include Fog::Ovirt::Compute::Collections
|
104
104
|
@client = Fog::Ovirt::Compute::V4::Real.new(options)
|
105
105
|
else
|
106
|
-
Fog::Ovirt::Compute::V3::Real.
|
106
|
+
Fog::Ovirt::Compute::V3::Real.include Fog::Ovirt::Compute::Collections
|
107
107
|
@client = Fog::Ovirt::Compute::V3::Real.new(options)
|
108
108
|
end
|
109
109
|
end
|
data/lib/fog/ovirt/compute/v3.rb
CHANGED
@@ -34,6 +34,7 @@ module Fog
|
|
34
34
|
request :list_template_volumes
|
35
35
|
request :list_volumes
|
36
36
|
request :add_volume
|
37
|
+
request :get_volume
|
37
38
|
request :destroy_volume
|
38
39
|
request :update_volume
|
39
40
|
request :attach_volume
|
@@ -102,7 +103,6 @@ module Fog
|
|
102
103
|
class Real
|
103
104
|
include Shared
|
104
105
|
|
105
|
-
# rubocop:disable Metrics/AbcSize
|
106
106
|
def initialize(options = {})
|
107
107
|
require "rbovirt"
|
108
108
|
username = options[:ovirt_username]
|
@@ -121,7 +121,6 @@ module Fog
|
|
121
121
|
|
122
122
|
@client = ExceptionWrapper.new(OVIRT::Client.new(username, password, url, connection_opts))
|
123
123
|
end
|
124
|
-
# rubocop:enable Metrics/AbcSize
|
125
124
|
|
126
125
|
def api_version
|
127
126
|
client.api_version
|
data/lib/fog/ovirt/compute/v4.rb
CHANGED
@@ -33,6 +33,7 @@ module Fog
|
|
33
33
|
request :list_template_volumes
|
34
34
|
request :list_volumes
|
35
35
|
request :add_volume
|
36
|
+
request :get_volume
|
36
37
|
request :destroy_volume
|
37
38
|
request :update_volume
|
38
39
|
request :get_api_version
|
@@ -41,9 +42,9 @@ module Fog
|
|
41
42
|
request :list_operating_systems
|
42
43
|
|
43
44
|
module Shared
|
44
|
-
# rubocop:disable Metrics/
|
45
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
45
46
|
# converts an OVIRT object into an hash for fog to consume.
|
46
|
-
def
|
47
|
+
def shared_ovirt_attrs(obj)
|
47
48
|
opts = {}
|
48
49
|
# TODO: stop using instance_variables, they will change
|
49
50
|
obj.instance_variables.each do |v|
|
@@ -51,7 +52,7 @@ module Fog
|
|
51
52
|
value = obj.instance_variable_get(v)
|
52
53
|
|
53
54
|
if key == :network
|
54
|
-
opts[key] = obj.vnic_profile.present? ?
|
55
|
+
opts[key] = obj.vnic_profile.present? ? yield(obj) : value
|
55
56
|
next
|
56
57
|
end
|
57
58
|
|
@@ -69,9 +70,10 @@ module Fog
|
|
69
70
|
end
|
70
71
|
opts
|
71
72
|
end
|
72
|
-
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
73
73
|
|
74
|
-
# rubocop:
|
74
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
75
|
+
|
76
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
75
77
|
def get_attr_value(value, opts)
|
76
78
|
case value
|
77
79
|
when OvirtSDK4::List
|
@@ -102,29 +104,31 @@ module Fog
|
|
102
104
|
when OvirtSDK4::Console
|
103
105
|
{ :enabled => value.enabled }
|
104
106
|
else
|
105
|
-
if value.class.respond_to?(:
|
107
|
+
if value.class.respond_to?(:module_parent) && value.class.module_parent == OvirtSDK4
|
106
108
|
value.id if value.respond_to?(:id)
|
107
109
|
else
|
108
110
|
value.to_s.strip
|
109
111
|
end
|
110
112
|
end
|
111
113
|
end
|
112
|
-
# rubocop:enable Metrics/
|
113
|
-
|
114
|
-
def convert_string_to_bool(
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
value
|
114
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
115
|
+
|
116
|
+
def convert_string_to_bool(value)
|
117
|
+
case value
|
118
|
+
when "true"
|
119
|
+
true
|
120
|
+
when "false"
|
121
|
+
false
|
122
|
+
when Array
|
123
|
+
value.map { |elem| convert_string_to_bool(elem) }
|
124
|
+
when Hash
|
125
|
+
value.each do |key, elem|
|
126
|
+
value[key] = convert_string_to_bool(elem)
|
125
127
|
end
|
128
|
+
value
|
129
|
+
else
|
130
|
+
value
|
126
131
|
end
|
127
|
-
opts
|
128
132
|
end
|
129
133
|
end
|
130
134
|
|
@@ -135,6 +139,13 @@ module Fog
|
|
135
139
|
require "ovirtsdk4"
|
136
140
|
end
|
137
141
|
|
142
|
+
def ovirt_attrs(obj)
|
143
|
+
shared_ovirt_attrs(obj) do
|
144
|
+
xml = read_xml("vnic_profile.xml")
|
145
|
+
Nokogiri::XML(xml).xpath("/vnic_profile/network/@id").to_s
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
138
149
|
private
|
139
150
|
|
140
151
|
def client
|
@@ -151,7 +162,6 @@ module Fog
|
|
151
162
|
class Real
|
152
163
|
include Shared
|
153
164
|
|
154
|
-
# rubocop:disable Metrics/AbcSize
|
155
165
|
def initialize(options = {})
|
156
166
|
require "ovirtsdk4"
|
157
167
|
username = options[:ovirt_username]
|
@@ -172,7 +182,12 @@ module Fog
|
|
172
182
|
|
173
183
|
@client = ExceptionWrapper.new(OvirtSDK4::Connection.new(connection_opts))
|
174
184
|
end
|
175
|
-
|
185
|
+
|
186
|
+
def ovirt_attrs(obj)
|
187
|
+
shared_ovirt_attrs(obj) do
|
188
|
+
client.follow_link(obj.vnic_profile).network.id
|
189
|
+
end
|
190
|
+
end
|
176
191
|
|
177
192
|
def api_version
|
178
193
|
api = client.system_service.get
|
@@ -180,11 +195,11 @@ module Fog
|
|
180
195
|
end
|
181
196
|
|
182
197
|
def datacenter
|
183
|
-
|
198
|
+
datacenter_hash[:id]
|
184
199
|
end
|
185
200
|
|
186
201
|
def datacenter_hash
|
187
|
-
@datacenter_hash ||= datacenters.find { |x| x[:id] == @datacenter } if @datacenter
|
202
|
+
@datacenter_hash ||= datacenters.find { |x| x[:id] == @datacenter } || datacenters.find { |x| x[:name] == @datacenter } if @datacenter
|
188
203
|
@datacenter_hash ||= datacenters.first
|
189
204
|
end
|
190
205
|
|
@@ -9,7 +9,6 @@ module Fog
|
|
9
9
|
|
10
10
|
attr_accessor :vm
|
11
11
|
|
12
|
-
# rubocop:disable Metrics/AbcSize
|
13
12
|
def all(_filters = {})
|
14
13
|
requires :vm
|
15
14
|
if vm.is_a? Fog::Ovirt::Compute::Server
|
@@ -20,7 +19,6 @@ module Fog
|
|
20
19
|
raise ::Fog::Ovirt::Errors::OvirtError, "interfaces should have vm or template"
|
21
20
|
end
|
22
21
|
end
|
23
|
-
# rubocop:enable Metrics/AbcSize
|
24
22
|
|
25
23
|
def get(id)
|
26
24
|
new service.get_interface(id)
|
@@ -121,7 +121,6 @@ module Fog
|
|
121
121
|
vm_power_action(:start)
|
122
122
|
end
|
123
123
|
|
124
|
-
# rubocop:disable Metrics/AbcSize
|
125
124
|
def start_with_cloudinit(options = {})
|
126
125
|
wait_for { !locked? } if options[:blocking]
|
127
126
|
user_data = if options[:use_custom_script]
|
@@ -133,7 +132,6 @@ module Fog
|
|
133
132
|
reload
|
134
133
|
action_status
|
135
134
|
end
|
136
|
-
# rubocop:enable Metrics/AbcSize
|
137
135
|
|
138
136
|
def stop(_options = {})
|
139
137
|
vm_power_action(:stop)
|
@@ -9,7 +9,6 @@ module Fog
|
|
9
9
|
|
10
10
|
attr_accessor :vm
|
11
11
|
|
12
|
-
# rubocop:disable Metrics/AbcSize
|
13
12
|
def all(_filters = {})
|
14
13
|
if vm.is_a? Fog::Ovirt::Compute::Server
|
15
14
|
load service.list_vm_volumes(vm.id)
|
@@ -19,7 +18,6 @@ module Fog
|
|
19
18
|
load service.list_volumes
|
20
19
|
end
|
21
20
|
end
|
22
|
-
# rubocop:enable Metrics/AbcSize
|
23
21
|
|
24
22
|
def get(id)
|
25
23
|
new service.get_volume(id)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Ovirt
|
3
|
+
class Compute
|
4
|
+
class V3
|
5
|
+
class Real
|
6
|
+
def get_volume(id)
|
7
|
+
ovirt_attrs client.disk(id)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
class Mock
|
11
|
+
def get_volume(_id)
|
12
|
+
xml = read_xml("volume.xml")
|
13
|
+
ovirt_attrs OVIRT::Volume.new(self, Nokogiri::XML(xml).root)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<disks>
|
2
|
+
<disk href="/api/vms/192cdd3f-3281-4e20-b81d-93bdc57ac387/disks/9f68ecfd-218b-4f80-8e7a-e70b2ab054cd" id="9f68ecfd-218b-4f80-8e7a-e70b2ab054cd">
|
3
|
+
<name>Disk 2</name>
|
4
|
+
<link href="/api/vms/192cdd3f-3281-4e20-b81d-93bdc57ac387/disks/9f68ecfd-218b-4f80-8e7a-e70b2ab054cd/statistics" rel="statistics"/>
|
5
|
+
<vm href="/api/vms/192cdd3f-3281-4e20-b81d-93bdc57ac387" id="192cdd3f-3281-4e20-b81d-93bdc57ac387"/>
|
6
|
+
<storage_domains>
|
7
|
+
<storage_domain id="cba62b33-887a-410c-b367-e3d9229a72f7"/>
|
8
|
+
</storage_domains>
|
9
|
+
<size>5368709120</size>
|
10
|
+
<type>data</type>
|
11
|
+
<status>
|
12
|
+
<state>ok</state>
|
13
|
+
</status>
|
14
|
+
<interface>virtio</interface>
|
15
|
+
<format>raw</format>
|
16
|
+
<sparse>true</sparse>
|
17
|
+
<bootable>false</bootable>
|
18
|
+
<wipe_after_delete>false</wipe_after_delete>
|
19
|
+
<propagate_errors>false</propagate_errors>
|
20
|
+
</disk>
|
21
|
+
</disks>
|
@@ -3,7 +3,6 @@ module Fog
|
|
3
3
|
class Compute
|
4
4
|
class V4
|
5
5
|
class Real
|
6
|
-
# rubocop:disable Metrics/AbcSize
|
7
6
|
def add_interface(id, options = {})
|
8
7
|
raise ArgumentError, "instance id is a required parameter" unless id
|
9
8
|
vm = client.system_service.vms_service.vm_service(id)
|
@@ -26,7 +25,6 @@ module Fog
|
|
26
25
|
interface = OvirtSDK4::Nic.new(options)
|
27
26
|
nics_service.add(interface)
|
28
27
|
end
|
29
|
-
# rubocop:enable Metrics/AbcSize
|
30
28
|
end
|
31
29
|
|
32
30
|
class Mock
|
@@ -13,7 +13,7 @@ module Fog
|
|
13
13
|
disk_attachments_service.add(disk)
|
14
14
|
end
|
15
15
|
|
16
|
-
# rubocop:disable Metrics/
|
16
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
17
17
|
def add_options_defaults(options)
|
18
18
|
options = options.dup
|
19
19
|
options = convert_string_to_bool(options)
|
@@ -35,7 +35,7 @@ module Fog
|
|
35
35
|
options[:disk][:wipe_after_delete] = options.delete(:wipe_after_delete) if options[:disk][:wipe_after_delete].nil?
|
36
36
|
options
|
37
37
|
end
|
38
|
-
# rubocop:enable Metrics/
|
38
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
39
39
|
end
|
40
40
|
|
41
41
|
class Mock
|
@@ -21,7 +21,7 @@ module Fog
|
|
21
21
|
opts.delete(:disks)
|
22
22
|
end
|
23
23
|
|
24
|
-
# rubocop:disable Metrics/
|
24
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
|
25
25
|
def create_vm(attrs)
|
26
26
|
attrs = attrs.dup
|
27
27
|
attrs = convert_string_to_bool(attrs)
|
@@ -40,6 +40,8 @@ module Fog
|
|
40
40
|
end
|
41
41
|
|
42
42
|
vms_service = client.system_service.vms_service
|
43
|
+
|
44
|
+
attrs[:type] = attrs.fetch(:type, OvirtSDK4::VmType::SERVER)
|
43
45
|
attrs[:instance_type] = attrs[:instance_type].present? ? client.system_service.instance_types_service.instance_type_service(attrs[:instance_type]).get : nil
|
44
46
|
|
45
47
|
if attrs[:template].present?
|
@@ -63,9 +65,8 @@ module Fog
|
|
63
65
|
new_vm = OvirtSDK4::Vm.new(attrs)
|
64
66
|
vms_service.add(new_vm, :clone => attrs[:clone])
|
65
67
|
end
|
66
|
-
# rubocop:enable Metrics/
|
68
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
|
67
69
|
|
68
|
-
# rubocop:disable Metrics/AbcSize
|
69
70
|
def update_os_attrs(attrs)
|
70
71
|
attrs[:os] ||= {}
|
71
72
|
attrs[:os][:type] ||= "Other OS"
|
@@ -74,7 +75,6 @@ module Fog
|
|
74
75
|
|
75
76
|
attrs[:os] = OvirtSDK4::OperatingSystem.new(:type => attrs[:os][:type], :boot => OvirtSDK4::Boot.new(:devices => attrs[:os][:boot]))
|
76
77
|
end
|
77
|
-
# rubocop:enable Metrics/AbcSize
|
78
78
|
end
|
79
79
|
|
80
80
|
class Mock
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Fog
|
2
|
+
module Ovirt
|
3
|
+
class Compute
|
4
|
+
class V4
|
5
|
+
class Real
|
6
|
+
def get_volume(id)
|
7
|
+
ovirt_attrs client.system_service.disks_service.disk_service(id).get
|
8
|
+
end
|
9
|
+
end
|
10
|
+
class Mock
|
11
|
+
def get_volume(_id)
|
12
|
+
xml = read_xml("disk.xml")
|
13
|
+
ovirt_attrs OvirtSDK4::Reader.read(Nokogiri::XML(xml).root.to_s)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -3,7 +3,6 @@ module Fog
|
|
3
3
|
class Compute
|
4
4
|
class V4
|
5
5
|
class Real
|
6
|
-
# rubocop:disable Metrics/AbcSize
|
7
6
|
def list_template_volumes(template_id)
|
8
7
|
template = client.system_service.templates_service.template_service(template_id).get
|
9
8
|
attachments = client.follow_link(template.disk_attachments)
|
@@ -18,7 +17,6 @@ module Fog
|
|
18
17
|
ovirt_attrs attachment_disk
|
19
18
|
end
|
20
19
|
end
|
21
|
-
# rubocop:enable Metrics/AbcSize
|
22
20
|
end
|
23
21
|
class Mock
|
24
22
|
def list_template_volumes(_template_id)
|
@@ -3,7 +3,6 @@ module Fog
|
|
3
3
|
class Compute
|
4
4
|
class V4
|
5
5
|
class Real
|
6
|
-
# rubocop:disable Metrics/AbcSize
|
7
6
|
def list_vm_volumes(vm_id)
|
8
7
|
vm = client.system_service.vms_service.vm_service(vm_id).get
|
9
8
|
attachments = client.follow_link(vm.disk_attachments)
|
@@ -18,7 +17,6 @@ module Fog
|
|
18
17
|
ovirt_attrs attachment_disk
|
19
18
|
end
|
20
19
|
end
|
21
|
-
# rubocop:enable Metrics/AbcSize
|
22
20
|
end
|
23
21
|
class Mock
|
24
22
|
def list_vm_volumes(_vm_id)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<disks>
|
2
|
+
<disk href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05" id="4d1abf9a-da81-4de2-bf20-f5f060018e05">
|
3
|
+
<actions>
|
4
|
+
<link href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05/export" rel="export"/>
|
5
|
+
<link href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05/move" rel="move"/>
|
6
|
+
<link href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05/copy" rel="copy"/>
|
7
|
+
</actions>
|
8
|
+
<name>Disk 2</name>
|
9
|
+
<link href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05/permissions" rel="permissions"/>
|
10
|
+
<link href="/api/disks/4d1abf9a-da81-4de2-bf20-f5f060018e05/statistics" rel="statistics"/>
|
11
|
+
<alias>Disk 2</alias>
|
12
|
+
<image_id>d6034a90-39fa-46ee-888f-208a76f3baa4</image_id>
|
13
|
+
<storage_domains>
|
14
|
+
<storage_domain id="a23a4329-33b9-4246-a393-4f91071825b6"/>
|
15
|
+
</storage_domains>
|
16
|
+
<provisioned_size>4294967296</provisioned_size>
|
17
|
+
<actual_size>1073741824</actual_size>
|
18
|
+
<status>ok</status>
|
19
|
+
<interface>virtio</interface>
|
20
|
+
<format>cow</format>
|
21
|
+
<qcow_version>qcow2_v3</qcow_version>
|
22
|
+
<sparse>true</sparse>
|
23
|
+
<bootable>false</bootable>
|
24
|
+
<shareable>false</shareable>
|
25
|
+
<wipe_after_delete>false</wipe_after_delete>
|
26
|
+
<propagate_errors>false</propagate_errors>
|
27
|
+
</disk>
|
28
|
+
</disks>
|
@@ -1,45 +1,48 @@
|
|
1
|
-
<templates>
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<
|
12
|
-
|
13
|
-
<
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
</
|
18
|
-
<
|
19
|
-
<
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
<
|
32
|
-
<
|
33
|
-
|
34
|
-
|
35
|
-
</
|
36
|
-
<
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
<
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
</
|
1
|
+
<template href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323" id="2a08ba05-f3b1-4e5a-ade9-496466a8b323">
|
2
|
+
<name>hwp_small</name>
|
3
|
+
<description>hardware profile small</description>
|
4
|
+
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/disks" rel="disks"/>
|
5
|
+
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/nics" rel="nics"/>
|
6
|
+
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/cdroms" rel="cdroms"/>
|
7
|
+
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/permissions" rel="permissions"/>
|
8
|
+
<type>server</type>
|
9
|
+
<memory>536870912</memory>
|
10
|
+
<cpu>
|
11
|
+
<topology>
|
12
|
+
<cores>1</cores>
|
13
|
+
<sockets>1</sockets>
|
14
|
+
</topology>
|
15
|
+
</cpu>
|
16
|
+
<os>
|
17
|
+
<type>unassigned</type>
|
18
|
+
<boot>
|
19
|
+
<devices>
|
20
|
+
<device>network</device>
|
21
|
+
</devices>
|
22
|
+
</boot>
|
23
|
+
<kernel/>
|
24
|
+
<initrd/>
|
25
|
+
<cmdline/>
|
26
|
+
</os>
|
27
|
+
<cluster href="/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95" id="99408929-82cf-4dc7-a532-9d998063fa95"/>
|
28
|
+
<creation_time>2012-01-31T07:47:03.811Z</creation_time>
|
29
|
+
<origin>rhev</origin>
|
30
|
+
<high_availability>
|
31
|
+
<enabled>false</enabled>
|
32
|
+
<priority>1</priority>
|
33
|
+
</high_availability>
|
34
|
+
<display>
|
35
|
+
<type>spice</type>
|
36
|
+
<monitors>1</monitors>
|
37
|
+
</display>
|
38
|
+
<stateless>false</stateless>
|
39
|
+
<usb>
|
40
|
+
<enabled>true</enabled>
|
41
|
+
</usb>
|
42
|
+
<status>ok</status>
|
43
|
+
<version>
|
44
|
+
<version_name>base version</version_name>
|
45
|
+
<version_number>1</version_number>
|
46
|
+
<base_template href="/ovirt-engine/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323" id="2a08ba05-f3b1-4e5a-ade9-496466a8b323"/>
|
47
|
+
</version>
|
48
|
+
</template>
|
@@ -8,6 +8,11 @@
|
|
8
8
|
<link href="/api/templates/00000000-0000-0000-0000-000000000000/permissions" rel="permissions"/>
|
9
9
|
<type>desktop</type>
|
10
10
|
<status>ok</status>
|
11
|
+
<version>
|
12
|
+
<version_name>base version</version_name>
|
13
|
+
<version_number>1</version_number>
|
14
|
+
<base_template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
|
15
|
+
</version>
|
11
16
|
<memory>536870912</memory>
|
12
17
|
<cpu>
|
13
18
|
<topology>
|
@@ -47,7 +52,6 @@
|
|
47
52
|
<link href="/api/templates/05a5144f-8ef7-4151-b7f9-5014510b489e/cdroms" rel="cdroms"/>
|
48
53
|
<link href="/api/templates/05a5144f-8ef7-4151-b7f9-5014510b489e/permissions" rel="permissions"/>
|
49
54
|
<type>server</type>
|
50
|
-
<status>ok</status>
|
51
55
|
<memory>1073741824</memory>
|
52
56
|
<cpu>
|
53
57
|
<topology>
|
@@ -81,6 +85,12 @@
|
|
81
85
|
<usb>
|
82
86
|
<enabled>true</enabled>
|
83
87
|
</usb>
|
88
|
+
<status>ok</status>
|
89
|
+
<version>
|
90
|
+
<version_name>base version</version_name>
|
91
|
+
<version_number>1</version_number>
|
92
|
+
<base_template href="/ovirt-engine/api/templates/05a5144f-8ef7-4151-b7f9-5014510b489e" id="05a5144f-8ef7-4151-b7f9-5014510b489e"/>
|
93
|
+
</version>
|
84
94
|
</template>
|
85
95
|
<template href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323" id="2a08ba05-f3b1-4e5a-ade9-496466a8b323">
|
86
96
|
<name>hwp_small</name>
|
@@ -90,7 +100,6 @@
|
|
90
100
|
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/cdroms" rel="cdroms"/>
|
91
101
|
<link href="/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323/permissions" rel="permissions"/>
|
92
102
|
<type>server</type>
|
93
|
-
<status>ok</status>
|
94
103
|
<memory>536870912</memory>
|
95
104
|
<cpu>
|
96
105
|
<topology>
|
@@ -124,5 +133,11 @@
|
|
124
133
|
<usb>
|
125
134
|
<enabled>true</enabled>
|
126
135
|
</usb>
|
136
|
+
<status>ok</status>
|
137
|
+
<version>
|
138
|
+
<version_name>base version</version_name>
|
139
|
+
<version_number>1</version_number>
|
140
|
+
<base_template href="/ovirt-engine/api/templates/2a08ba05-f3b1-4e5a-ade9-496466a8b323" id="2a08ba05-f3b1-4e5a-ade9-496466a8b323"/>
|
141
|
+
</version>
|
127
142
|
</template>
|
128
143
|
</templates>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<vnic_profile href="/ovirt-engine/api/vnicprofiles/0000000a-000a-000a-000a-000000000398" id="0000000a-000a-000a-000a-000000000398">
|
2
|
+
<name>ovirtmgmt</name>
|
3
|
+
<link href="/ovirt-engine/api/vnicprofiles/0000000a-000a-000a-000a-000000000398/permissions" rel="permissions"/>
|
4
|
+
<pass_through>
|
5
|
+
<mode>disabled</mode>
|
6
|
+
</pass_through>
|
7
|
+
<port_mirroring>false</port_mirroring>
|
8
|
+
<network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009" id="00000000-0000-0000-0000-000000000009"/>
|
9
|
+
<network_filter href="/ovirt-engine/api/networkfilters/593567f3-0314-011f-020e-0000000002d2" id="593567f3-0314-011f-020e-0000000002d2"/>
|
10
|
+
</vnic_profile>
|
@@ -6,6 +6,7 @@ module Fog
|
|
6
6
|
def storage_domains(filter = {})
|
7
7
|
filter = filter.dup
|
8
8
|
role_filter = filter.delete(:role)
|
9
|
+
filter[:search] = create_search_by_datacenter(:search => filter[:search], :datacenter => datacenter_hash[:name])
|
9
10
|
client.system_service.storage_domains_service.list(filter).collect do |sd|
|
10
11
|
# Filter by role is not supported by the search language. The work around is to list all, then filter.
|
11
12
|
role_filter.nil? || sd.type == role_filter ? sd : nil
|
@@ -3,7 +3,6 @@ module Fog
|
|
3
3
|
class Compute
|
4
4
|
class V4
|
5
5
|
class Real
|
6
|
-
# rubocop:disable Metrics/AbcSize
|
7
6
|
def update_vm(attrs)
|
8
7
|
attrs = attrs.dup
|
9
8
|
attrs = convert_string_to_bool(attrs)
|
@@ -34,7 +33,6 @@ module Fog
|
|
34
33
|
end
|
35
34
|
vm_service.update(attrs)
|
36
35
|
end
|
37
|
-
# rubocop:enable Metrics/AbcSize
|
38
36
|
|
39
37
|
def wrap_attribute(attrs, attribute, klass)
|
40
38
|
if attrs[attribute].present?
|
data/lib/fog/ovirt/version.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
Shindo.tests("Fog::Ovirt::Compute.new | instance_type model", ["ovirt"]) do
|
2
|
+
instance_types = Fog::Ovirt::Compute.new.instance_types
|
3
|
+
instance_type = instance_types.last
|
4
|
+
|
5
|
+
tests("The instance_type model should") do
|
6
|
+
tests("have attributes") do
|
7
|
+
model_attribute_hash = instance_type.attributes
|
8
|
+
attributes = %i[id name memory sockets cores]
|
9
|
+
|
10
|
+
tests("The instance type model should respond to") do
|
11
|
+
attributes.each do |attribute|
|
12
|
+
test(attribute.to_s) { instance_type.respond_to? attribute }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
tests("The attributes hash should have key") do
|
16
|
+
attributes.each do |attribute|
|
17
|
+
test(attribute.to_s) { model_attribute_hash.key? attribute }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
test("be a kind of Fog::Ovirt::Compute::InstanceType") { instance_type.is_a? Fog::Ovirt::Compute::InstanceType }
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Shindo.tests("Fog::Ovirt::Compute.new | instance types collection", ["ovirt"]) do
|
2
|
+
instance_types = Fog::Ovirt::Compute.new.instance_types
|
3
|
+
|
4
|
+
tests("The instance types collection") do
|
5
|
+
test("should be a kind of Fog::Ovirt::Compute::InstanceTypes") { instance_types.is_a? Fog::Ovirt::Compute::InstanceTypes }
|
6
|
+
end
|
7
|
+
end
|
@@ -2,7 +2,7 @@ Shindo.tests("Fog::Ovirt::Compute.new | client", ["ovirt"]) do
|
|
2
2
|
before do
|
3
3
|
@client_mock = Object.new
|
4
4
|
def @client_mock.foo
|
5
|
-
raise
|
5
|
+
raise ::Fog::Ovirt::Errors::OvirtError, "Test"
|
6
6
|
end
|
7
7
|
|
8
8
|
@object_under_test = Fog::Ovirt::Compute::ExceptionWrapper.new(@client_mock)
|
@@ -5,6 +5,7 @@ Shindo.tests("Fog::Ovirt::Compute v4 | vm_create request", "ovirt") do
|
|
5
5
|
tests("Create VM") do
|
6
6
|
response = compute.create_vm(:name => "fog-" + name_base.to_s, :cluster_name => "Default")
|
7
7
|
test("should be a kind of OvirtSDK4::Vm") { response.is_a? OvirtSDK4::Vm }
|
8
|
+
test("should be a 'OvirtSDK4::VmType::SERVER' VM type by default") { response.type == OvirtSDK4::VmType::SERVER }
|
8
9
|
end
|
9
10
|
|
10
11
|
tests("Create VM from template (clone)") do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-ovirt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ori Rabin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-core
|
@@ -212,6 +212,7 @@ files:
|
|
212
212
|
- lib/fog/ovirt/requests/compute/v3/get_quota.rb
|
213
213
|
- lib/fog/ovirt/requests/compute/v3/get_template.rb
|
214
214
|
- lib/fog/ovirt/requests/compute/v3/get_virtual_machine.rb
|
215
|
+
- lib/fog/ovirt/requests/compute/v3/get_volume.rb
|
215
216
|
- lib/fog/ovirt/requests/compute/v3/list_affinity_group_vms.rb
|
216
217
|
- lib/fog/ovirt/requests/compute/v3/list_affinity_groups.rb
|
217
218
|
- lib/fog/ovirt/requests/compute/v3/list_clusters.rb
|
@@ -243,6 +244,7 @@ files:
|
|
243
244
|
- lib/fog/ovirt/requests/compute/v3/mock_files/templates.xml
|
244
245
|
- lib/fog/ovirt/requests/compute/v3/mock_files/vm.xml
|
245
246
|
- lib/fog/ovirt/requests/compute/v3/mock_files/vms.xml
|
247
|
+
- lib/fog/ovirt/requests/compute/v3/mock_files/volume.xml
|
246
248
|
- lib/fog/ovirt/requests/compute/v3/mock_files/volumes.xml
|
247
249
|
- lib/fog/ovirt/requests/compute/v3/remove_from_affinity_group.rb
|
248
250
|
- lib/fog/ovirt/requests/compute/v3/storage_domains.rb
|
@@ -265,6 +267,7 @@ files:
|
|
265
267
|
- lib/fog/ovirt/requests/compute/v4/get_quota.rb
|
266
268
|
- lib/fog/ovirt/requests/compute/v4/get_template.rb
|
267
269
|
- lib/fog/ovirt/requests/compute/v4/get_virtual_machine.rb
|
270
|
+
- lib/fog/ovirt/requests/compute/v4/get_volume.rb
|
268
271
|
- lib/fog/ovirt/requests/compute/v4/list_clusters.rb
|
269
272
|
- lib/fog/ovirt/requests/compute/v4/list_instance_types.rb
|
270
273
|
- lib/fog/ovirt/requests/compute/v4/list_networks.rb
|
@@ -283,6 +286,7 @@ files:
|
|
283
286
|
- lib/fog/ovirt/requests/compute/v4/mock_files/cluster.xml
|
284
287
|
- lib/fog/ovirt/requests/compute/v4/mock_files/clusters.xml
|
285
288
|
- lib/fog/ovirt/requests/compute/v4/mock_files/data_centers.xml
|
289
|
+
- lib/fog/ovirt/requests/compute/v4/mock_files/disk.xml
|
286
290
|
- lib/fog/ovirt/requests/compute/v4/mock_files/disks.xml
|
287
291
|
- lib/fog/ovirt/requests/compute/v4/mock_files/instance_type.xml
|
288
292
|
- lib/fog/ovirt/requests/compute/v4/mock_files/instance_types.xml
|
@@ -294,6 +298,7 @@ files:
|
|
294
298
|
- lib/fog/ovirt/requests/compute/v4/mock_files/templates.xml
|
295
299
|
- lib/fog/ovirt/requests/compute/v4/mock_files/vm.xml
|
296
300
|
- lib/fog/ovirt/requests/compute/v4/mock_files/vms.xml
|
301
|
+
- lib/fog/ovirt/requests/compute/v4/mock_files/vnic_profile.xml
|
297
302
|
- lib/fog/ovirt/requests/compute/v4/mock_files/volumes.xml
|
298
303
|
- lib/fog/ovirt/requests/compute/v4/storage_domains.rb
|
299
304
|
- lib/fog/ovirt/requests/compute/v4/update_interface.rb
|
@@ -311,6 +316,8 @@ files:
|
|
311
316
|
- tests/ovirt/compute_tests.rb
|
312
317
|
- tests/ovirt/models/compute/cluster_tests.rb
|
313
318
|
- tests/ovirt/models/compute/clusters_tests.rb
|
319
|
+
- tests/ovirt/models/compute/instance_type_tests.rb
|
320
|
+
- tests/ovirt/models/compute/instance_types_tests.rb
|
314
321
|
- tests/ovirt/models/compute/interface_tests.rb
|
315
322
|
- tests/ovirt/models/compute/interfaces_tests.rb
|
316
323
|
- tests/ovirt/models/compute/operating_system_tests.rb
|
@@ -353,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
353
360
|
- !ruby/object:Gem::Version
|
354
361
|
version: '0'
|
355
362
|
requirements: []
|
356
|
-
rubygems_version: 3.0.
|
363
|
+
rubygems_version: 3.0.8
|
357
364
|
signing_key:
|
358
365
|
specification_version: 4
|
359
366
|
summary: Module for the 'fog' gem to support Ovirt.
|
@@ -364,6 +371,8 @@ test_files:
|
|
364
371
|
- tests/ovirt/compute_tests.rb
|
365
372
|
- tests/ovirt/models/compute/cluster_tests.rb
|
366
373
|
- tests/ovirt/models/compute/clusters_tests.rb
|
374
|
+
- tests/ovirt/models/compute/instance_type_tests.rb
|
375
|
+
- tests/ovirt/models/compute/instance_types_tests.rb
|
367
376
|
- tests/ovirt/models/compute/interface_tests.rb
|
368
377
|
- tests/ovirt/models/compute/interfaces_tests.rb
|
369
378
|
- tests/ovirt/models/compute/operating_system_tests.rb
|