ogle 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ogle/image.rb +12 -6
- data/lib/ogle/version.rb +1 -1
- data/test/cassettes/{images_all_verbose.yml → images_all_with_details.yml} +0 -0
- data/test/cassettes/{images_all_runable.yml → images_runable.yml} +0 -0
- data/test/cassettes/images_runable_with_details.yml +28 -0
- data/test/lib/ogle/resource_test.rb +26 -52
- data/test/test_helper.rb +25 -0
- metadata +8 -6
data/lib/ogle/image.rb
CHANGED
@@ -7,11 +7,11 @@ module Ogle
|
|
7
7
|
##
|
8
8
|
# Returns information about images.
|
9
9
|
#
|
10
|
-
# +
|
11
|
-
#
|
10
|
+
# +details+: A Boolean toggling the returning of detailed image
|
11
|
+
# information.
|
12
12
|
|
13
|
-
def all
|
14
|
-
path =
|
13
|
+
def all details = false
|
14
|
+
path = details ? "/images/detail" : "/images"
|
15
15
|
|
16
16
|
response = @connection.get path
|
17
17
|
|
@@ -39,8 +39,14 @@ module Ogle
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
##
|
43
|
+
# Return only runable images.
|
44
|
+
#
|
45
|
+
# +details+: A Boolean toggling the returning of detailed image
|
46
|
+
# information.
|
47
|
+
|
48
|
+
def runable details = false
|
49
|
+
all(details).select do |image|
|
44
50
|
runable? image
|
45
51
|
end
|
46
52
|
end
|
data/lib/ogle/version.rb
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://10.3.170.32:9292/images/detail
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- application/json
|
10
|
+
connection:
|
11
|
+
- keep-alive
|
12
|
+
keep-alive:
|
13
|
+
- 30
|
14
|
+
response: !ruby/struct:VCR::Response
|
15
|
+
status: !ruby/struct:VCR::ResponseStatus
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
content-type:
|
20
|
+
- text/html; charset=UTF-8
|
21
|
+
content-length:
|
22
|
+
- "3113"
|
23
|
+
date:
|
24
|
+
- Wed, 13 Apr 2011 23:30:22 GMT
|
25
|
+
connection:
|
26
|
+
- keep-alive
|
27
|
+
body: "{\"images\": [{\"status\": \"active\", \"name\": \"maverick-server-uec-amd64-vmlinuz-virtual\", \"deleted\": false, \"container_format\": \"aki\", \"created_at\": \"2011-04-11T17:18:44\", \"disk_format\": \"aki\", \"updated_at\": \"2011-04-11T17:18:44\", \"id\": 1, \"location\": \"file:///var/lib/glance/images/1\", \"checksum\": \"73152adae523a52d481f5150deb30356\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"amd64\", \"version\": \"2.6.35\", \"type\": \"kernel\", \"uploader\": \"root@cc-01\", \"distro\": \"Ubuntu\"}, \"size\": 4408912}, {\"status\": \"active\", \"name\": \"maverick-server-uec-amd64.img\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-11T17:18:45\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-11T17:18:51\", \"id\": 2, \"location\": \"file:///var/lib/glance/images/2\", \"checksum\": \"d2d3b3049f897dff2f86295d5a9e879e\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"kernel_id\": \"1\", \"type\": \"machine\", \"version\": \"10.10\", \"kernel_name\": \"maverick-server-uec-amd64-vmlinuz-virtual\", \"uploader\": \"root@cc-01\", \"arch\": \"amd64\", \"distro\": \"Ubuntu\"}, \"size\": 1476395008}, {\"status\": \"active\", \"name\": \"CentOS5-5.5-Base_VM-032311-212432\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-11T21:04:51\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-11T21:04:56\", \"id\": 6, \"location\": \"file:///var/lib/glance/images/6\", \"checksum\": \"6277381feb8708c393c64499a0ce7e1e\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"x86_64\", \"version\": \"5.5\", \"type\": \"machine\", \"uploader\": \"root@cc-01\", \"distro\": \"CentOS\"}, \"size\": 816906240}, {\"status\": \"active\", \"name\": \"initrd.img-2.6.28-11-generic\", \"deleted\": false, \"container_format\": \"ari\", \"created_at\": \"2011-04-11T21:18:33\", \"disk_format\": \"ari\", \"updated_at\": \"2011-04-11T21:18:33\", \"id\": 7, \"location\": \"file:///var/lib/glance/images/7\", \"checksum\": \"4ee1b2aa5c15472b41dafe39f4854aac\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"x86_64\", \"type\": \"ramdisk\", \"uploader\": \"root@cc-01\", \"distro\": \"CentOS\"}, \"size\": 8679404}, {\"status\": \"active\", \"name\": \"vmlinuz-2.6.28-11-generic\", \"deleted\": false, \"container_format\": \"aki\", \"created_at\": \"2011-04-11T21:18:34\", \"disk_format\": \"aki\", \"updated_at\": \"2011-04-11T21:18:34\", \"id\": 8, \"location\": \"file:///var/lib/glance/images/8\", \"checksum\": \"d15243d1203d0aecf187ff969d6764ea\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"x86_64\", \"version\": \"2.6.28-11-generic\", \"type\": \"kernel\", \"uploader\": \"root@cc-01\", \"distro\": \"CentOS\"}, \"size\": 3522336}, {\"status\": \"active\", \"name\": \"centos.5-3.x86-64.img\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-11T21:18:34\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-11T21:18:39\", \"id\": 9, \"location\": \"file:///var/lib/glance/images/9\", \"checksum\": \"79523e49084752f61b49398b19831b23\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"kernel_id\": \"8\", \"arch\": \"x86_64\", \"ramdisk_id\": \"7\", \"version\": \"5.3\", \"kernel_name\": \"vmlinuz-2.6.28-11-generic\", \"ramdisk_name\": \"initrd.img-2.6.28-11-generic\", \"uploader\": \"root@cc-01\", \"type\": \"machine\", \"distro\": \"CentOS\"}, \"size\": 1049624576}]}"
|
28
|
+
http_version: "1.1"
|
@@ -18,64 +18,55 @@ describe Ogle::Image do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "returns a hash of images" do
|
21
|
-
@response.size.must_be :>=,
|
21
|
+
@response.size.must_be :>=, 1
|
22
22
|
end
|
23
23
|
|
24
24
|
it "returns metadata" do
|
25
|
-
must_have_valid_keys @response.first,
|
26
|
-
name
|
27
|
-
container_format
|
28
|
-
disk_format
|
29
|
-
checksum
|
30
|
-
id
|
31
|
-
size
|
32
|
-
)
|
25
|
+
must_have_valid_keys @response.first, METADATA_KEYS
|
33
26
|
end
|
34
27
|
end
|
35
28
|
|
36
|
-
describe "#all
|
29
|
+
describe "#all with details" do
|
37
30
|
before do
|
38
|
-
VCR.use_cassette "
|
31
|
+
VCR.use_cassette "images_all_with_details" do
|
39
32
|
@response = CONNECTION.image.all true
|
40
33
|
end
|
41
34
|
end
|
42
35
|
|
43
36
|
it "returns a detailed hash of images" do
|
44
|
-
@response.size.must_be :>=,
|
37
|
+
@response.size.must_be :>=, 1
|
45
38
|
end
|
46
39
|
|
47
40
|
it "returns metadata" do
|
48
|
-
must_have_valid_keys @response.first,
|
49
|
-
status
|
50
|
-
name
|
51
|
-
deleted
|
52
|
-
container_format
|
53
|
-
created_at
|
54
|
-
disk_format
|
55
|
-
updated_at
|
56
|
-
id
|
57
|
-
location
|
58
|
-
checksum
|
59
|
-
is_public
|
60
|
-
deleted_at
|
61
|
-
properties
|
62
|
-
size
|
63
|
-
)
|
41
|
+
must_have_valid_keys @response.first, DETAILED_METADATA_KEYS
|
64
42
|
end
|
65
43
|
end
|
66
44
|
|
67
|
-
|
68
|
-
# TODO: Make these tests less brittle
|
69
|
-
|
70
|
-
describe "#all runable" do
|
45
|
+
describe "#runable" do
|
71
46
|
before do
|
72
|
-
VCR.use_cassette "
|
47
|
+
VCR.use_cassette "images_runable" do
|
73
48
|
@response = CONNECTION.image.runable
|
74
49
|
end
|
75
50
|
end
|
76
51
|
|
77
52
|
it "returns a hash of all images which are runable" do
|
78
|
-
@response.
|
53
|
+
@response.any? { |i| i['id'] != 1}.must_equal true
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns metadata" do
|
57
|
+
must_have_valid_keys @response.first, METADATA_KEYS
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#runable with details" do
|
62
|
+
before do
|
63
|
+
VCR.use_cassette "images_runable_with_details" do
|
64
|
+
@response = CONNECTION.image.runable(true)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns metadata" do
|
69
|
+
must_have_valid_keys @response.first, DETAILED_METADATA_KEYS
|
79
70
|
end
|
80
71
|
end
|
81
72
|
|
@@ -86,25 +77,8 @@ describe Ogle::Image do
|
|
86
77
|
end
|
87
78
|
end
|
88
79
|
|
89
|
-
### TODO: May want to refactor these keys into a variable,
|
90
|
-
### TODO: since Images#find verbose shares them.
|
91
80
|
it "returns X-Image-Meta-* headers as a hash" do
|
92
|
-
must_have_valid_keys @response,
|
93
|
-
status
|
94
|
-
name
|
95
|
-
deleted
|
96
|
-
container_format
|
97
|
-
created_at
|
98
|
-
disk_format
|
99
|
-
updated_at
|
100
|
-
id
|
101
|
-
location
|
102
|
-
checksum
|
103
|
-
is_public
|
104
|
-
deleted_at
|
105
|
-
properties
|
106
|
-
size
|
107
|
-
)
|
81
|
+
must_have_valid_keys @response, DETAILED_METADATA_KEYS
|
108
82
|
end
|
109
83
|
|
110
84
|
it "returns a nested properties hash" do
|
data/test/test_helper.rb
CHANGED
@@ -3,6 +3,31 @@ Bundler.setup :default, :test
|
|
3
3
|
%w(minitest/spec ogle vcr webmock).each { |r| require r }
|
4
4
|
|
5
5
|
class MiniTest::Unit::TestCase
|
6
|
+
METADATA_KEYS = %w(
|
7
|
+
name
|
8
|
+
container_format
|
9
|
+
disk_format
|
10
|
+
checksum
|
11
|
+
id
|
12
|
+
size
|
13
|
+
)
|
14
|
+
|
15
|
+
DETAILED_METADATA_KEYS = %w(
|
16
|
+
status
|
17
|
+
name
|
18
|
+
deleted
|
19
|
+
container_format
|
20
|
+
created_at
|
21
|
+
disk_format
|
22
|
+
updated_at
|
23
|
+
id
|
24
|
+
location
|
25
|
+
checksum
|
26
|
+
is_public
|
27
|
+
deleted_at
|
28
|
+
properties
|
29
|
+
size
|
30
|
+
)
|
6
31
|
end
|
7
32
|
|
8
33
|
VCR.config do |c|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ogle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kevin Bringard
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-14 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -89,9 +89,10 @@ files:
|
|
89
89
|
- lib/ogle/version.rb
|
90
90
|
- ogle.gemspec
|
91
91
|
- test/cassettes/images_all.yml
|
92
|
-
- test/cassettes/
|
93
|
-
- test/cassettes/images_all_verbose.yml
|
92
|
+
- test/cassettes/images_all_with_details.yml
|
94
93
|
- test/cassettes/images_find.yml
|
94
|
+
- test/cassettes/images_runable.yml
|
95
|
+
- test/cassettes/images_runable_with_details.yml
|
95
96
|
- test/lib/ogle/resource_test.rb
|
96
97
|
- test/test_helper.rb
|
97
98
|
has_rdoc: true
|
@@ -124,8 +125,9 @@ specification_version: 3
|
|
124
125
|
summary: Ruby interface for OpenStack Glance
|
125
126
|
test_files:
|
126
127
|
- test/cassettes/images_all.yml
|
127
|
-
- test/cassettes/
|
128
|
-
- test/cassettes/images_all_verbose.yml
|
128
|
+
- test/cassettes/images_all_with_details.yml
|
129
129
|
- test/cassettes/images_find.yml
|
130
|
+
- test/cassettes/images_runable.yml
|
131
|
+
- test/cassettes/images_runable_with_details.yml
|
130
132
|
- test/lib/ogle/resource_test.rb
|
131
133
|
- test/test_helper.rb
|