rbovirt 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rbovirt might be problematic. Click here for more details.

data/Rakefile CHANGED
@@ -15,7 +15,7 @@ require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
17
  gem.name = "rbovirt"
18
- gem.homepage = "http://github.com/rbovirt/rbovirt"
18
+ gem.homepage = "http://github.com/abenari/rbovirt"
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{A Ruby client for oVirt REST API}
21
21
  gem.description = %Q{A Ruby client for oVirt REST API}
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.15
1
+ 0.0.16
@@ -12,11 +12,12 @@ module OVIRT
12
12
 
13
13
  def clusters(opts={})
14
14
  headers = {:accept => "application/xml; detail=datacenters"}
15
- search= opts[:search] || ("datacenter=%s" % current_datacenter.name)
16
- http_get("/clusters?search=%s" % CGI.escape(search), headers).xpath('/clusters/cluster').collect do |cl|
15
+ path = "/clusters"
16
+ path += search_url(opts) unless filtered_api
17
+ http_get(path, headers).xpath('/clusters/cluster').collect do |cl|
17
18
  cluster = OVIRT::Cluster.new(self, cl)
18
19
  #the following line is needed as a work-around a bug in RHEV 3.0 rest-api
19
- cluster if cluster.datacenter.id == current_datacenter.id
20
+ cluster if !filtered_api || (cluster.datacenter.id == current_datacenter.id)
20
21
  end.compact
21
22
  end
22
23
 
@@ -6,8 +6,9 @@ module OVIRT
6
6
  end
7
7
 
8
8
  def hosts(opts={})
9
- search= opts[:search] || ("datacenter=%s" % current_datacenter.name)
10
- http_get("/hosts?search=%s" % CGI.escape(search)).xpath('/hosts/host').collect do |h|
9
+ path = "/hosts"
10
+ path += search_url(opts) unless filtered_api
11
+ http_get(path).xpath('/hosts/host').collect do |h|
11
12
  OVIRT::Host::new(self, h)
12
13
  end
13
14
  end
@@ -6,12 +6,13 @@ module OVIRT
6
6
  end
7
7
 
8
8
  def storagedomains(opts={})
9
- search= opts[:search] || ("datacenter=%s" % current_datacenter.name)
10
- http_get("/storagedomains?search=%s" % CGI.escape(search)).xpath('/storage_domains/storage_domain').collect do |sd|
9
+ path = "/storagedomains"
10
+ path += search_url(opts) unless filtered_api
11
+ http_get(path).xpath('/storage_domains/storage_domain').collect do |sd|
11
12
  storage_domain = OVIRT::StorageDomain::new(self, sd)
12
13
  #filter by role is not supported by the search language. The work around is to list all, then filter.
13
14
  (opts[:role].nil? || storage_domain.role == opts[:role]) ? storage_domain : nil
14
15
  end.compact
15
16
  end
16
17
  end
17
- end
18
+ end
@@ -1,8 +1,9 @@
1
1
  module OVIRT
2
2
  class Client
3
3
  def templates(opts={})
4
- search= opts[:search] || ("datacenter=%s" % current_datacenter.name)
5
- http_get("/templates?search=%s" % CGI.escape(search)).xpath('/templates/template').collect do |t|
4
+ path = "/templates"
5
+ path += search_url(opts) unless filtered_api
6
+ http_get(path).xpath('/templates/template').collect do |t|
6
7
  OVIRT::Template::new(self, t)
7
8
  end.compact
8
9
  end
@@ -34,4 +35,4 @@ module OVIRT
34
35
  end
35
36
  end
36
37
  end
37
- end
38
+ end
@@ -7,8 +7,9 @@ module OVIRT
7
7
 
8
8
  def vms(opts={})
9
9
  headers = {:accept => "application/xml; detail=disks; detail=nics; detail=hosts"}
