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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5eb20c16fc490965286768f8a1ec0068a75c0e01
4
- data.tar.gz: f86dd519bac3b0b97b42199c232c9975229a5a92
3
+ metadata.gz: e8e5086cc3efac6612e4e1631b5af6d14c6c5280
4
+ data.tar.gz: 25b06d7e055266368c2a3bf5ce9348a464459a9a
5
5
  SHA512:
6
- metadata.gz: f79e2e12f2faca3d402a7aa5244c28165e8e1ee45b849444b7f46122964575afbdf0ec40351b5bd37f7074ae3ebe847e4539e32eb1cc8bb908ac566c0c29a743
7
- data.tar.gz: a9b079f45a56188e8d40e21b8c0e9bd588b0faf3b46c180f5aa8f41622707a22154f416cfb23142a55e8024e78371f2ee90734ed726d8116097952ef4c36a33e
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",
@@ -10,4 +10,7 @@ module Ovirt
10
10
  class VmAlreadyRunning < Error; end
11
11
  class VmIsNotRunning < Error; end
12
12
  class VmNotReadyToBoot < Error; end
13
+
14
+ class UsageError < Error; end
15
+ class CloudInitSyntaxError < UsageError; end
13
16
  end
@@ -0,0 +1,7 @@
1
+ module Ovirt
2
+ module CloudInitViaFloppyPayload
3
+ def cloud_init=(content)
4
+ attach_floppy("user-data.txt" => content)
5
+ end
6
+ end
7
+ end
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
- reason = node.xpath("fault/detail").text
244
- raise Ovirt::Error, reason
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
@@ -1,3 +1,3 @@
1
1
  module Ovirt
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
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,5 @@
1
+ FactoryGirl.define do
2
+ factory :service, :class => "Ovirt::Service" do
3
+ initialize_with { new(:server => "", :username => "", :password => "") }
4
+ end
5
+ 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
- before do
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
- @service.stub(:create_resource).and_return(rest_client)
27
- expect { @service.resource_post('uri', 'data') }.to raise_error(Ovirt::Error, error_detail)
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
- @service.stub(:create_resource).and_raise(Exception, "BLAH")
33
- expect { @service.resource_get('api') }.to raise_error(Exception, "BLAH")
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
@@ -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
- @service = double('service')
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
- @service.stub(:blank_template).and_return(double('blank template'))
50
- @service.blank_template.should_receive(:create_vm).once.with(expected_data)
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
- @service.should_receive(:resource_post).once.with(:vms, expected_data).and_return(response_xml)
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(@service, {
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
- before do
5
- @service = Ovirt::Service.new({:server => "", :username => "", :password => ""})
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 = "#{@vm.attributes[:href]}/disks"
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
- @service.should_receive(:resource_post).once.with(@resource_url, expected_data)
81
- @vm.create_disk(options)
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
- @service.should_receive(:resource_post).once.with(@resource_url, expected_data)
89
- @vm.create_disk(options)
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
- @service.should_receive(:resource_post).once.with(@resource_url, expected_data)
98
- @vm.create_disk(options)
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 = "#{@vm.attributes[:href]}/nics"
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
- @service.should_receive(:resource_post).once.with(
94
+ service.should_receive(:resource_post).once.with(
123
95
  @resource_url, expected_data("<interface>#{interface}</interface>"))
124
- @vm.create_nic(@base_options.merge({:interface => interface}))
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
- @service.should_receive(:resource_post).once.with(
101
+ service.should_receive(:resource_post).once.with(
130
102
  @resource_url, expected_data("<network id=\"#{network_id}\"/>"))
131
- @vm.create_nic(@base_options.merge({:network_id => network_id}))
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
- @service.should_receive(:resource_post).once.with(
108
+ service.should_receive(:resource_post).once.with(
137
109
  @resource_url, expected_data("<mac address=\"#{mac_address}\"/>"))
138
- @vm.create_nic(@base_options.merge({:mac_address => mac_address}))
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
- @service.should_receive(:resource_put).once.with(
163
- @vm.attributes[:href],
134
+ service.should_receive(:resource_put).once.with(
135
+ vm.attributes[:href],
164
136
  expected_data).and_return(return_data)
165
- @vm.memory_reserve = memory_reserve
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
- @service.stub(:create_resource).and_return(rest_client)
186
- expect { @vm.stop }.to raise_error Ovirt::VmIsNotRunning
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
- @service.should_receive(:version).twice.and_return(:major=>"3", :minor=>"0", :build=>"0", :revision=>"0")
226
- @service.should_receive(:resource_put).once.with(@vm.attributes[:href], expected_data).and_return(return_data)
227
- @vm.detach_floppy
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
- @service.should_receive(:version).and_return(:major=>"3", :minor=>"3", :build=>"0", :revision=>"0")
256
- @service.should_receive(:resource_put).once.with(@vm.attributes[:href], expected_data).and_return(return_data)
257
- @vm.detach_floppy
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.2
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-04-22 00:00:00.000000000 Z
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.2.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