fog-libvirt 0.2.0 → 0.3.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: 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