10
- search= opts[:search] || ("datacenter=%s" % current_datacenter.name)
11
- http_get("/vms?search=%s" % CGI.escape(search), headers).xpath('/vms/vm').collect do |vm|
10
+ path = "/vms"
11
+ path += search_url(opts) unless filtered_api
12
+ http_get(path, headers).xpath('/vms/vm').collect do |vm|
12
13
  OVIRT::VM::new(self, vm)
13
14
  end
14
15
  end
@@ -1,6 +1,6 @@
1
1
  module OVIRT
2
- class Host < BaseObject
3
- attr_reader :description, :status, :cluster
2
+ class Host < BaseObject
3
+ attr_reader :description, :status, :cluster, :address
4
4
 
5
5
  def initialize(client, xml)
6
6
  super(client, xml[:id], xml[:href], (xml/'name').first.text)
@@ -12,8 +12,9 @@ module OVIRT
12
12
 
13
13
  def parse_xml_attributes!(xml)
14
14
  @description = ((xml/'description').first.text rescue nil)
15
+ @address = ((xml/'address').first.text rescue nil)
15
16
  @status = (xml/'status').first.text
16
- @clister = Link::new(@client, (xml/'cluster').first[:id], (xml/'cluster').first[:href])
17
+ @cluster = Link::new(@client, (xml/'cluster').first[:id], (xml/'cluster').first[:href])
17
18
  end
18
19
  end
19
20
  end
@@ -23,7 +23,7 @@ module OVIRT
23
23
  return false unless @status =~ /down/i
24
24
  volumes.each do |volume|
25
25
  return false if volume.status =~ /locked/i
26
- end if @client.api_version?("3","1")
26
+ end if @client.api_version?("3","1") || @client.api_version?("3","2")
27
27
  true
28
28
  end
29
29
 
@@ -35,13 +35,14 @@ module OVIRT
35
35
 
36
36
  class Client
37
37
 
38
- attr_reader :credentials, :api_entrypoint, :datacenter_id, :cluster_id
38
+ attr_reader :credentials, :api_entrypoint, :datacenter_id, :cluster_id, :filtered_api
39
39
 
40
- def initialize(username, password, api_entrypoint, datacenter_id=nil, cluster_id=nil)
40
+ def initialize(username, password, api_entrypoint, datacenter_id=nil, cluster_id=nil, filtered_api = false)
41
41
  @credentials = { :username => username, :password => password }
42
42
  @datacenter_id = datacenter_id
43
43
  @cluster_id = cluster_id
44
44
  @api_entrypoint = api_entrypoint
45
+ @filtered_api = filtered_api
45
46
  end
46
47
 
47
48
  def api_version
@@ -60,6 +61,11 @@ module OVIRT
60
61
  end
61
62
 
62
63
  private
64
+ def search_url opts
65
+ search = opts[:search] || ("datacenter=%s" % current_datacenter.name)
66
+ "?search=%s" % CGI.escape(search)
67
+ end
68
+
63
69
  def current_datacenter
64
70
  @current_datacenter ||= self.datacenter_id ? datacenter(self.datacenter_id) : datacenters.first
65
71
  end
@@ -94,7 +100,7 @@ module OVIRT
94
100
 
95
101
  def http_delete(suburl)
96
102
  begin
97
- headers = {:accept => 'application/xml'}.merge(auth_header)
103
+ headers = {:accept => 'application/xml'}.merge(auth_header).merge(filter_header)
98
104
  Nokogiri::XML(RestClient::Resource.new(@api_entrypoint)[suburl].delete(headers))
99
105
  rescue
100
106
  handle_fault $!
@@ -107,6 +113,10 @@ module OVIRT
107
113
  { :authorization => "Basic " + encoded_credentials }
108
114
  end
109
115
 
116
+ def filter_header
117
+ filtered_api ? { :filter => "true" } : {}
118
+ end
119
+
110
120
  def base_url
111
121
  url = URI.parse(@api_entrypoint)
112
122
  "#{url.scheme}://#{url.host}:#{url.port}"
@@ -117,15 +127,14 @@ module OVIRT
117
127
  end
118
128
 
119
129
  def has_datacenter?(vm)
120
- value=!(vm/'data_center').empty?
121
- value
130
+ (vm/'data_center').any?
122
131
  end
123
132
 
124
133
  def http_headers(headers ={})
125
134
  headers.merge({
126
135
  :content_type => 'application/xml',
127
- :accept => 'application/xml'
128
- }).merge(auth_header)
136
+ :accept => 'application/xml',
137
+ }).merge(auth_header).merge(filter_header)
129
138
  end
130
139
 
131
140
  def handle_fault(f)
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rbovirt"
8
- s.version = "0.0.15"
8
+ s.version = "0.0.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Amos Benari"]
@@ -48,7 +48,7 @@ Gem::Specification.new do |s|
48
48
  "spec/spec_helper.rb",
49
49
  "spec/unit/vm_spec.rb"
50
50
  ]
51
- s.homepage = "http://github.com/rbovirt/rbovirt"
51
+ s.homepage = "http://github.com/abenari/rbovirt"
52
52
  s.licenses = ["MIT"]
53
53
  s.require_paths = ["lib"]
54
54
  s.rubygems_version = "1.8.24"
@@ -1,6 +1,6 @@
1
1
  require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
- describe OVIRT, "API" do
3
+ shared_examples_for "API" do
4
4
 
5
5
  # This spec requires the API to be stable, so that projects using
6
6
  # OVIRT do not have to update their code if a new (minor)
@@ -13,38 +13,69 @@ describe OVIRT, "API" do
13
13
  # Because of the API stability guarantee, these spec's may only
14
14
  # be changed for new major releases.
15
15
 
16
+ it "test_should_return_a_version" do
17
+ @client.api_version.class.should eql(String)
18
+ end
19
+
20
+ it "test_should_return_datacenters" do
21
+ @client.datacenters.class.should eql(Array)
22
+ end
23
+
24
+ it "test_should_return_clusters" do
25
+ @client.clusters.class.should eql(Array)
26
+ end
27
+
28
+ it "test_should_return_templates" do
29
+ @client.templates.class.should eql(Array)
30
+ end
31
+
32
+ it "test_should_return_vms" do
33
+ @client.vms.class.should eql(Array)
34
+ end
35
+
36
+ it "test_should_return_storage" do
37
+ @client.storagedomains.class.should eql(Array)
38
+ end
39
+ end
40
+
41
+ describe OVIRT, "Admin API" do
42
+
16
43
  before(:all) do
17
44
  user, password, url = endpoint
18
- @client = ::OVIRT::Client.new(user, password, url)
45
+ @client = ::OVIRT::Client.new(user, password, url, nil, nil, false)
19
46
  end
20
47
 
21
48
  after(:all) do
22
49
  end
23
50
 
24
- context 'basic api and listing' do
25
- it "test_should_return_a_version" do
26
- @client.api_version.class.should eql(String)
27
- end
51
+ context 'basic admin api and listing' do
52
+ it_behaves_like "API"
28
53
 
29
- it "test_should_return_datacenters" do
30
- @client.datacenters.class.should eql(Array)
54
+ it "test_should_return_hosts" do
55
+ @client.hosts.class.should eql(Array)
31
56
  end
57
+ end
32
58
 
33
- it "test_should_return_clusters" do
34
- @client.clusters.class.should eql(Array)
35
- end
59
+ end
36
60
 
37
- it "test_should_return_templates" do
38
- @client.templates.class.should eql(Array)
39
- end
61
+ describe OVIRT, "User API" do
40
62
 
41
- it "test_should_return_vms" do
42
- @client.vms.class.should eql(Array)
43
- end
44
- it "test_should_return_storage" do
45
- @client.storagedomains.class.should eql(Array)
46
- end
63
+ before(:all) do
64
+ user, password, url = endpoint
65
+ @client = ::OVIRT::Client.new(user, password, url, nil, nil, support_user_level_api)
66
+ end
47
67
 
68
+ after(:all) do
48
69
  end
49
70
 
50
- end
71
+ context 'basic user api and listing' do
72
+ it_behaves_like "API"
73
+ #User level API doesn't support returning hosts
74
+ it "test_should_not_return_hosts" do
75
+ if support_user_level_api
76
+ expect {@client.hosts}.to raise_error
77
+ end
78
+ end
79
+ end
80
+
81
+ end
@@ -1,73 +1,93 @@
1
1
  require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
- describe "VM Life cycle" do
3
+ shared_examples_for "Basic VM Life cycle" do
4
4
 
5
5
  before(:all) do
6
- user, password, url = endpoint
7
- @client = ::OVIRT::Client.new(user, password, url)
6
+ @blank_template_id = "00000000-0000-0000-0000-000000000000"
7
+ @cluster = @client.clusters.first.id
8
+ name = 'vm-'+Time.now.to_i.to_s
9
+ @vm = @client.create_vm(:name => name, :template => @blank_template_id, :cluster => @cluster)
10
+ @client.add_volume(@vm.id)
11
+ @client.add_interface(@vm.id)
12
+ while !@client.vm(@vm.id).ready? do
13
+ end
8
14
  end
9
15
 
10
- context 'basic vm and templates operations' do
16
+ after(:all) do
17
+ @client.destroy_vm(@vm.id)
18
+ end
11
19
 
12
- before(:all) do
13
- name = 'vm-'+Time.now.to_i.to_s
14
- @vm = @client.create_vm(:name => name)
15
- @client.add_volume(@vm.id)
16
- @client.add_interface(@vm.id)
17
- while !@client.vm(@vm.id).ready? do
18
- end
20
+ it "test_should_create_template" do
21
+ template_name = "tmplt-"+Time.now.to_i.to_s
22
+ template = @client.create_template(:vm => @vm.id, :name => template_name, :description => "test_template")
23
+ template.class.to_s.should eql("OVIRT::Template")
24
+ while !@client.vm(@vm.id).ready? do
19
25
  end
26
+ @client.destroy_template(template.id)
27
+ end
20
28
 
21
- after(:all) do
22
- @client.destroy_vm(@vm.id)
23
- end
29
+ it "test_should_return_a_template" do
30
+ @client.template(@blank_template_id).id.should eql(@blank_template_id)
31
+ end
24
32
 
25
- it "test_should_create_template" do
26
- template_name = "tmplt-"+Time.now.to_i.to_s
27
- template = @client.create_template(:vm => @vm.id, :name => template_name, :description => "test_template")
28
- template.class.to_s.should eql("OVIRT::Template")
29
- while !@client.vm(@vm.id).ready? do
30
- end
31
- @client.destroy_template(template.id)
32
- end
33
+ it "test_should_return_a_vm" do
34
+ @client.vm(@vm.id).id.should eql(@vm.id)
35
+ end
33
36
 
34
- it "test_should_return_a_template" do
35
- @client.template(@blank_template_id).id.should eql(@blank_template_id)
37
+ it "test_should_start_and_stop_vm" do
38
+ @client.vm_action(@vm.id, :start)
39
+ while !@client.vm(@vm.id).running? do
36
40
  end
41
+ @client.vm_action(@vm.id, :shutdown)
42
+ end
37
43
 
38
- it "test_should_return_a_vm" do
39
- @client.vm(@vm.id).id.should eql(@vm.id)
44
+ it "test_should_set_vm_ticket" do
45
+ @client.vm_action(@vm.id, :start)
46
+ while !@client.vm(@vm.id).running? do
40
47
  end
48
+ @client.set_ticket(@vm.id)
49
+ @client.vm_action(@vm.id, :shutdown)
50
+ end
41
51
 
42
- it "test_should_start_and_stop_vm" do
43
- @client.vm_action(@vm.id, :start)
44
- @client.vm_action(@vm.id, :shutdown)
45
- end
52
+ it "test_should_destroy_vm" do
53
+ name = 'd-'+Time.now.to_i.to_s
54
+ vm = @client.create_vm(:name => name, :template =>@blank_template_id, :cluster => @cluster)
55
+ @client.destroy_vm(vm.id)
56
+ end
46
57
 
47
- it "test_should_set_vm_ticket" do
48
- @client.vm_action(@vm.id, :start)
49
- while !@client.vm(@vm.id).running? do
50
- end
51
- @client.set_ticket(@vm.id)
52
- @client.vm_action(@vm.id, :shutdown)
53
- end
58
+ it "test_should_update_vm" do
59
+ name = 'u-'+Time.now.to_i.to_s
60
+ @client.update_vm(:id => @vm.id, :name=> name, :cluster => @cluster)
61
+ end
54
62
 
55
- it "test_should_destroy_vm" do
56
- name = 'd-'+Time.now.to_i.to_s
57
- vm = @client.create_vm(:name => name)
58
- @client.destroy_vm(vm.id)
59
- end
63
+ it "test_should_create_a_vm" do
64
+ name = 'c-'+Time.now.to_i.to_s
65
+ vm = @client.create_vm(:name => name, :template => @blank_template_id, :cluster => @cluster)
66
+ vm.class.to_s.should eql("OVIRT::VM")
67
+ @client.destroy_vm(vm.id)
68
+ end
69
+ end
60
70
 
61
- it "test_should_update_vm" do
62
- name = 'u-'+Time.now.to_i.to_s
63
- @client.update_vm(:id => @vm.id, :name=> name)
64
- end
71
+ describe "Admin API VM Life cycle" do
65
72
 
66
- it "test_should_create_a_vm" do
67
- name = 'c-'+Time.now.to_i.to_s
68
- vm = @client.create_vm(:name => name)
69
- vm.class.to_s.should eql("OVIRT::VM")
70
- @client.destroy_vm(vm.id)
71
- end
73
+ before(:all) do
74
+ user, password, url = endpoint
75
+ @client = ::OVIRT::Client.new(user, password, url, nil, nil, false)
76
+ end
77
+
78
+ context 'admin basic vm and templates operations' do
79
+ it_behaves_like "Basic VM Life cycle"
80
+ end
81
+ end
82
+
83
+ describe "User API VM Life cycle" do
84
+
85
+ before(:all) do
86
+ user, password, url = endpoint
87
+ @client = ::OVIRT::Client.new(user, password, url, nil, nil, support_user_level_api)
88
+ end
89
+
90
+ context 'user basic vm and templates operations' do
91
+ it_behaves_like "Basic VM Life cycle"
72
92
  end
73
93
  end
@@ -1,8 +1,8 @@
1
1
  module OVIRT::RSpec::Endpoint
2
2
 
3
- def endpoint
4
- file = File.expand_path("../endpoint.yml", File.dirname(__FILE__))
5
- @endpoint ||= YAML.load(File.read(file))
3
+ def endpoint
4
+ file = File.expand_path("../endpoint.yml", File.dirname(__FILE__))
5
+ @endpoint ||= YAML.load(File.read(file))
6
6
  user = @endpoint['user']
7
7
  password= @endpoint['password']
8
8
  hostname = @endpoint['hostname']
@@ -11,4 +11,8 @@ module OVIRT::RSpec::Endpoint
11
11
  return user, password, url
12
12
  end
13
13
 
14
+ def support_user_level_api
15
+ @endpoint['version'] && @endpoint['version'] > 3.1
16
+ end
17
+
14
18
  end
metadata CHANGED
@@ -1,135 +1,136 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rbovirt
3
- version: !ruby/object:Gem::Version
4
- hash: 1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.16
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 15
10
- version: 0.0.15
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Amos Benari
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-11-11 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- type: :runtime
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 0
30
- version: "0"
31
- version_requirements: *id001
12
+ date: 2012-11-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
32
15
  name: nokogiri
