fog-ovirt 1.2.0 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|