ovirt 0.4.2 → 0.5.0
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/lib/ovirt/event.rb +0 -1
- data/lib/ovirt/exception.rb +3 -0
- data/lib/ovirt/legacy_support/cloud_init_via_floppy_payload.rb +7 -0
- data/lib/ovirt/service.rb +4 -2
- data/lib/ovirt/version.rb +1 -1
- data/lib/ovirt/vm.rb +34 -0
- data/spec/factories/service.rb +5 -0
- data/spec/factories/vm.rb +40 -0
- data/spec/legacy_support/cloud_init_via_floppy_payload_spec.rb +14 -0
- data/spec/service_spec.rb +23 -7
- data/spec/spec_helper.rb +4 -0
- data/spec/template_spec.rb +6 -6
- data/spec/vm_spec.rb +71 -55
- metadata +24 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8e5086cc3efac6612e4e1631b5af6d14c6c5280
|
4
|
+
data.tar.gz: 25b06d7e055266368c2a3bf5ce9348a464459a9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0fd8d69ed5af1e4392a023307b4165baea65a35c009d6da188f01e072d1caf5c2e06d2cc8d9683b0879d7fc204a233e334171f999812a3eac047b9c1f8e1ed7
|
7
|
+
data.tar.gz: daad3060acc9154fb9271c9e24ca2e3202ba5b82d7075cc21809a9a0c45312050fabb95dbcd85ea775dc3c19e1a85ac195c384f9a2f593af214d55b13dbf20a2
|
data/lib/ovirt/event.rb
CHANGED
@@ -298,7 +298,6 @@ module Ovirt
|
|
298
298
|
521 => "USER_SUSPEND_VM_FINISH_FAILURE",
|
299
299
|
522 => "HOST_SET_NONOPERATIONAL_DOMAIN",
|
300
300
|
523 => "HOST_SET_NONOPERATIONAL_DOMAIN_FAILED",
|
301
|
-
524 => "AUTO_SUSPEND_VM",
|
302
301
|
524 => "HOST_DOMAIN_DELAY_INTERVAL",
|
303
302
|
525 => "AUTO_SUSPEND_VM_FINISH_SUCCESS",
|
304
303
|
526 => "AUTO_SUSPEND_VM_FINISH_FAILURE",
|
data/lib/ovirt/exception.rb
CHANGED
data/lib/ovirt/service.rb
CHANGED
@@ -240,8 +240,10 @@ module Ovirt
|
|
240
240
|
doc = Nokogiri::XML(response)
|
241
241
|
action = doc.xpath("action").first
|
242
242
|
node = action || doc
|
243
|
-
|
244
|
-
|
243
|
+
fault = node.xpath("fault/detail").text
|
244
|
+
usage = node.xpath("usage_message/message").text
|
245
|
+
raise Ovirt::Error, fault unless fault.blank?
|
246
|
+
raise Ovirt::UsageError, usage
|
245
247
|
end
|
246
248
|
|
247
249
|
def parse_set_cookie_header(set_cookie_header)
|
data/lib/ovirt/version.rb
CHANGED
data/lib/ovirt/vm.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'legacy_support/cloud_init_via_floppy_payload'
|
2
|
+
|
1
3
|
module Ovirt
|
2
4
|
class Vm < Template
|
3
5
|
self.top_level_strings = [:name, :origin, :type, :description]
|
@@ -6,6 +8,8 @@ module Ovirt
|
|
6
8
|
self.top_level_timestamps = [:creation_time, :start_time]
|
7
9
|
self.top_level_objects = [:cluster, :template, :host]
|
8
10
|
|
11
|
+
include CloudInitViaFloppyPayload
|
12
|
+
|
9
13
|
attr_accessor :creation_status_link
|
10
14
|
|
11
15
|
def initialize(*args)
|
@@ -122,6 +126,22 @@ module Ovirt
|
|
122
126
|
end
|
123
127
|
end
|
124
128
|
|
129
|
+
def cloud_init=(content)
|
130
|
+
if service.version[:major].to_i == 3 && service.version[:minor].to_i < 4
|
131
|
+
super # Use legacy method defined in CloudInitViaFloppyPayload
|
132
|
+
else
|
133
|
+
begin
|
134
|
+
update! do |xml|
|
135
|
+
xml.initialization do
|
136
|
+
converted_cloud_init(content).each { |k, v| xml.send(k, v) }
|
137
|
+
end
|
138
|
+
end
|
139
|
+
rescue Ovirt::UsageError => err
|
140
|
+
raise CloudInitSyntaxError, err.message
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
125
145
|
# Attaches a payload.
|
126
146
|
#
|
127
147
|
# payloads:: Hash of payload_type => {file_name => content} that will be
|
@@ -332,5 +352,19 @@ module Ovirt
|
|
332
352
|
raise TemplateAlreadyExists, err.message if err.message.include?("Template name already exists")
|
333
353
|
raise
|
334
354
|
end
|
355
|
+
|
356
|
+
private
|
357
|
+
|
358
|
+
def converted_cloud_init(content)
|
359
|
+
ovirt_cloud_init_keys = %w(active_directory_ou authorized_ssh_keys dns_search dns_servers domain host_name input_locale nic_configurations org_name regenerate_ssh_keys root_password system_locale timezone ui_language user_locale user_name)
|
360
|
+
|
361
|
+
require 'yaml'
|
362
|
+
raw_content = YAML.load(content)
|
363
|
+
|
364
|
+
hash = ovirt_cloud_init_keys.each_with_object({}) { |k, h| h[k] = raw_content.delete(k) }
|
365
|
+
custom_script = YAML.dump(raw_content).to_s.sub("---\n", "")
|
366
|
+
hash[:custom_script] = custom_script unless custom_script.blank?
|
367
|
+
hash.delete_nils
|
368
|
+
end
|
335
369
|
end
|
336
370
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :vm, :class => "Ovirt::Vm" do
|
3
|
+
initialize_with { new(service, {}) }
|
4
|
+
service { build(:service) }
|
5
|
+
end
|
6
|
+
|
7
|
+
factory :vm_full, :parent => :vm do
|
8
|
+
initialize_with do
|
9
|
+
new(service,
|
10
|
+
{
|
11
|
+
:actions => {:stop => '/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac/stop'},
|
12
|
+
:id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
13
|
+
:href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
14
|
+
:cluster => {
|
15
|
+
:id => "5be5d08a-a60b-11e2-bee6-005056a217db",
|
16
|
+
:href => "/api/clusters/5be5d08a-a60b-11e2-bee6-005056a217db"},
|
17
|
+
:template => {
|
18
|
+
:id => "00000000-0000-0000-0000-000000000000",
|
19
|
+
:href => "/api/templates/00000000-0000-0000-0000-000000000000"},
|
20
|
+
:name => "bd-skeletal-clone-from-template",
|
21
|
+
:origin => "rhev",
|
22
|
+
:type => "server",
|
23
|
+
:memory => 536_870_912,
|
24
|
+
:stateless => false,
|
25
|
+
:creation_time => "2013-09-04 16:24:20 -0400",
|
26
|
+
:status => {:state => "down"},
|
27
|
+
:display => {:type => "spice", :monitors => 1},
|
28
|
+
:usb => {:enabled => false},
|
29
|
+
:cpu => {:sockets => 1, :cores => 1},
|
30
|
+
:high_availability => {:priority => 1, :enabled => false},
|
31
|
+
:os => {:type => "unassigned", :boot_order => [{:dev => "hd"}]},
|
32
|
+
:custom_attributes => [],
|
33
|
+
:placement_policy => {:affinity => "migratable", :host => {}},
|
34
|
+
:memory_policy => {:guaranteed => 536_870_912},
|
35
|
+
:guest_info => {}
|
36
|
+
}
|
37
|
+
)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Ovirt::CloudInitViaFloppyPayload do
|
4
|
+
let(:vm) { build(:vm) }
|
5
|
+
|
6
|
+
it "cloud_init= Ovirt 3.3 and older" do
|
7
|
+
cloud_config = "#cloud_config\nroot_password: some_password\nregenerate_ssh_keys: false\ncustom_script: \"#!/bin/bash\necho 'hi'\""
|
8
|
+
|
9
|
+
expect(vm.service).to receive(:api).and_return(:product_info => {:version => {:major => "3", :minor => "3", :revision => "0", :build => "0"}})
|
10
|
+
expect(vm).to receive(:attach_floppy).with("user-data.txt" => cloud_config)
|
11
|
+
|
12
|
+
vm.cloud_init = cloud_config
|
13
|
+
end
|
14
|
+
end
|
data/spec/service_spec.rb
CHANGED
@@ -2,9 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'rest-client'
|
3
3
|
|
4
4
|
describe Ovirt::Service do
|
5
|
-
|
6
|
-
@service = described_class.new(:server => "", :username => "", :password => "")
|
7
|
-
end
|
5
|
+
let(:service) { build(:service) }
|
8
6
|
|
9
7
|
context "#resource_post" do
|
10
8
|
it "raises Ovirt::Error if HTTP 409 response code received" do
|
@@ -23,14 +21,32 @@ EOX
|
|
23
21
|
block.call(return_data)
|
24
22
|
end
|
25
23
|
|
26
|
-
|
27
|
-
expect {
|
24
|
+
service.stub(:create_resource).and_return(rest_client)
|
25
|
+
expect { service.resource_post('uri', 'data') }.to raise_error(Ovirt::Error, error_detail)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "raises Ovirt::Error if HTTP 409 response code received" do
|
29
|
+
error_detail = "Usage message"
|
30
|
+
return_data = <<-EOX.chomp
|
31
|
+
<usage_message>
|
32
|
+
<message>#{error_detail}</message>
|
33
|
+
</usage_message>
|
34
|
+
EOX
|
35
|
+
|
36
|
+
rest_client = double('rest_client').as_null_object
|
37
|
+
rest_client.should_receive(:post) do |&block|
|
38
|
+
return_data.stub(:code).and_return(409)
|
39
|
+
block.call(return_data)
|
40
|
+
end
|
41
|
+
|
42
|
+
service.stub(:create_resource).and_return(rest_client)
|
43
|
+
expect { service.resource_post('uri', 'data') }.to raise_error(Ovirt::UsageError, error_detail)
|
28
44
|
end
|
29
45
|
end
|
30
46
|
|
31
47
|
it "#resource_get on exception" do
|
32
|
-
|
33
|
-
expect {
|
48
|
+
service.stub(:create_resource).and_raise(Exception, "BLAH")
|
49
|
+
expect { service.resource_get('api') }.to raise_error(Exception, "BLAH")
|
34
50
|
end
|
35
51
|
|
36
52
|
context ".ovirt?" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'factory_girl'
|
2
|
+
FactoryGirl.find_definitions
|
3
|
+
|
1
4
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
5
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
6
|
# Require this file using `require "spec_helper"` to ensure that it is only
|
@@ -13,6 +16,7 @@ RSpec.configure do |config|
|
|
13
16
|
# the seed, which is printed after each run.
|
14
17
|
# --seed 1234
|
15
18
|
config.order = 'random'
|
19
|
+
config.include FactoryGirl::Syntax::Methods
|
16
20
|
end
|
17
21
|
|
18
22
|
begin
|
data/spec/template_spec.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Ovirt::Template do
|
4
|
+
let(:service) { build(:service) }
|
4
5
|
before do
|
5
|
-
@
|
6
|
-
@template = Ovirt::Template.new(@service, {
|
6
|
+
@template = Ovirt::Template.new(service, {
|
7
7
|
:id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
8
8
|
:href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
9
9
|
:cluster => {
|
@@ -46,8 +46,8 @@ describe Ovirt::Template do
|
|
46
46
|
:os_type => "rhel5_64"}
|
47
47
|
@template.stub(:nics).and_return([])
|
48
48
|
@template.stub(:disks).and_return([])
|
49
|
-
|
50
|
-
|
49
|
+
service.stub(:blank_template).and_return(double('blank template'))
|
50
|
+
service.blank_template.should_receive(:create_vm).once.with(expected_data)
|
51
51
|
@template.create_vm(options)
|
52
52
|
end
|
53
53
|
|
@@ -90,13 +90,13 @@ EOX
|
|
90
90
|
:name => 'new name',
|
91
91
|
:cluster => 'fb27f9a0-cb75-4e0f-8c07-8dec0c5ab483',
|
92
92
|
:os_type => 'test'}
|
93
|
-
|
93
|
+
service.should_receive(:resource_post).once.with(:vms, expected_data).and_return(response_xml)
|
94
94
|
@template.create_vm(options)
|
95
95
|
end
|
96
96
|
|
97
97
|
context "#create_new_disks_from_template" do
|
98
98
|
before do
|
99
|
-
@disk = Ovirt::Disk.new(
|
99
|
+
@disk = Ovirt::Disk.new(service, {
|
100
100
|
:id=>"01eae62b-90df-424d-978c-beaa7eb2f7f6",
|
101
101
|
:href=>"/api/templates/54f1b9f4-0e89-4c72-9a26-f94dcb857264/disks/01eae62b-90df-424d-978c-beaa7eb2f7f6",
|
102
102
|
:name=>"clone_Disk1",
|
data/spec/vm_spec.rb
CHANGED
@@ -1,40 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Ovirt::Vm do
|
4
|
-
|
5
|
-
|
6
|
-
@vm = Ovirt::Vm.new(@service, {
|
7
|
-
:actions => {:stop => '/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac/stop'},
|
8
|
-
:id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
9
|
-
:href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
|
10
|
-
:cluster => {
|
11
|
-
:id => "5be5d08a-a60b-11e2-bee6-005056a217db",
|
12
|
-
:href => "/api/clusters/5be5d08a-a60b-11e2-bee6-005056a217db"},
|
13
|
-
:template => {
|
14
|
-
:id => "00000000-0000-0000-0000-000000000000",
|
15
|
-
:href => "/api/templates/00000000-0000-0000-0000-000000000000"},
|
16
|
-
:name => "bd-skeletal-clone-from-template",
|
17
|
-
:origin => "rhev",
|
18
|
-
:type => "server",
|
19
|
-
:memory => 536_870_912,
|
20
|
-
:stateless => false,
|
21
|
-
:creation_time => "2013-09-04 16:24:20 -0400",
|
22
|
-
:status => {:state => "down"},
|
23
|
-
:display => {:type => "spice", :monitors => 1},
|
24
|
-
:usb => {:enabled => false},
|
25
|
-
:cpu => {:sockets => 1, :cores => 1},
|
26
|
-
:high_availability => {:priority => 1, :enabled => false},
|
27
|
-
:os => {:type => "unassigned", :boot_order => [{:dev => "hd"}]},
|
28
|
-
:custom_attributes => [],
|
29
|
-
:placement_policy => {:affinity => "migratable", :host => {}},
|
30
|
-
:memory_policy => {:guaranteed => 536_870_912},
|
31
|
-
:guest_info => {}
|
32
|
-
})
|
33
|
-
end
|
4
|
+
let(:service) { vm.service }
|
5
|
+
let(:vm) { build(:vm_full) }
|
34
6
|
|
35
7
|
context "#create_disk" do
|
36
8
|
before do
|
37
|
-
@resource_url = "#{
|
9
|
+
@resource_url = "#{vm.attributes[:href]}/disks"
|
38
10
|
@base_options = {
|
39
11
|
:storage => "aa7e70e5-abcd-1234-a605-92ce6ba652a8",
|
40
12
|
:id => "01eae62b-90df-424d-978c-beaa7eb2f7f6",
|
@@ -77,16 +49,16 @@ EOX
|
|
77
49
|
expected_data = @base_data
|
78
50
|
options = @base_options.merge(boolean_key => true)
|
79
51
|
|
80
|
-
|
81
|
-
|
52
|
+
service.should_receive(:resource_post).once.with(@resource_url, expected_data)
|
53
|
+
vm.create_disk(options)
|
82
54
|
end
|
83
55
|
|
84
56
|
it "set to false" do
|
85
57
|
expected_data = @base_data.gsub("<#{boolean_key.to_s}>true</#{boolean_key.to_s}>", "<#{boolean_key.to_s}>false</#{boolean_key.to_s}>")
|
86
58
|
options = @base_options.merge(boolean_key => false)
|
87
59
|
|
88
|
-
|
89
|
-
|
60
|
+
service.should_receive(:resource_post).once.with(@resource_url, expected_data)
|
61
|
+
vm.create_disk(options)
|
90
62
|
end
|
91
63
|
|
92
64
|
it "unset" do
|
@@ -94,8 +66,8 @@ EOX
|
|
94
66
|
options = @base_options.dup
|
95
67
|
options.delete(boolean_key)
|
96
68
|
|
97
|
-
|
98
|
-
|
69
|
+
service.should_receive(:resource_post).once.with(@resource_url, expected_data)
|
70
|
+
vm.create_disk(options)
|
99
71
|
end
|
100
72
|
end
|
101
73
|
end
|
@@ -104,7 +76,7 @@ EOX
|
|
104
76
|
context "#create_nic" do
|
105
77
|
before do
|
106
78
|
@name = 'nic_name'
|
107
|
-
@resource_url = "#{
|
79
|
+
@resource_url = "#{vm.attributes[:href]}/nics"
|
108
80
|
@base_options = {:name => @name}
|
109
81
|
end
|
110
82
|
|
@@ -119,23 +91,23 @@ EOX
|
|
119
91
|
|
120
92
|
it "populates the interface" do
|
121
93
|
interface = 'interface'
|
122
|
-
|
94
|
+
service.should_receive(:resource_post).once.with(
|
123
95
|
@resource_url, expected_data("<interface>#{interface}</interface>"))
|
124
|
-
|
96
|
+
vm.create_nic(@base_options.merge({:interface => interface}))
|
125
97
|
end
|
126
98
|
|
127
99
|
it "populates the network id" do
|
128
100
|
network_id = 'network_id'
|
129
|
-
|
101
|
+
service.should_receive(:resource_post).once.with(
|
130
102
|
@resource_url, expected_data("<network id=\"#{network_id}\"/>"))
|
131
|
-
|
103
|
+
vm.create_nic(@base_options.merge({:network_id => network_id}))
|
132
104
|
end
|
133
105
|
|
134
106
|
it "populates the MAC address" do
|
135
107
|
mac_address = 'mac_address'
|
136
|
-
|
108
|
+
service.should_receive(:resource_post).once.with(
|
137
109
|
@resource_url, expected_data("<mac address=\"#{mac_address}\"/>"))
|
138
|
-
|
110
|
+
vm.create_nic(@base_options.merge({:mac_address => mac_address}))
|
139
111
|
end
|
140
112
|
end
|
141
113
|
|
@@ -159,10 +131,10 @@ EOX
|
|
159
131
|
</vm>
|
160
132
|
EOX
|
161
133
|
|
162
|
-
|
163
|
-
|
134
|
+
service.should_receive(:resource_put).once.with(
|
135
|
+
vm.attributes[:href],
|
164
136
|
expected_data).and_return(return_data)
|
165
|
-
|
137
|
+
vm.memory_reserve = memory_reserve
|
166
138
|
end
|
167
139
|
end
|
168
140
|
|
@@ -182,8 +154,8 @@ EOX
|
|
182
154
|
block.call(return_data)
|
183
155
|
end
|
184
156
|
|
185
|
-
|
186
|
-
expect {
|
157
|
+
service.stub(:create_resource).and_return(rest_client)
|
158
|
+
expect { vm.stop }.to raise_error Ovirt::VmIsNotRunning
|
187
159
|
end
|
188
160
|
end
|
189
161
|
|
@@ -222,9 +194,9 @@ EOX
|
|
222
194
|
</memory_policy>
|
223
195
|
</vm>
|
224
196
|
EOX
|
225
|
-
|
226
|
-
|
227
|
-
|
197
|
+
service.should_receive(:version).twice.and_return(:major=>"3", :minor=>"0", :build=>"0", :revision=>"0")
|
198
|
+
service.should_receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
|
199
|
+
vm.detach_floppy
|
228
200
|
end
|
229
201
|
|
230
202
|
it "Ovirt 3.3 should remove payload" do
|
@@ -252,10 +224,54 @@ EOX
|
|
252
224
|
</memory_policy>
|
253
225
|
</vm>
|
254
226
|
EOX
|
255
|
-
|
256
|
-
|
257
|
-
|
227
|
+
service.should_receive(:version).and_return(:major=>"3", :minor=>"3", :build=>"0", :revision=>"0")
|
228
|
+
service.should_receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
|
229
|
+
vm.detach_floppy
|
258
230
|
end
|
259
231
|
end
|
260
232
|
end
|
233
|
+
|
234
|
+
it "cloud_init= Ovirt 3.4 and newer" do
|
235
|
+
cloud_config = <<-EOCC.chomp
|
236
|
+
#cloud_config
|
237
|
+
regenerate_ssh_keys: false
|
238
|
+
root_password: some_password
|
239
|
+
fqdn: example.example.com
|
240
|
+
debug: True
|
241
|
+
EOCC
|
242
|
+
|
243
|
+
expected_data = <<-EOX.chomp
|
244
|
+
<vm>
|
245
|
+
<initialization>
|
246
|
+
<regenerate_ssh_keys>false</regenerate_ssh_keys>
|
247
|
+
<root_password>some_password</root_password>
|
248
|
+
<custom_script>fqdn: example.example.com\ndebug: true\n</custom_script>
|
249
|
+
</initialization>
|
250
|
+
</vm>
|
251
|
+
EOX
|
252
|
+
|
253
|
+
return_data = <<-EOX.chomp
|
254
|
+
<vm href="/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac" id="128f9ffd-b82c-41e4-8c00-9742ed173bac">
|
255
|
+
<name>bd-skeletal-clone-from-template</name>
|
256
|
+
<cpu>
|
257
|
+
<topology sockets="1" cores="1"/>
|
258
|
+
</cpu>
|
259
|
+
<os type="rhel_6x64">
|
260
|
+
<boot dev="hd"/>
|
261
|
+
</os>
|
262
|
+
<placement_policy>
|
263
|
+
<host id="a3abe9ed-fa52-4a7f-8a9b-1eebc782781f"/>
|
264
|
+
<affinity>migratable</affinity>
|
265
|
+
</placement_policy>
|
266
|
+
<memory_policy>
|
267
|
+
<guaranteed>1073741824</guaranteed>
|
268
|
+
<ballooning>true</ballooning>
|
269
|
+
</memory_policy>
|
270
|
+
</vm>
|
271
|
+
EOX
|
272
|
+
|
273
|
+
expect(service).to receive(:api).and_return(:product_info => {:version => {:major => "3", :minor => "4", :revision => "0", :build => "0"}})
|
274
|
+
expect(service).to receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
|
275
|
+
vm.cloud_init = cloud_config
|
276
|
+
end
|
261
277
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ovirt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Frey
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2015-
|
18
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|
@@ -31,6 +31,20 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: factory_girl
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
41
|
+
type: :development
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.0'
|
34
48
|
- !ruby/object:Gem::Dependency
|
35
49
|
name: rake
|
36
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,6 +190,7 @@ files:
|
|
176
190
|
- lib/ovirt/host.rb
|
177
191
|
- lib/ovirt/host_nic.rb
|
178
192
|
- lib/ovirt/inventory.rb
|
193
|
+
- lib/ovirt/legacy_support/cloud_init_via_floppy_payload.rb
|
179
194
|
- lib/ovirt/network.rb
|
180
195
|
- lib/ovirt/nic.rb
|
181
196
|
- lib/ovirt/permission.rb
|
@@ -194,6 +209,9 @@ files:
|
|
194
209
|
- lib/ovirt/vmpool.rb
|
195
210
|
- spec/base_spec.rb
|
196
211
|
- spec/event_spec.rb
|
212
|
+
- spec/factories/service.rb
|
213
|
+
- spec/factories/vm.rb
|
214
|
+
- spec/legacy_support/cloud_init_via_floppy_payload_spec.rb
|
197
215
|
- spec/service_spec.rb
|
198
216
|
- spec/spec_helper.rb
|
199
217
|
- spec/template_spec.rb
|
@@ -218,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
236
|
version: '0'
|
219
237
|
requirements: []
|
220
238
|
rubyforge_project:
|
221
|
-
rubygems_version: 2.
|
239
|
+
rubygems_version: 2.4.5
|
222
240
|
signing_key:
|
223
241
|
specification_version: 4
|
224
242
|
summary: Ovirt provides a simple Object Oriented interface to the REST API of oVirt
|
@@ -226,6 +244,9 @@ summary: Ovirt provides a simple Object Oriented interface to the REST API of oV
|
|
226
244
|
test_files:
|
227
245
|
- spec/base_spec.rb
|
228
246
|
- spec/event_spec.rb
|
247
|
+
- spec/factories/service.rb
|
248
|
+
- spec/factories/vm.rb
|
249
|
+
- spec/legacy_support/cloud_init_via_floppy_payload_spec.rb
|
229
250
|
- spec/service_spec.rb
|
230
251
|
- spec/spec_helper.rb
|
231
252
|
- spec/template_spec.rb
|