33
- prerelease: false
34
- - !ruby/object:Gem::Dependency
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
35
22
  type: :runtime
36
- requirement: &id002 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
37
25
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- hash: 3
42
- segments:
43
- - 0
44
- version: "0"
45
- version_requirements: *id002
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
46
31
  name: rest-client
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
47
39
  prerelease: false
48
- - !ruby/object:Gem::Dependency
49
- type: :development
50
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
51
41
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
57
- - 0
58
- version: "0"
59
- version_requirements: *id003
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
60
47
  name: shoulda
61
- prerelease: false
62
- - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
63
54
  type: :development
64
- requirement: &id004 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
- requirements:
66
+ requirements:
67
67
  - - ~>
68
- - !ruby/object:Gem::Version
69
- hash: 23
70
- segments:
71
- - 1
72
- - 0
73
- - 0
68
+ - !ruby/object:Gem::Version
74
69
  version: 1.0.0
75
- version_requirements: *id004
76
- name: bundler
77
- prerelease: false
78
- - !ruby/object:Gem::Dependency
79
70
  type: :development
80
- requirement: &id005 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
81
73
  none: false
82
- requirements:
74
+ requirements:
83
75
  - - ~>
84
- - !ruby/object:Gem::Version
85
- hash: 7
86
- segments:
87
- - 1
88
- - 6
89
- - 4
90
- version: 1.6.4
91
- version_requirements: *id005
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
78
+ - !ruby/object:Gem::Dependency
92
79
  name: jeweler
93
- prerelease: false
94
- - !ruby/object:Gem::Dependency
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 1.6.4
95
86
  type: :development
96
- requirement: &id006 !ruby/object:Gem::Requirement
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
97
89
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- version_requirements: *id006
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.6.4
94
+ - !ruby/object:Gem::Dependency
106
95
  name: rcov
107
- prerelease: false
108
- - !ruby/object:Gem::Dependency
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
109
102
  type: :development
110
- requirement: &id007 !ruby/object:Gem::Requirement
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
111
105
  none: false
112
- requirements:
113
- - - ~>
114
- - !ruby/object:Gem::Version
115
- hash: 15
116
- segments:
117
- - 2
118
- - 6
119
- version: "2.6"
120
- version_requirements: *id007
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
121
111
  name: rspec-rails
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.6'
118
+ type: :development
122
119
  prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.6'
123
126
  description: A Ruby client for oVirt REST API
124
127
  email: abenari@redhat.com
125
128
  executables: []
126
-
127
129
  extensions: []
128
-
129
- extra_rdoc_files:
130
+ extra_rdoc_files:
130
131
  - LICENSE.txt
131
132
  - README.rdoc
132
- files:
133
+ files:
133
134
  - .document
134
135
  - Gemfile
135
136
  - LICENSE.txt
@@ -160,38 +161,29 @@ files:
160
161
  - spec/lib/endpoint.rb
161
162
  - spec/spec_helper.rb
162
163
  - spec/unit/vm_spec.rb
163
- homepage: http://github.com/rbovirt/rbovirt
164
- licenses:
164
+ homepage: http://github.com/abenari/rbovirt
165
+ licenses:
165
166
  - MIT
166
167
  post_install_message:
167
168
  rdoc_options: []
168
-
169
- require_paths:
169
+ require_paths:
170
170
  - lib
171
- required_ruby_version: !ruby/object:Gem::Requirement
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
172
  none: false
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- hash: 3
177
- segments:
178
- - 0
179
- version: "0"
180
- required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
178
  none: false
182
- requirements:
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- hash: 3
186
- segments:
187
- - 0
188
- version: "0"
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
189
183
  requirements: []
190
-
191
184
  rubyforge_project:
192
- rubygems_version: 1.8.24
185
+ rubygems_version: 1.8.23
193
186
  signing_key:
194
187
  specification_version: 3
195
188
  summary: A Ruby client for oVirt REST API
196
189
  test_files: []
197
-