fog-libvirt 0.3.0 → 0.4.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: 73ae93cf9265f32976862d636f428a15e3f2251a
4
- data.tar.gz: d2145c959320d0896a7bfb1adbc65f3832772a17
3
+ metadata.gz: 4afcefce8f2992462c7cf5d12ac7ffc9cd38f4cd
4
+ data.tar.gz: 9fa64b79e0aaad64571f7bc97e3a0dce4d093e18
5
5
  SHA512:
6
- metadata.gz: 42e3e30eaa431dca165573516c8c987d4c7562e57820edb1b4aab8aa4ea78747dffce9e7232ea8be9feb65d342876a7b218b12d39bfd474544abd1e07168c9cc
7
- data.tar.gz: 940aa734cf58a59b24d424b43418407e4ad6d04d3b84f7e9ac22fa7aef608208b7b2b2de4a92408d36969516e6b6ba194cbce01290654545ffd16aad073381a4
6
+ metadata.gz: c744b112ac1546eca142ca8792ba010a272cf82e7ba58e8163f11397c8f634cd64281fe5a5c52468fb5bfe1c9d71e97676113ccf18e292382a4ef33d64393663
7
+ data.tar.gz: ad1ec45643362138a52382e17fb297eef06b6bdfd589e13f7d075f1747068c6ea8749ed7683d2336a69e9f794d546894d3e23340f23a2f50c1129257acf7c8b1
data/CONTRIBUTORS.md CHANGED
@@ -21,3 +21,4 @@
21
21
  * Steve Smith <github@scsworld.co.uk>
22
22
  * Vincent Demeester <vincent+git@demeester.fr>
23
23
  * Wesley Beary <geemus@gmail.com>
24
+ * Tomer Brisker <tbrisker@redhat.com>
@@ -27,6 +27,7 @@ module Fog
27
27
  attribute :active
28
28
  attribute :boot_order
29
29
  attribute :display
30
+ attribute :cpu
30
31
 
31
32
  attribute :state
32
33
 
@@ -186,7 +187,7 @@ module Fog
186
187
 
187
188
  credentials[:proxy]= ssh_proxy unless ssh_proxy.nil?
188
189
  credentials[:password] = password unless self.password.nil?
189
- credentails[:key_data] = [private_key] if self.private_key
190
+ credentials[:key_data] = [private_key] if self.private_key
190
191
 
191
192
  commands = [
192
193
  %{mkdir .ssh},
@@ -236,7 +237,7 @@ module Fog
236
237
 
237
238
  isofile = Tempfile.new(['init', '.iso']).path
238
239
  unless system("genisoimage -output #{isofile} -volid cidata -joliet -rock #{File.join(dir_path, 'user-data')} #{File.join(dir_path, 'meta-data')}")
239
- raise Fog::Errors::Error("Couldn't generate cloud-init iso disk.")
240
+ raise Fog::Errors::Error.new("Couldn't generate cloud-init iso disk with genisoimage.")
240
241
  end
241
242
  blk.call(isofile)
242
243
  end
@@ -347,7 +348,8 @@ module Fog
347
348
  :network_nat_network => "default",
348
349
  :network_bridge_name => "br0",
349
350
  :boot_order => %w[hd cdrom network],
350
- :display => default_display
351
+ :display => default_display,
352
+ :cpu => {}
351
353
  }
352
354
  end
353
355
 
@@ -13,6 +13,23 @@
13
13
  <apic/>
14
14
  <pae/>
15
15
  </features>
16
+ <% if !cpu.empty? -%>
17
+ <% if cpu[:mode] -%>
18
+ <cpu mode='<%= cpu[:mode] %>'>
19
+ <% else -%>
20
+ <cpu>
21
+ <% end -%>
22
+ <%
23
+ fallback = 'allow'
24
+ model = ''
25
+ if cpu[:model]
26
+ fallback = cpu[:model][:fallback] if cpu[:model][:fallback]
27
+ model = cpu[:model][:name] if cpu[:model][:name]
28
+ end
29
+ -%>
30
+ <model fallback='<%= fallback %>'><%= model %></model>
31
+ </cpu>
32
+ <% end -%>
16
33
  <clock offset='utc'/>
17
34
  <devices>
18
35
  <% volumes.each do |vol| -%>
@@ -46,7 +63,26 @@
46
63
  </console>
47
64
  <input type='tablet' bus='usb'/>
48
65
  <input type='mouse' bus='ps2'/>
49
- <graphics type='<%= display[:type] %>' port='<%= display[:port] %>' autoport='yes' <% if display[:listen] and !(display[:listen].empty?) %> listen='<%= display[:listen] %>'<% end %> <% if display[:password] and !(display[:password].empty?) %>passwd='<%=display[:password] %>'<% end %> />
66
+ <%
67
+ display_type = display[:type]
68
+
69
+ if display[:port].empty?
70
+ display_port = display[:port]
71
+ autoport = 'no'
72
+ else
73
+ display_port = '-1'
74
+ autoport = 'yes'
75
+ end
76
+
77
+ unless display[:listen].empty?
78
+ display_listen = "listen='#{display[:listen]}'"
79
+ end
80
+
81
+ unless display[:password].empty?
82
+ display_password = "passwd='#{display[:password]}'"
83
+ end
84
+ -%>
85
+ <graphics type='<%= display_type %>' port='<%= display_port %>' autoport='<%= autoport %>' <%= display_listen %> <%= display_password %> />
50
86
  <video>
51
87
  <model type='cirrus' vram='9216' heads='1'/>
52
88
  </video>
@@ -4,17 +4,21 @@ module Fog
4
4
  class Real
5
5
  def update_display(options = { })
6
6
  raise ArgumentError, "uuid is a required parameter" unless options.key? :uuid
7
+
8
+ domain = client.lookup_domain_by_uuid(options[:uuid])
9
+
7
10
  display = { }
8
11
  display[:type] = options[:type] || 'vnc'
9
12
  display[:port] = (options[:port] || -1).to_s
10
13
  display[:listen] = options[:listen].to_s if options[:listen]
11
14
  display[:passwd] = options[:password].to_s if options[:password]
12
15
  display[:autoport] = 'yes' if display[:port] == '-1'
16
+ display[:keymap] = options[:keymap] || xml_elements(domain.xml_desc, "graphics", "keymap")
13
17
 
14
18
  builder = Nokogiri::XML::Builder.new { graphics_ (display) }
15
19
  xml = Nokogiri::XML(builder.to_xml).root.to_s
16
20
 
17
- client.lookup_domain_by_uuid(options[:uuid]).update_device(xml, 0)
21
+ domain.update_device(xml, 0)
18
22
  # if we got no exceptions, then we're good'
19
23
  true
20
24
  end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Libvirt
3
- VERSION = '0.3.0'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-libvirt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - geemus (Wesley Beary)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-24 00:00:00.000000000 Z
11
+ date: 2017-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-core
@@ -317,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
317
317
  version: '0'
318
318
  requirements: []
319
319
  rubyforge_project:
320
- rubygems_version: 2.4.8
320
+ rubygems_version: 2.6.11
321
321
  signing_key:
322
322
  specification_version: 2
323
323
  summary: Module for the 'fog' gem to support libvirt
@@ -344,4 +344,3 @@ test_files:
344
344
  - tests/libvirt/requests/compute/define_domain_tests.rb
345
345
  - tests/libvirt/requests/compute/dhcp_leases_tests.rb
346
346
  - tests/libvirt/requests/compute/update_display.rb
347
- has_rdoc: