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