ogle 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.md +47 -0
- data/Rakefile +11 -0
- data/lib/ogle/client.rb +23 -0
- data/lib/ogle/resource.rb +50 -0
- data/lib/ogle/version.rb +3 -0
- data/lib/ogle.rb +1 -0
- data/ogle.gemspec +28 -0
- data/test/cassettes/resource_all.yml +28 -0
- data/test/cassettes/resource_all_verbose.yml +28 -0
- data/test/cassettes/resource_find.yml +72 -0
- data/test/lib/ogle/resource_test.rb +37 -0
- data/test/test_helper.rb +18 -0
- metadata +129 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby-1.9.2-p136@ogle
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Ogle
|
2
|
+
|
3
|
+
> Go ahead and ogle, it's so much more than a glance.
|
4
|
+
|
5
|
+
Lean Ruby bindings to OpenStack's [Glance](http://glance.openstack.org/). Exposes the Glance API endpoints in an easy to access manner.
|
6
|
+
|
7
|
+
# Why
|
8
|
+
|
9
|
+
Depending on the call you make, glance will sometimes return JSON and others XML. This will normalize the returned data for easy use. Plus, I was bored.
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
### Bundler
|
14
|
+
|
15
|
+
gem "ogle"
|
16
|
+
|
17
|
+
### Examples
|
18
|
+
|
19
|
+
require "ogle"
|
20
|
+
|
21
|
+
CONNECTION = Ogle::Client.new(
|
22
|
+
:host => "example.com"
|
23
|
+
)
|
24
|
+
|
25
|
+
# This will give a list of all the images
|
26
|
+
response = CONNECTION.resource.all
|
27
|
+
puts response
|
28
|
+
puts response.body
|
29
|
+
puts response.code
|
30
|
+
|
31
|
+
# This will give a detailed list of all the images
|
32
|
+
response = CONNECTION.resource true
|
33
|
+
puts response
|
34
|
+
puts response.body
|
35
|
+
puts response.code
|
36
|
+
|
37
|
+
# This will return the x-image-meta-* headers for a specific image as a hash
|
38
|
+
response = CONNECTION.resource 6
|
39
|
+
puts response.inspect
|
40
|
+
|
41
|
+
## Compatability
|
42
|
+
|
43
|
+
ruby 1.9.2
|
44
|
+
|
45
|
+
## Testing
|
46
|
+
|
47
|
+
$ bundle exec rake
|
data/Rakefile
ADDED
data/lib/ogle/client.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
%w(hugs ogle/resource).each { |r| require r }
|
2
|
+
|
3
|
+
module Ogle
|
4
|
+
class Client
|
5
|
+
##
|
6
|
+
# Required:
|
7
|
+
# +host+: A string containing the hostname or IP of your glance server
|
8
|
+
|
9
|
+
def initialize options
|
10
|
+
@connection = Hugs::Client.new(
|
11
|
+
:host => options[:host],
|
12
|
+
:scheme => options[:scheme] || "http",
|
13
|
+
:port => options[:port] || 9292,
|
14
|
+
)
|
15
|
+
@connection.raise_4xx = true
|
16
|
+
@connection.raise_5xx = true
|
17
|
+
end
|
18
|
+
|
19
|
+
def resource
|
20
|
+
@resource ||= Resource.new @connection
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Ogle
|
2
|
+
class Resource
|
3
|
+
def initialize connection
|
4
|
+
@connection = connection
|
5
|
+
end
|
6
|
+
|
7
|
+
##
|
8
|
+
# Returns information about images.
|
9
|
+
#
|
10
|
+
# +verbose+: A Boolean toggling the returning of
|
11
|
+
# additional image information.
|
12
|
+
|
13
|
+
def all verbose = false
|
14
|
+
path = verbose ? "/images/detail" : "/images"
|
15
|
+
|
16
|
+
response = @connection.get path
|
17
|
+
|
18
|
+
response.body['images']
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Returns information about the given 'image_id'.
|
23
|
+
#
|
24
|
+
# +image_id+: A String representing an image_id.
|
25
|
+
|
26
|
+
def find image_id
|
27
|
+
headers = @connection.head "/images/#{image_id}"
|
28
|
+
|
29
|
+
meta ={}
|
30
|
+
|
31
|
+
headers.each_header do |k, v|
|
32
|
+
if k.match('x-image-meta-')
|
33
|
+
meta["#{k}"] = v
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
meta
|
38
|
+
end
|
39
|
+
|
40
|
+
##
|
41
|
+
# Stores the disk provided disk image in glance
|
42
|
+
# Stores provided meta-data about the image in glance
|
43
|
+
#
|
44
|
+
# +image_location+: A string representing the location of the image to updload
|
45
|
+
|
46
|
+
def add image_location
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
data/lib/ogle/version.rb
ADDED
data/lib/ogle.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "ogle/client"
|
data/ogle.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "ogle/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "ogle"
|
7
|
+
s.version = Ogle::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Kevin Bringard"]
|
10
|
+
s.email = ["kbringard@attinteractive.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Ruby interface for OpenStack Glance}
|
13
|
+
s.description = %q{Exposes the API for OpenStack Glance. Go ahead and ogle, it's so much more than a glance.}
|
14
|
+
|
15
|
+
s.rubyforge_project = "ogle"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_dependency "hugs", "~> 2.5.2"
|
23
|
+
|
24
|
+
s.add_development_dependency "rake"
|
25
|
+
s.add_development_dependency "vcr", "1.5.0"
|
26
|
+
s.add_development_dependency "webmock"
|
27
|
+
s.add_development_dependency "minitest"
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://10.1.170.33:9292/images
|
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
|
+
- "1067"
|
23
|
+
date:
|
24
|
+
- Fri, 08 Apr 2011 17:56:53 GMT
|
25
|
+
connection:
|
26
|
+
- keep-alive
|
27
|
+
body: "{\"images\": [{\"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-initrd\", \"container_format\": \"ari\", \"disk_format\": \"ari\", \"checksum\": \"2d222d406f3ed30e03ed44123c33cba6\", \"id\": 1, \"size\": 5882349}, {\"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz\", \"container_format\": \"aki\", \"disk_format\": \"aki\", \"checksum\": \"3ed2965d3f8d877a3ee3e061fd648e9a\", \"id\": 2, \"size\": 4404752}, {\"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1.img\", \"container_format\": \"ami\", \"disk_format\": \"ami\", \"checksum\": \"10047a119149e08fb206eea89832eee0\", \"id\": 3, \"size\": 25165824}, {\"name\": \"CentOS5-5.5-Base_VM-032311-212432\", \"container_format\": \"ami\", \"disk_format\": \"ami\", \"checksum\": \"6277381feb8708c393c64499a0ce7e1e\", \"id\": 4, \"size\": 816906240}, {\"name\": \"maverick-server-uec-amd64-vmlinuz-virtual\", \"container_format\": \"aki\", \"disk_format\": \"aki\", \"checksum\": \"73152adae523a52d481f5150deb30356\", \"id\": 5, \"size\": 4408912}, {\"name\": \"maverick-server-uec-amd64.img\", \"container_format\": \"ami\", \"disk_format\": \"ami\", \"checksum\": \"d511da81009517c53f36ff4e8602ff62\", \"id\": 6, \"size\": 1476395008}]}"
|
28
|
+
http_version: "1.1"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://10.1.170.33: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
|
+
- "3294"
|
23
|
+
date:
|
24
|
+
- Fri, 08 Apr 2011 17:56:53 GMT
|
25
|
+
connection:
|
26
|
+
- keep-alive
|
27
|
+
body: "{\"images\": [{\"status\": \"active\", \"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-initrd\", \"deleted\": false, \"container_format\": \"ari\", \"created_at\": \"2011-04-06T20:03:11.914270\", \"disk_format\": \"ari\", \"updated_at\": \"2011-04-06T20:03:12.206204\", \"id\": 1, \"location\": \"file:///var/lib/glance/images/1\", \"checksum\": \"2d222d406f3ed30e03ed44123c33cba6\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"amd64\", \"type\": \"ramdisk\", \"uploader\": \"root@e3ab3\", \"distro\": \"ttylinux\"}, \"size\": 5882349}, {\"status\": \"active\", \"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz\", \"deleted\": false, \"container_format\": \"aki\", \"created_at\": \"2011-04-06T20:03:12.585510\", \"disk_format\": \"aki\", \"updated_at\": \"2011-04-06T20:03:12.846637\", \"id\": 2, \"location\": \"file:///var/lib/glance/images/2\", \"checksum\": \"3ed2965d3f8d877a3ee3e061fd648e9a\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"amd64\", \"version\": \"2.5.35-22_1\", \"type\": \"kernel\", \"uploader\": \"root@e3ab3\", \"distro\": \"ttylinux\"}, \"size\": 4404752}, {\"status\": \"active\", \"name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1.img\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-06T20:03:13.227286\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-06T20:03:13.602220\", \"id\": 3, \"location\": \"file:///var/lib/glance/images/3\", \"checksum\": \"10047a119149e08fb206eea89832eee0\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"kernel_id\": \"2\", \"arch\": \"amd64\", \"ramdisk_id\": \"1\", \"version\": \"1.0\", \"kernel_name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz\", \"ramdisk_name\": \"ttylinux-uec-amd64-12.1_2.6.35-22_1-initrd\", \"uploader\": \"root@e3ab3\", \"type\": \"machine\", \"distro\": \"ttylinux\"}, \"size\": 25165824}, {\"status\": \"active\", \"name\": \"CentOS5-5.5-Base_VM-032311-212432\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-06T20:03:59.759260\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-06T20:04:04.498592\", \"id\": 4, \"location\": \"file:///var/lib/glance/images/4\", \"checksum\": \"6277381feb8708c393c64499a0ce7e1e\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"x86_64\", \"builder\": \"kevin\", \"version\": \"5.5\", \"uploader\": \"root@e3ab3\", \"type\": \"machine\", \"distro\": \"CentOS\"}, \"size\": 816906240}, {\"status\": \"active\", \"name\": \"maverick-server-uec-amd64-vmlinuz-virtual\", \"deleted\": false, \"container_format\": \"aki\", \"created_at\": \"2011-04-06T20:04:47.984648\", \"disk_format\": \"aki\", \"updated_at\": \"2011-04-06T20:04:48.281538\", \"id\": 5, \"location\": \"file:///var/lib/glance/images/5\", \"checksum\": \"73152adae523a52d481f5150deb30356\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"arch\": \"amd64\", \"version\": \"2.6.32\", \"type\": \"kernel\", \"uploader\": \"root@e3ab3\", \"distro\": \"Ubuntu\"}, \"size\": 4408912}, {\"status\": \"active\", \"name\": \"maverick-server-uec-amd64.img\", \"deleted\": false, \"container_format\": \"ami\", \"created_at\": \"2011-04-06T20:04:48.664176\", \"disk_format\": \"ami\", \"updated_at\": \"2011-04-06T20:04:57.042658\", \"id\": 6, \"location\": \"file:///var/lib/glance/images/6\", \"checksum\": \"d511da81009517c53f36ff4e8602ff62\", \"is_public\": true, \"deleted_at\": null, \"properties\": {\"kernel_id\": \"5\", \"type\": \"machine\", \"version\": \"10.10\", \"kernel_name\": \"maverick-server-uec-amd64-vmlinuz-virtual\", \"uploader\": \"root@e3ab3\", \"arch\": \"amd64\", \"distro\": \"Ubuntu\"}, \"size\": 1476395008}]}"
|
28
|
+
http_version: "1.1"
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :head
|
5
|
+
uri: http://10.1.170.33:9292/images/6
|
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
|
+
- "0"
|
23
|
+
x-image-meta-property-distro:
|
24
|
+
- Ubuntu
|
25
|
+
x-image-meta-id:
|
26
|
+
- "6"
|
27
|
+
x-image-meta-property-arch:
|
28
|
+
- amd64
|
29
|
+
x-image-meta-deleted:
|
30
|
+
- "False"
|
31
|
+
x-image-meta-container-format:
|
32
|
+
- ami
|
33
|
+
x-image-meta-property-uploader:
|
34
|
+
- root@e3ab3
|
35
|
+
x-image-meta-location:
|
36
|
+
- file:///var/lib/glance/images/6
|
37
|
+
x-image-meta-deleted-at:
|
38
|
+
- ""
|
39
|
+
x-image-meta-created-at:
|
40
|
+
- 2011-04-06T20:04:48.664176
|
41
|
+
x-image-meta-size:
|
42
|
+
- "1476395008"
|
43
|
+
x-image-meta-status:
|
44
|
+
- active
|
45
|
+
x-image-meta-property-type:
|
46
|
+
- machine
|
47
|
+
x-image-meta-property-kernel-name:
|
48
|
+
- maverick-server-uec-amd64-vmlinuz-virtual
|
49
|
+
x-image-meta-is-public:
|
50
|
+
- "True"
|
51
|
+
x-image-meta-property-kernel-id:
|
52
|
+
- "5"
|
53
|
+
x-image-meta-updated-at:
|
54
|
+
- 2011-04-06T20:04:57.042658
|
55
|
+
x-image-meta-checksum:
|
56
|
+
- d511da81009517c53f36ff4e8602ff62
|
57
|
+
x-image-meta-property-version:
|
58
|
+
- "10.10"
|
59
|
+
x-image-meta-disk-format:
|
60
|
+
- ami
|
61
|
+
x-image-meta-name:
|
62
|
+
- maverick-server-uec-amd64.img
|
63
|
+
location:
|
64
|
+
- http://10.1.170.33:9292/images/6
|
65
|
+
etag:
|
66
|
+
- d511da81009517c53f36ff4e8602ff62
|
67
|
+
date:
|
68
|
+
- Fri, 08 Apr 2011 17:56:53 GMT
|
69
|
+
connection:
|
70
|
+
- keep-alive
|
71
|
+
body:
|
72
|
+
http_version: "1.1"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
CONNECTION = Ogle::Client.new(
|
4
|
+
:host => "10.1.170.33"
|
5
|
+
)
|
6
|
+
|
7
|
+
describe Ogle::Resource do
|
8
|
+
describe "#all" do
|
9
|
+
it "returns a hash of images" do
|
10
|
+
VCR.use_cassette "resource_all" do
|
11
|
+
response = CONNECTION.resource.all
|
12
|
+
|
13
|
+
response.size.must_equal 6
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#all true" do
|
19
|
+
it "returns a detailed hash of images (verbose = true)" do
|
20
|
+
VCR.use_cassette "resource_all_verbose" do
|
21
|
+
response = CONNECTION.resource.all true
|
22
|
+
|
23
|
+
response.size.must_equal 6
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#find" do
|
29
|
+
it "returns X-Image-Meta-* headers as a hash" do
|
30
|
+
VCR.use_cassette "resource_find" do
|
31
|
+
response = CONNECTION.resource.find 6
|
32
|
+
|
33
|
+
response.size.must_equal 20
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
%w(bundler minitest/spec ogle vcr webmock).each { |r| require r }
|
2
|
+
|
3
|
+
Bundler.setup :default, :test
|
4
|
+
|
5
|
+
class MiniTest::Unit::TestCase
|
6
|
+
def cassette_for cassette
|
7
|
+
c = VCR::Cassette.new(cassette).send :recorded_interactions
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
VCR.config do |c|
|
12
|
+
c.stub_with :webmock
|
13
|
+
c.cassette_library_dir = "test/cassettes"
|
14
|
+
c.default_cassette_options = { :record => :none }
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
MiniTest::Unit.autorun
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ogle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kevin Bringard
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-08 00:00:00 -06:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: hugs
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 2.5.2
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: vcr
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - "="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.5.0
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: webmock
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
type: :development
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: minitest
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
type: :development
|
70
|
+
version_requirements: *id005
|
71
|
+
description: Exposes the API for OpenStack Glance. Go ahead and ogle, it's so much more than a glance.
|
72
|
+
email:
|
73
|
+
- kbringard@attinteractive.com
|
74
|
+
executables: []
|
75
|
+
|
76
|
+
extensions: []
|
77
|
+
|
78
|
+
extra_rdoc_files: []
|
79
|
+
|
80
|
+
files:
|
81
|
+
- .gitignore
|
82
|
+
- .rvmrc
|
83
|
+
- Gemfile
|
84
|
+
- README.md
|
85
|
+
- Rakefile
|
86
|
+
- lib/ogle.rb
|
87
|
+
- lib/ogle/client.rb
|
88
|
+
- lib/ogle/resource.rb
|
89
|
+
- lib/ogle/version.rb
|
90
|
+
- ogle.gemspec
|
91
|
+
- test/cassettes/resource_all.yml
|
92
|
+
- test/cassettes/resource_all_verbose.yml
|
93
|
+
- test/cassettes/resource_find.yml
|
94
|
+
- test/lib/ogle/resource_test.rb
|
95
|
+
- test/test_helper.rb
|
96
|
+
has_rdoc: true
|
97
|
+
homepage: ""
|
98
|
+
licenses: []
|
99
|
+
|
100
|
+
post_install_message:
|
101
|
+
rdoc_options: []
|
102
|
+
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: "0"
|
117
|
+
requirements: []
|
118
|
+
|
119
|
+
rubyforge_project: ogle
|
120
|
+
rubygems_version: 1.6.2
|
121
|
+
signing_key:
|
122
|
+
specification_version: 3
|
123
|
+
summary: Ruby interface for OpenStack Glance
|
124
|
+
test_files:
|
125
|
+
- test/cassettes/resource_all.yml
|
126
|
+
- test/cassettes/resource_all_verbose.yml
|
127
|
+
- test/cassettes/resource_find.yml
|
128
|
+
- test/lib/ogle/resource_test.rb
|
129
|
+
- test/test_helper.rb
|