ovirt 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ovirt/base.rb +5 -5
- data/lib/ovirt/inventory.rb +8 -6
- data/lib/ovirt/service.rb +6 -7
- data/lib/ovirt/version.rb +1 -1
- data/lib/ovirt.rb +0 -1
- data/spec/base_spec.rb +7 -0
- data/spec/service_spec.rb +35 -0
- metadata +33 -29
- data/lib/ovirt/event_monitor.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4692aaa3e0f3118a4d794df4b468de40d22c9cc
|
4
|
+
data.tar.gz: 1a4443cbe30a58e4ff163bf43cad68d642a9ca15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebc8be1e7aa00ab6ad93f5bdfd196c12709fcdf2882a6645c8e3b0d360e8c9c5dcbda806e7e01d7e10325e3ac86954c3232ac4b70f3b7afe6067387afc634f3b
|
7
|
+
data.tar.gz: d89c8c9f6ea61b805ba7534fa1bbd1c25da11b069c87a780211c05e712ae9355cec71e94c2c565e34cdc87537e5aa7860fe998eccf4c512584fb8bba4babb3b7
|
data/lib/ovirt/base.rb
CHANGED
@@ -168,20 +168,20 @@ module Ovirt
|
|
168
168
|
end
|
169
169
|
|
170
170
|
def self.href_to_guid(href)
|
171
|
-
href.split("/").last
|
171
|
+
href = href.to_s.split("/").last
|
172
|
+
href.guid? ? href : raise(ArgumentError, "href must contain a valid guid")
|
172
173
|
end
|
174
|
+
private_class_method :href_to_guid
|
173
175
|
|
174
176
|
def self.object_to_id(object)
|
175
177
|
case object
|
176
178
|
when Ovirt::Base
|
177
|
-
object
|
179
|
+
object[:id]
|
178
180
|
when String
|
179
|
-
|
180
|
-
object = href_to_guid(object)
|
181
|
+
href_to_guid(object)
|
181
182
|
else
|
182
183
|
raise ArgumentError, "object must be a valid guid or an Ovirt Object"
|
183
184
|
end
|
184
|
-
object
|
185
185
|
end
|
186
186
|
|
187
187
|
def self.api_endpoint
|
data/lib/ovirt/inventory.rb
CHANGED
@@ -26,11 +26,13 @@ module Ovirt
|
|
26
26
|
standard_collection("domains")
|
27
27
|
end
|
28
28
|
|
29
|
-
def events(
|
30
|
-
if since
|
31
|
-
standard_collection("events")
|
29
|
+
def events(options = {})
|
30
|
+
if options[:since]
|
31
|
+
standard_collection("events?from=#{options[:since]}", "event")
|
32
|
+
elsif options[:max]
|
33
|
+
standard_collection("events;max=#{options[:max]}", "event", false, "time", :desc)
|
32
34
|
else
|
33
|
-
standard_collection("events
|
35
|
+
standard_collection("events")
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
@@ -94,8 +96,8 @@ module Ovirt
|
|
94
96
|
|
95
97
|
private
|
96
98
|
|
97
|
-
def standard_collection(uri_suffix, element_name = nil, paginate=false, sort_by
|
98
|
-
@service.standard_collection(uri_suffix, element_name, paginate, sort_by)
|
99
|
+
def standard_collection(uri_suffix, element_name = nil, paginate = false, sort_by = :name, direction = :asc)
|
100
|
+
@service.standard_collection(uri_suffix, element_name, paginate, sort_by, direction)
|
99
101
|
end
|
100
102
|
|
101
103
|
# TODO: Remove this key/method translation and just use the method name as
|
data/lib/ovirt/service.rb
CHANGED
@@ -102,9 +102,9 @@ module Ovirt
|
|
102
102
|
xml_to_object(klass, doc.root)
|
103
103
|
end
|
104
104
|
|
105
|
-
def standard_collection(uri_suffix, element_name = nil, paginate=false, sort_by
|
105
|
+
def standard_collection(uri_suffix, element_name = nil, paginate = false, sort_by = :name, direction = :asc)
|
106
106
|
if paginate
|
107
|
-
doc = paginate_resource_get(uri_suffix, sort_by)
|
107
|
+
doc = paginate_resource_get(uri_suffix, sort_by, direction)
|
108
108
|
else
|
109
109
|
xml = resource_get(uri_suffix)
|
110
110
|
doc = Nokogiri::XML(xml)
|
@@ -241,11 +241,10 @@ module Ovirt
|
|
241
241
|
end
|
242
242
|
|
243
243
|
def base_uri
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
end
|
244
|
+
require 'uri'
|
245
|
+
uri = URI::Generic.build(:scheme => scheme.to_s, :port => port)
|
246
|
+
uri.hostname = server
|
247
|
+
uri.to_s
|
249
248
|
end
|
250
249
|
|
251
250
|
def resource_options
|
data/lib/ovirt/version.rb
CHANGED
data/lib/ovirt.rb
CHANGED
data/spec/base_spec.rb
CHANGED
@@ -9,4 +9,11 @@ describe Ovirt::Base do
|
|
9
9
|
Ovirt::StorageDomain.api_endpoint.should == "storagedomains"
|
10
10
|
Ovirt::DataCenter.api_endpoint.should == "datacenters"
|
11
11
|
end
|
12
|
+
|
13
|
+
it ".href_to_guid" do
|
14
|
+
guid = "1c92b67c-9d10-4f48-85bd-28ba2fd6d9b3"
|
15
|
+
expect(Ovirt::Base.send(:href_to_guid, "/api/clusters/#{guid}")).to eq(guid)
|
16
|
+
expect(Ovirt::Base.send(:href_to_guid, guid)).to eq(guid)
|
17
|
+
expect { Ovirt::Base.send(:href_to_guid, 12345) }.to raise_error(ArgumentError)
|
18
|
+
end
|
12
19
|
end
|
data/spec/service_spec.rb
CHANGED
@@ -27,4 +27,39 @@ EOX
|
|
27
27
|
expect { @service.resource_post('uri', 'data') }.to raise_error(Ovirt::Error, error_detail)
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
context "#base_uri" do
|
32
|
+
let(:defaults) { {:username => nil, :password => nil}}
|
33
|
+
subject { described_class.new(defaults.merge(@options)).send(:base_uri) }
|
34
|
+
|
35
|
+
it "ipv4" do
|
36
|
+
@options = {:server => "127.0.0.1"}
|
37
|
+
subject.should == "https://127.0.0.1:443"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "ipv6" do
|
41
|
+
@options = {:server => "::1"}
|
42
|
+
subject.should == "https://[::1]:443"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "hostname" do
|
46
|
+
@options = {:server => "nobody.com"}
|
47
|
+
subject.should == "https://nobody.com:443"
|
48
|
+
end
|
49
|
+
|
50
|
+
it "port 4443" do
|
51
|
+
@options = {:server => "nobody.com", :port => 4443}
|
52
|
+
subject.should == "https://nobody.com:4443"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "blank port" do
|
56
|
+
@options = {:server => "nobody.com", :port => ""}
|
57
|
+
subject.should == "https://nobody.com"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "nil port uses defaults" do
|
61
|
+
@options = {:server => "nobody.com", :port => nil}
|
62
|
+
subject.should == "https://nobody.com:443"
|
63
|
+
end
|
64
|
+
end
|
30
65
|
end
|
metadata
CHANGED
@@ -1,153 +1,160 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ovirt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Frey
|
8
8
|
- Brandon Dunne
|
9
9
|
- Keenan Brock
|
10
|
+
- Joe Rafaniello
|
11
|
+
- Greg Blomquist
|
10
12
|
autorequire:
|
11
13
|
bindir: bin
|
12
14
|
cert_chain: []
|
13
|
-
date:
|
15
|
+
date: 2015-01-22 00:00:00.000000000 Z
|
14
16
|
dependencies:
|
15
17
|
- !ruby/object:Gem::Dependency
|
16
18
|
name: bundler
|
17
19
|
requirement: !ruby/object:Gem::Requirement
|
18
20
|
requirements:
|
19
|
-
- - ~>
|
21
|
+
- - "~>"
|
20
22
|
- !ruby/object:Gem::Version
|
21
23
|
version: '1.3'
|
22
24
|
type: :development
|
23
25
|
prerelease: false
|
24
26
|
version_requirements: !ruby/object:Gem::Requirement
|
25
27
|
requirements:
|
26
|
-
- - ~>
|
28
|
+
- - "~>"
|
27
29
|
- !ruby/object:Gem::Version
|
28
30
|
version: '1.3'
|
29
31
|
- !ruby/object:Gem::Dependency
|
30
32
|
name: rake
|
31
33
|
requirement: !ruby/object:Gem::Requirement
|
32
34
|
requirements:
|
33
|
-
- -
|
35
|
+
- - ">="
|
34
36
|
- !ruby/object:Gem::Version
|
35
37
|
version: '0'
|
36
38
|
type: :development
|
37
39
|
prerelease: false
|
38
40
|
version_requirements: !ruby/object:Gem::Requirement
|
39
41
|
requirements:
|
40
|
-
- -
|
42
|
+
- - ">="
|
41
43
|
- !ruby/object:Gem::Version
|
42
44
|
version: '0'
|
43
45
|
- !ruby/object:Gem::Dependency
|
44
46
|
name: rspec
|
45
47
|
requirement: !ruby/object:Gem::Requirement
|
46
48
|
requirements:
|
47
|
-
- - ~>
|
49
|
+
- - "~>"
|
48
50
|
- !ruby/object:Gem::Version
|
49
51
|
version: '2.13'
|
50
52
|
type: :development
|
51
53
|
prerelease: false
|
52
54
|
version_requirements: !ruby/object:Gem::Requirement
|
53
55
|
requirements:
|
54
|
-
- - ~>
|
56
|
+
- - "~>"
|
55
57
|
- !ruby/object:Gem::Version
|
56
58
|
version: '2.13'
|
57
59
|
- !ruby/object:Gem::Dependency
|
58
60
|
name: coveralls
|
59
61
|
requirement: !ruby/object:Gem::Requirement
|
60
62
|
requirements:
|
61
|
-
- -
|
63
|
+
- - ">="
|
62
64
|
- !ruby/object:Gem::Version
|
63
65
|
version: '0'
|
64
66
|
type: :development
|
65
67
|
prerelease: false
|
66
68
|
version_requirements: !ruby/object:Gem::Requirement
|
67
69
|
requirements:
|
68
|
-
- -
|
70
|
+
- - ">="
|
69
71
|
- !ruby/object:Gem::Version
|
70
72
|
version: '0'
|
71
73
|
- !ruby/object:Gem::Dependency
|
72
74
|
name: activesupport
|
73
75
|
requirement: !ruby/object:Gem::Requirement
|
74
76
|
requirements:
|
75
|
-
- -
|
77
|
+
- - ">="
|
76
78
|
- !ruby/object:Gem::Version
|
77
79
|
version: '0'
|
78
80
|
type: :runtime
|
79
81
|
prerelease: false
|
80
82
|
version_requirements: !ruby/object:Gem::Requirement
|
81
83
|
requirements:
|
82
|
-
- -
|
84
|
+
- - ">="
|
83
85
|
- !ruby/object:Gem::Version
|
84
86
|
version: '0'
|
85
87
|
- !ruby/object:Gem::Dependency
|
86
88
|
name: more_core_extensions
|
87
89
|
requirement: !ruby/object:Gem::Requirement
|
88
90
|
requirements:
|
89
|
-
- -
|
91
|
+
- - ">="
|
90
92
|
- !ruby/object:Gem::Version
|
91
93
|
version: '0'
|
92
94
|
type: :runtime
|
93
95
|
prerelease: false
|
94
96
|
version_requirements: !ruby/object:Gem::Requirement
|
95
97
|
requirements:
|
96
|
-
- -
|
98
|
+
- - ">="
|
97
99
|
- !ruby/object:Gem::Version
|
98
100
|
version: '0'
|
99
101
|
- !ruby/object:Gem::Dependency
|
100
102
|
name: nokogiri
|
101
103
|
requirement: !ruby/object:Gem::Requirement
|
102
104
|
requirements:
|
103
|
-
- -
|
105
|
+
- - ">="
|
104
106
|
- !ruby/object:Gem::Version
|
105
107
|
version: '0'
|
106
108
|
type: :runtime
|
107
109
|
prerelease: false
|
108
110
|
version_requirements: !ruby/object:Gem::Requirement
|
109
111
|
requirements:
|
110
|
-
- -
|
112
|
+
- - ">="
|
111
113
|
- !ruby/object:Gem::Version
|
112
114
|
version: '0'
|
113
115
|
- !ruby/object:Gem::Dependency
|
114
116
|
name: parallel
|
115
117
|
requirement: !ruby/object:Gem::Requirement
|
116
118
|
requirements:
|
117
|
-
- -
|
119
|
+
- - ">="
|
118
120
|
- !ruby/object:Gem::Version
|
119
121
|
version: '0'
|
120
122
|
type: :runtime
|
121
123
|
prerelease: false
|
122
124
|
version_requirements: !ruby/object:Gem::Requirement
|
123
125
|
requirements:
|
124
|
-
- -
|
126
|
+
- - ">="
|
125
127
|
- !ruby/object:Gem::Version
|
126
128
|
version: '0'
|
127
129
|
- !ruby/object:Gem::Dependency
|
128
130
|
name: rest-client
|
129
131
|
requirement: !ruby/object:Gem::Requirement
|
130
132
|
requirements:
|
131
|
-
- - ~>
|
133
|
+
- - "~>"
|
132
134
|
- !ruby/object:Gem::Version
|
133
135
|
version: 1.7.2
|
134
136
|
type: :runtime
|
135
137
|
prerelease: false
|
136
138
|
version_requirements: !ruby/object:Gem::Requirement
|
137
139
|
requirements:
|
138
|
-
- - ~>
|
140
|
+
- - "~>"
|
139
141
|
- !ruby/object:Gem::Version
|
140
142
|
version: 1.7.2
|
141
143
|
description: Ovirt provides a simple Object Oriented interface to the REST API of
|
142
144
|
oVirt and RHEV-M servers.
|
143
145
|
email:
|
144
|
-
-
|
146
|
+
- fryguy9@gmail.com
|
145
147
|
- bdunne@redhat.com
|
146
148
|
- keenan@thebrocks.net
|
149
|
+
- jrafanie@redhat.com
|
150
|
+
- gblomqui@redhat.com
|
147
151
|
executables: []
|
148
152
|
extensions: []
|
149
153
|
extra_rdoc_files: []
|
150
154
|
files:
|
155
|
+
- ".rspec"
|
156
|
+
- LICENSE.txt
|
157
|
+
- README.md
|
151
158
|
- lib/ovirt.rb
|
152
159
|
- lib/ovirt/api.rb
|
153
160
|
- lib/ovirt/base.rb
|
@@ -157,7 +164,6 @@ files:
|
|
157
164
|
- lib/ovirt/disk.rb
|
158
165
|
- lib/ovirt/domain.rb
|
159
166
|
- lib/ovirt/event.rb
|
160
|
-
- lib/ovirt/event_monitor.rb
|
161
167
|
- lib/ovirt/exception.rb
|
162
168
|
- lib/ovirt/file.rb
|
163
169
|
- lib/ovirt/group.rb
|
@@ -180,15 +186,12 @@ files:
|
|
180
186
|
- lib/ovirt/version.rb
|
181
187
|
- lib/ovirt/vm.rb
|
182
188
|
- lib/ovirt/vmpool.rb
|
183
|
-
- README.md
|
184
|
-
- LICENSE.txt
|
185
189
|
- spec/base_spec.rb
|
186
190
|
- spec/event_spec.rb
|
187
191
|
- spec/service_spec.rb
|
188
192
|
- spec/spec_helper.rb
|
189
193
|
- spec/template_spec.rb
|
190
194
|
- spec/vm_spec.rb
|
191
|
-
- .rspec
|
192
195
|
homepage: http://github.com/ManageIQ/ovirt
|
193
196
|
licenses:
|
194
197
|
- Apache
|
@@ -199,17 +202,17 @@ require_paths:
|
|
199
202
|
- lib
|
200
203
|
required_ruby_version: !ruby/object:Gem::Requirement
|
201
204
|
requirements:
|
202
|
-
- -
|
205
|
+
- - ">="
|
203
206
|
- !ruby/object:Gem::Version
|
204
207
|
version: '0'
|
205
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
209
|
requirements:
|
207
|
-
- -
|
210
|
+
- - ">="
|
208
211
|
- !ruby/object:Gem::Version
|
209
212
|
version: '0'
|
210
213
|
requirements: []
|
211
214
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.
|
215
|
+
rubygems_version: 2.2.2
|
213
216
|
signing_key:
|
214
217
|
specification_version: 4
|
215
218
|
summary: Ovirt provides a simple Object Oriented interface to the REST API of oVirt
|
@@ -221,4 +224,5 @@ test_files:
|
|
221
224
|
- spec/spec_helper.rb
|
222
225
|
- spec/template_spec.rb
|
223
226
|
- spec/vm_spec.rb
|
224
|
-
- .rspec
|
227
|
+
- ".rspec"
|
228
|
+
has_rdoc:
|
data/lib/ovirt/event_monitor.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
module Ovirt
|
2
|
-
class EventMonitor
|
3
|
-
def initialize(options={})
|
4
|
-
@options = options
|
5
|
-
end
|
6
|
-
|
7
|
-
def inventory
|
8
|
-
@inventory ||= Inventory.new(@options)
|
9
|
-
end
|
10
|
-
|
11
|
-
def start
|
12
|
-
trap(:TERM) { $rhevm_log.info "EventMonitor#start: ignoring SIGTERM" }
|
13
|
-
@since = nil
|
14
|
-
@inventory = nil
|
15
|
-
@monitor_events = true
|
16
|
-
end
|
17
|
-
|
18
|
-
def stop
|
19
|
-
@monitor_events = false
|
20
|
-
end
|
21
|
-
|
22
|
-
def each_batch
|
23
|
-
while @monitor_events do
|
24
|
-
events = inventory.events(@since).sort_by { |e| e[:id].to_i }
|
25
|
-
@since = events.last[:id].to_i unless events.empty?
|
26
|
-
yield events
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def each
|
31
|
-
each_batch do |events|
|
32
|
-
events.each { |e| yield e }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|