fog-libvirt 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd4818202dc374ba257cfa9bea0403ba47121382
4
- data.tar.gz: f79c02e9ff1d325c21ce21027825a142ee831560
3
+ metadata.gz: 73ae93cf9265f32976862d636f428a15e3f2251a
4
+ data.tar.gz: d2145c959320d0896a7bfb1adbc65f3832772a17
5
5
  SHA512:
6
- metadata.gz: 5f08db40265498d09d6452db9f6bd7c08243a914b2ddb54f5ed90cb61ef8dde0a09a4ae2a718b17ac2d771383e8fcf4d0465132c1b313f2e25938f6cbebff4a4
7
- data.tar.gz: 0599db4dc3d668b409e567170eef1319b0a499d8261309f721852bd8a1e30cf64f16579e0750cfb3ede34390b4f5a51979d257a3bbe7b38fc91d9a0ed86d96ee
6
+ metadata.gz: 42e3e30eaa431dca165573516c8c987d4c7562e57820edb1b4aab8aa4ea78747dffce9e7232ea8be9feb65d342876a7b218b12d39bfd474544abd1e07168c9cc
7
+ data.tar.gz: 940aa734cf58a59b24d424b43418407e4ad6d04d3b84f7e9ac22fa7aef608208b7b2b2de4a92408d36969516e6b6ba194cbce01290654545ffd16aad073381a4
@@ -26,20 +26,26 @@ Gem::Specification.new do |s|
26
26
  s.add_dependency("fog-core", "~> 1.27", ">= 1.27.4")
27
27
  s.add_dependency("fog-json")
28
28
  s.add_dependency("fog-xml", "~> 0.1.1")
29
- s.add_dependency('ruby-libvirt','>= 0.5.0', '< 0.7.0')
29
+ s.add_dependency('ruby-libvirt','>= 0.7.0')
30
30
  s.add_dependency('mime-types','< 2.0') if RUBY_VERSION < '1.9'
31
31
  s.add_dependency('nokogiri', '< 1.6') if RUBY_VERSION < '1.9'
32
32
  s.add_dependency('octokit', '< 3.0') if RUBY_VERSION < '1.9'
33
33
  s.add_dependency('rest-client', '<= 1.7.0') if RUBY_VERSION < '1.9'
34
+ s.add_dependency("tins", "<= 1.6.0") if RUBY_VERSION < "1.9"
34
35
 
35
- # Fedora and derivates need explicit require
36
- s.add_dependency("json")
36
+ # Fedora and derivates need explicit require.
37
+ # Also we cannot use newer JSON on Ruby 1.8 & 1.9.
38
+ if RUBY_VERSION < '2.0'
39
+ s.add_dependency("json", '< 2.0')
40
+ else
41
+ s.add_dependency("json")
42
+ end
37
43
 
38
44
  s.add_development_dependency("minitest")
39
45
  s.add_development_dependency("minitest-stub-const")
40
46
  s.add_development_dependency("pry")
41
47
  s.add_development_dependency("rake")
42
- s.add_development_dependency("rubocop") if RUBY_VERSION > "1.9"
48
+ s.add_development_dependency("rubocop") if RUBY_VERSION > "2.0"
43
49
  s.add_development_dependency("shindo", "~> 0.3.4")
44
50
  s.add_development_dependency("simplecov")
45
51
  s.add_development_dependency("yard")
@@ -346,19 +346,16 @@ module Fog
346
346
  :network_interface_type => "network",
347
347
  :network_nat_network => "default",
348
348
  :network_bridge_name => "br0",
349
- :boot_order => default_boot_order,
349
+ :boot_order => %w[hd cdrom network],
350
350
  :display => default_display
351
351
  }
352
352
  end
353
353
 
354
- def default_boot_order
355
- %w[hd cdrom network]
356
- end
357
-
358
354
  def verify_boot_order order = []
355
+ valid_boot_media = %w[cdrom fd hd network]
359
356
  if order
360
357
  order.each do |b|
361
- raise "invalid boot order, possible values are: hd, network and/or cdrom" unless default_boot_order.include?(b)
358
+ raise "invalid boot order, possible values are any combination of: #{valid_boot_media.join(', ')}" unless valid_boot_media.include?(b)
362
359
  end
363
360
  end
364
361
  end
@@ -10,11 +10,21 @@ module Fog
10
10
  elsif filter.key?(:name)
11
11
  data << client.lookup_domain_by_name(filter[:name])
12
12
  else
13
- client.list_defined_domains.each { |name| data << client.lookup_domain_by_name(name) } unless filter[:defined] == false
14
- client.list_domains.each { |id| data << client.lookup_domain_by_id(id) } unless filter[:active] == false
13
+ client.list_defined_domains.each { |name| data << catchLibvirtExceptions { client.lookup_domain_by_name(name) } } unless filter[:defined] == false
14
+ client.list_domains.each { |id| data << catchLibvirtExceptions { client.lookup_domain_by_id(id) } } unless filter[:active] == false
15
15
  end
16
16
  data.compact.map { |d| domain_to_attributes d }.compact
17
17
  end
18
+
19
+ # Catch Libvirt exceptions to avoid race conditions involving
20
+ # concurrent libvirt operations from other processes. For example,
21
+ # domains being undefined while fog-libvirt is trying to work with
22
+ # domain lists.
23
+ def catchLibvirtExceptions
24
+ yield
25
+ rescue ::Libvirt::RetrieveError, ::Libvirt::Error
26
+ nil
27
+ end
18
28
  end
19
29
 
20
30
  module Shared
@@ -11,7 +11,7 @@ module Fog
11
11
  stream.sendall do |_opaque, n|
12
12
  begin
13
13
  r = image_file.read(n)
14
- [r.length < n ? 0 : r.length, r]
14
+ r ? [r.length, r] : [0, ""]
15
15
  rescue Exception => e
16
16
  [-1, ""]
17
17
  end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Libvirt
3
- VERSION = '0.2.0'
3
+ VERSION = '0.3.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.2.0
4
+ version: 0.3.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-05-18 00:00:00.000000000 Z
11
+ date: 2016-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-core
@@ -63,9 +63,6 @@ dependencies:
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 0.5.0
68
- - - "<"
69
66
  - !ruby/object:Gem::Version
70
67
  version: 0.7.0
71
68
  type: :runtime
@@ -73,9 +70,6 @@ dependencies:
73
70
  version_requirements: !ruby/object:Gem::Requirement
74
71
  requirements:
75
72
  - - ">="
76
- - !ruby/object:Gem::Version
77
- version: 0.5.0
78
- - - "<"
79
73
  - !ruby/object:Gem::Version
80
74
  version: 0.7.0
81
75
  - !ruby/object:Gem::Dependency
@@ -323,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
323
317
  version: '0'
324
318
  requirements: []
325
319
  rubyforge_project:
326
- rubygems_version: 2.5.1
320
+ rubygems_version: 2.4.8
327
321
  signing_key:
328
322
  specification_version: 2
329
323
  summary: Module for the 'fog' gem to support libvirt