openstack-compute 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/openstack/compute/authentication.rb +22 -16
- data/lib/openstack/compute/connection.rb +6 -3
- metadata +6 -8
data/README.rdoc
CHANGED
@@ -61,7 +61,7 @@ See the class definitions for documentation on specific methods and operations.
|
|
61
61
|
|
62
62
|
== Authors
|
63
63
|
|
64
|
-
By Dan Prince <
|
64
|
+
By Dan Prince <dprince@redhat.com>, Naveed Massjouni <naveedm9@gmail.com>
|
65
65
|
|
66
66
|
Based on the Rackspace Cloud Servers Ruby API.
|
67
67
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.7
|
@@ -7,6 +7,7 @@ module Compute
|
|
7
7
|
# If it succeeds, it sets the svrmgmthost, svrmgtpath, svrmgmtport,
|
8
8
|
# svrmgmtscheme, authtoken, and authok variables on the connection.
|
9
9
|
# If it fails, it raises an exception.
|
10
|
+
|
10
11
|
def self.init(conn)
|
11
12
|
if conn.auth_path =~ /.*v2.0\/?$/
|
12
13
|
AuthV20.new(conn)
|
@@ -19,6 +20,7 @@ module Compute
|
|
19
20
|
|
20
21
|
private
|
21
22
|
class AuthV20
|
23
|
+
attr_reader :uri
|
22
24
|
|
23
25
|
def initialize(connection)
|
24
26
|
begin
|
@@ -31,6 +33,8 @@ module Compute
|
|
31
33
|
rescue
|
32
34
|
raise OpenStack::Compute::Exception::Connection, "Unable to connect to #{server}"
|
33
35
|
end
|
36
|
+
|
37
|
+
@uri = String.new
|
34
38
|
|
35
39
|
auth_data = JSON.generate({ "auth" => { "passwordCredentials" => { "username" => connection.authuser, "password" => connection.authkey }, "tenantName" => connection.authtenant}})
|
36
40
|
response = server.post(connection.auth_path.chomp("/")+"/tokens", auth_data, {'Content-Type' => 'application/json'})
|
@@ -38,26 +42,31 @@ module Compute
|
|
38
42
|
resp_data=JSON.parse(response.body)
|
39
43
|
connection.authtoken = resp_data['access']['token']['id']
|
40
44
|
resp_data['access']['serviceCatalog'].each do |service|
|
41
|
-
if
|
42
|
-
|
45
|
+
if connection.service_name
|
46
|
+
check_service_name = connection.service_name
|
47
|
+
else
|
48
|
+
check_service_name = service['name']
|
49
|
+
end
|
50
|
+
if service['type'] == connection.service_type and service['name'] == check_service_name
|
43
51
|
endpoints = service["endpoints"]
|
44
52
|
if connection.region
|
45
53
|
endpoints.each do |ep|
|
46
|
-
if ep["region"].upcase == connection.region.upcase
|
47
|
-
uri = URI.parse(ep["publicURL"])
|
54
|
+
if ep["region"] and ep["region"].upcase == connection.region.upcase
|
55
|
+
@uri = URI.parse(ep["publicURL"])
|
48
56
|
end
|
49
57
|
end
|
50
|
-
if uri == ''
|
51
|
-
raise OpenStack::Compute::Exception::Authentication, "No API endpoint for region #{connection.region}"
|
52
|
-
end
|
53
58
|
else
|
54
|
-
uri = URI.parse(endpoints[0]["publicURL"])
|
59
|
+
@uri = URI.parse(endpoints[0]["publicURL"])
|
60
|
+
end
|
61
|
+
if @uri == ""
|
62
|
+
raise OpenStack::Compute::Exception::Authentication, "No API endpoint for region #{connection.region}"
|
63
|
+
else
|
64
|
+
connection.svrmgmthost = @uri.host
|
65
|
+
connection.svrmgmtpath = @uri.path
|
66
|
+
connection.svrmgmtport = @uri.port
|
67
|
+
connection.svrmgmtscheme = @uri.scheme
|
68
|
+
connection.authok = true
|
55
69
|
end
|
56
|
-
connection.svrmgmthost = uri.host
|
57
|
-
connection.svrmgmtpath = uri.path
|
58
|
-
connection.svrmgmtport = uri.port
|
59
|
-
connection.svrmgmtscheme = uri.scheme
|
60
|
-
connection.authok = true
|
61
70
|
end
|
62
71
|
end
|
63
72
|
else
|
@@ -88,9 +97,6 @@ module Compute
|
|
88
97
|
uri = URI.parse(response["x-server-management-url"])
|
89
98
|
connection.svrmgmthost = uri.host
|
90
99
|
connection.svrmgmtpath = uri.path
|
91
|
-
# Force the path into the v1.1 URL space
|
92
|
-
connection.svrmgmtpath.sub!(/\/.*\/?/, '/v1.1/')
|
93
|
-
connection.svrmgmtpath += connection.authtenant
|
94
100
|
connection.svrmgmtport = uri.port
|
95
101
|
connection.svrmgmtscheme = uri.scheme
|
96
102
|
connection.authok = true
|
@@ -15,7 +15,8 @@ module Compute
|
|
15
15
|
attr_reader :auth_port
|
16
16
|
attr_reader :auth_scheme
|
17
17
|
attr_reader :auth_path
|
18
|
-
|
18
|
+
attr_reader :service_name
|
19
|
+
attr_reader :service_type
|
19
20
|
attr_reader :proxy_host
|
20
21
|
attr_reader :proxy_port
|
21
22
|
attr_reader :region
|
@@ -28,7 +29,8 @@ module Compute
|
|
28
29
|
# :tenant - Your Openstack tenant *required*. Defaults to username.
|
29
30
|
# :api_key - Your Openstack API key *required*
|
30
31
|
# :auth_url - Configurable auth_url endpoint.
|
31
|
-
# :service_name - (Optional for v2.0 auth only). The name of the compute service to use.
|
32
|
+
# :service_name - (Optional for v2.0 auth only). The optional name of the compute service to use.
|
33
|
+
# :service_type - (Optional for v2.0 auth only). Defaults to "compute"
|
32
34
|
# :region - (Optional for v2.0 auth only). The specific service region to use. Defaults to first returned region.
|
33
35
|
# :retry_auth - Whether to retry if your auth token expires (defaults to true)
|
34
36
|
# :proxy_host - If you need to connect through a proxy, supply the hostname here
|
@@ -40,7 +42,8 @@ module Compute
|
|
40
42
|
@authkey = options[:api_key] || (raise Exception::MissingArgument, "Must supply an :api_key")
|
41
43
|
@auth_url = options[:auth_url] || (raise Exception::MissingArgument, "Must supply an :auth_url")
|
42
44
|
@authtenant = options[:authtenant] || @authuser
|
43
|
-
@service_name = options[:service_name] ||
|
45
|
+
@service_name = options[:service_name] || nil
|
46
|
+
@service_type = options[:service_type] || "compute"
|
44
47
|
@region = options[:region] || @region = nil
|
45
48
|
@is_debug = options[:is_debug]
|
46
49
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstack-compute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 7
|
10
|
+
version: 1.1.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dan Prince
|
@@ -15,8 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
19
|
-
default_executable:
|
18
|
+
date: 2012-02-17 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: json
|
@@ -54,7 +53,6 @@ files:
|
|
54
53
|
- lib/openstack/compute/metadata.rb
|
55
54
|
- lib/openstack/compute/personalities.rb
|
56
55
|
- lib/openstack/compute/server.rb
|
57
|
-
has_rdoc: true
|
58
56
|
homepage: https://launchpad.net/ruby-openstack-compute
|
59
57
|
licenses: []
|
60
58
|
|
@@ -84,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
82
|
requirements: []
|
85
83
|
|
86
84
|
rubyforge_project:
|
87
|
-
rubygems_version: 1.
|
85
|
+
rubygems_version: 1.8.15
|
88
86
|
signing_key:
|
89
87
|
specification_version: 3
|
90
88
|
summary: OpenStack Compute Ruby API
|