occi-api 4.2.0.beta.14 → 4.2.0.beta.15
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.
- checksums.yaml +4 -4
- data/README.md +6 -6
- data/examples/dsl_example.rb +1 -1
- data/examples/x509auth_example.rb +1 -1
- data/lib/occi-api.rb +1 -0
- data/lib/occi/api/client/base/entity_methods.rb +1 -1
- data/lib/occi/api/client/base/kind_methods.rb +1 -1
- data/lib/occi/api/client/base/mixin_methods.rb +1 -1
- data/lib/occi/api/client/base/protected_helpers.rb +4 -4
- data/lib/occi/api/client/client_base.rb +2 -2
- data/lib/occi/api/client/client_http.rb +4 -4
- data/lib/occi/api/client/http/authn_plugins/keystone.rb +3 -3
- data/lib/occi/api/client/http/helpers.rb +3 -3
- data/lib/occi/api/client/http/party_wrappers.rb +4 -4
- data/lib/occi/api/log.rb +27 -0
- data/lib/occi/api/version.rb +1 -1
- data/occi-api.gemspec +1 -1
- data/spec/occi/api/client/client_http_spec.rb +2 -2
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fd9d35cc6faff4bdad01821af58fce357fafa38
|
4
|
+
data.tar.gz: f68dc05a6b11820607275059fc4bc7435be03c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 995087000d3f6802fbce5d2ab8bfc0525d5e7d0ee0ad4be24db7af897e28d82d9faabbf17443d5e626dc7944cdd86803f50dc3915f5805bee4cd2f6563b8af03
|
7
|
+
data.tar.gz: 1466c82b129a9cf4c9bf70b30dbb914040f2c43ee8b74103c57d450d0acd9e5d2d9c4b61f6e555d1420d1e1147914e61e7d032a00dcf1687c16d06a3c0fa7b78
|
data/README.md
CHANGED
@@ -132,7 +132,7 @@ To connect to an OCCI endpoint/server (e.g. running on http://localhost:3300/ )
|
|
132
132
|
options = {
|
133
133
|
:endpoint => "http://localhost:3300/",
|
134
134
|
:auth => {:type => "none"},
|
135
|
-
:log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
|
135
|
+
:log => {:out => STDERR, :level => Occi::Api::Log::WARN, :logger => nil},
|
136
136
|
:auto_connect => "value", auto_connect => true,
|
137
137
|
:media_type => nil
|
138
138
|
}
|
@@ -209,7 +209,7 @@ To connect to an OCCI endpoint/server (e.g. running on http://localhost:3300/ )
|
|
209
209
|
options = {
|
210
210
|
:endpoint => "http://localhost:3300/",
|
211
211
|
:auth => {:type => "none"},
|
212
|
-
:log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
|
212
|
+
:log => {:out => STDERR, :level => Occi::Api::Log::WARN, :logger => nil},
|
213
213
|
:auto_connect => "value", auto_connect => true,
|
214
214
|
:media_type => nil
|
215
215
|
}
|
@@ -286,14 +286,14 @@ The OCCI gem includes its own logging mechanism using a message queue. By defaul
|
|
286
286
|
A new OCCI Logger can be initialized by specifying the log destination (either a filename or an IO object like
|
287
287
|
STDOUT) and the log level.
|
288
288
|
|
289
|
-
logger = Occi::Log.new STDOUT
|
290
|
-
logger.level = Occi::Log::INFO
|
289
|
+
logger = Occi::Api::Log.new STDOUT
|
290
|
+
logger.level = Occi::Api::Log::INFO
|
291
291
|
|
292
292
|
You can create multiple Loggers to receive the log output.
|
293
293
|
|
294
|
-
You can always, even if there is no logger defined, log output using the class methods of OCCI::Log e.g.
|
294
|
+
You can always, even if there is no logger defined, log output using the class methods of OCCI::Api::Log e.g.
|
295
295
|
|
296
|
-
Occi::Log.info("Test message")
|
296
|
+
Occi::Api::Log.info("Test message")
|
297
297
|
|
298
298
|
Changelog
|
299
299
|
---------
|
data/examples/dsl_example.rb
CHANGED
data/lib/occi-api.rb
CHANGED
@@ -15,7 +15,7 @@ module Occi::Api::Client
|
|
15
15
|
# @param resource_type [String] resource name or resource identifier
|
16
16
|
# @return [Occi::Core::Resource] new resource instance
|
17
17
|
def get_resource(resource_type)
|
18
|
-
Occi::Log.debug("Instantiating #{resource_type.inspect}")
|
18
|
+
Occi::Api::Log.debug("Instantiating #{resource_type.inspect}")
|
19
19
|
|
20
20
|
type_id = get_resource_type_identifier(resource_type)
|
21
21
|
raise "Unknown resource type! #{resource_type.inspect}" unless type_id
|
@@ -14,7 +14,7 @@ module Occi::Api::Client
|
|
14
14
|
# @return [Array<String>] list of available kind type identifiers related to
|
15
15
|
# the given type identifier
|
16
16
|
def get_kind_type_identifiers_related_to(type_identifier)
|
17
|
-
Occi::Log.debug("Getting kind type identifiers related to #{type_identifier.inspect}")
|
17
|
+
Occi::Api::Log.debug("Getting kind type identifiers related to #{type_identifier.inspect}")
|
18
18
|
collection = @model.get(type_identifier)
|
19
19
|
collection.kinds.to_a.collect { |kind| kind.type_identifier }
|
20
20
|
end
|
@@ -21,7 +21,7 @@ module Occi::Api::Client
|
|
21
21
|
# @return [String, Occi::Core::Mixin, nil] link, mixin description or nothing found
|
22
22
|
def get_mixin(name, type = nil, describe = false)
|
23
23
|
# TODO: mixin fix
|
24
|
-
Occi::Log.debug "Looking for mixin #{name.inspect} #{type.inspect} " \
|
24
|
+
Occi::Api::Log.debug "Looking for mixin #{name.inspect} #{type.inspect} " \
|
25
25
|
"#{describe.inspect}"
|
26
26
|
|
27
27
|
# TODO: extend this code to support multiple matches and regex filters
|
@@ -7,13 +7,13 @@ module Occi::Api::Client
|
|
7
7
|
# instances to the rOCCI client.
|
8
8
|
#
|
9
9
|
# @example
|
10
|
-
# get_logger { :out => STDERR, :level => Occi::Log::WARN, :logger => nil }
|
10
|
+
# get_logger { :out => STDERR, :level => Occi::Api::Log::WARN, :logger => nil }
|
11
11
|
#
|
12
12
|
# @param log_options [Hash] logger options
|
13
|
-
# @return [Occi::Log] instance of the logger
|
13
|
+
# @return [Occi::Api::Log] instance of the logger
|
14
14
|
def get_logger(log_options)
|
15
|
-
unless log_options[:logger].kind_of?(Occi::Log)
|
16
|
-
logger = Occi::Log.new(log_options[:out])
|
15
|
+
unless log_options[:logger].kind_of?(Occi::Api::Log)
|
16
|
+
logger = Occi::Api::Log.new(log_options[:out])
|
17
17
|
logger.level = log_options[:level]
|
18
18
|
else
|
19
19
|
logger = log_options[:logger]
|
@@ -15,7 +15,7 @@ module Occi::Api::Client
|
|
15
15
|
defaults = Hashie::Mash.new({
|
16
16
|
:endpoint => "http://localhost:3000/",
|
17
17
|
:auth => {:type => "none"},
|
18
|
-
:log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
|
18
|
+
:log => {:out => STDERR, :level => Occi::Api::Log::WARN, :logger => nil},
|
19
19
|
:auto_connect => true,
|
20
20
|
:media_type => nil
|
21
21
|
})
|
@@ -25,7 +25,7 @@ module Occi::Api::Client
|
|
25
25
|
|
26
26
|
@options = defaults.merge(options)
|
27
27
|
|
28
|
-
# set Occi::Log
|
28
|
+
# set Occi::Api::Log
|
29
29
|
@logger = get_logger(@options[:log])
|
30
30
|
|
31
31
|
# check the validity and canonize the endpoint URI
|
@@ -28,7 +28,7 @@ module Occi::Api::Client
|
|
28
28
|
# :endpoint => "http://localhost:3000/",
|
29
29
|
# :timeout => 15
|
30
30
|
# :auth => {:type => "none"},
|
31
|
-
# :log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
|
31
|
+
# :log => {:out => STDERR, :level => Occi::Api::Log::WARN, :logger => nil},
|
32
32
|
# :auto_connect => true,
|
33
33
|
# :media_type => nil
|
34
34
|
# }
|
@@ -110,7 +110,7 @@ module Occi::Api::Client
|
|
110
110
|
def create(entity)
|
111
111
|
raise "#{entity.class.name.inspect} not an entity!" unless entity.kind_of? Occi::Core::Entity
|
112
112
|
|
113
|
-
Occi::Log.debug "Entity kind: #{entity.kind.type_identifier.inspect}"
|
113
|
+
Occi::Api::Log.debug "Entity kind: #{entity.kind.type_identifier.inspect}"
|
114
114
|
raise "No kind found for #{entity.inspect}" unless entity.kind
|
115
115
|
|
116
116
|
# get location for this kind of entity
|
@@ -118,7 +118,7 @@ module Occi::Api::Client
|
|
118
118
|
collection = Occi::Collection.new
|
119
119
|
|
120
120
|
# is this entity a Resource or a Link?
|
121
|
-
Occi::Log.debug "Entity class: #{entity.class.name.inspect}"
|
121
|
+
Occi::Api::Log.debug "Entity class: #{entity.class.name.inspect}"
|
122
122
|
collection.resources << entity if entity.kind_of? Occi::Core::Resource
|
123
123
|
collection.links << entity if entity.kind_of? Occi::Core::Link
|
124
124
|
|
@@ -178,7 +178,7 @@ module Occi::Api::Client
|
|
178
178
|
raise 'Resource not provided!' if resource_type_identifier.blank?
|
179
179
|
path = path_for_kind_type_identifier(resource_type_identifier)
|
180
180
|
|
181
|
-
Occi::Log.debug("Deleting #{path.inspect} for #{resource_type_identifier.inspect}")
|
181
|
+
Occi::Api::Log.debug("Deleting #{path.inspect} for #{resource_type_identifier.inspect}")
|
182
182
|
del path
|
183
183
|
end
|
184
184
|
|
@@ -27,7 +27,7 @@ module Occi::Api::Client
|
|
27
27
|
|
28
28
|
def set_keystone_base_url
|
29
29
|
response = @env_ref.class.head "#{@env_ref.endpoint.to_s}/-/"
|
30
|
-
Occi::Log.debug response.inspect
|
30
|
+
Occi::Api::Log.debug response.inspect
|
31
31
|
|
32
32
|
return if response.success?
|
33
33
|
raise ::Occi::Api::Client::Errors::AuthnError,
|
@@ -61,7 +61,7 @@ module Occi::Api::Client
|
|
61
61
|
:body => get_keystone_req(tenant),
|
62
62
|
:headers => headers
|
63
63
|
)
|
64
|
-
Occi::Log.debug response.inspect
|
64
|
+
Occi::Api::Log.debug response.inspect
|
65
65
|
|
66
66
|
if response.success?
|
67
67
|
@env_ref.class.headers['X-Auth-Token'] = response['access']['token']['id']
|
@@ -101,7 +101,7 @@ module Occi::Api::Client
|
|
101
101
|
"#{@keystone_url}/v2.0/tenants",
|
102
102
|
:headers => headers
|
103
103
|
)
|
104
|
-
Occi::Log.debug response.inspect
|
104
|
+
Occi::Api::Log.debug response.inspect
|
105
105
|
|
106
106
|
# TODO: impl match with regexp in case of multiple tenants?
|
107
107
|
raise ::Occi::Api::Client::Errors::AuthnError,
|
@@ -6,7 +6,7 @@ module Occi::Api::Client
|
|
6
6
|
# @see Occi::Api::Client::ClientBase
|
7
7
|
def get_logger(log_options)
|
8
8
|
logger = super(log_options)
|
9
|
-
self.class.debug_output $stderr if logger.level == Occi::Log::DEBUG
|
9
|
+
self.class.debug_output $stderr if logger.level == Occi::Api::Log::DEBUG
|
10
10
|
|
11
11
|
logger
|
12
12
|
end
|
@@ -40,7 +40,7 @@ module Occi::Api::Client
|
|
40
40
|
begin
|
41
41
|
@authn_plugin.authenticate
|
42
42
|
rescue ::Occi::Api::Client::Errors::AuthnError => e
|
43
|
-
Occi::Log.debug e.message
|
43
|
+
Occi::Api::Log.debug e.message
|
44
44
|
|
45
45
|
if @authn_plugin.fallbacks.any?
|
46
46
|
# TODO: multiple fallbacks
|
@@ -64,7 +64,7 @@ module Occi::Api::Client
|
|
64
64
|
else
|
65
65
|
media_types = self.class.head(@endpoint.to_s).headers['accept']
|
66
66
|
|
67
|
-
Occi::Log.debug("Available media types: #{media_types.inspect}")
|
67
|
+
Occi::Api::Log.debug("Available media types: #{media_types.inspect}")
|
68
68
|
media_type = case media_types
|
69
69
|
when /application\/occi\+json/
|
70
70
|
'application/occi+json'
|
@@ -104,24 +104,24 @@ module Occi::Api::Client
|
|
104
104
|
private
|
105
105
|
|
106
106
|
def get_process_response(path, response)
|
107
|
-
Occi::Log.debug "Response from location: #{path.inspect}"
|
107
|
+
Occi::Api::Log.debug "Response from location: #{path.inspect}"
|
108
108
|
kind = @model.get_by_location(path) if @model
|
109
109
|
|
110
|
-
Occi::Log.debug "Response should contain kind: #{kind.inspect}"
|
110
|
+
Occi::Api::Log.debug "Response should contain kind: #{kind.inspect}"
|
111
111
|
entity_type = nil
|
112
112
|
if kind && kind.related_to?(Occi::Core::Link)
|
113
113
|
entity_type = Occi::Core::Link
|
114
114
|
end
|
115
115
|
entity_type = Occi::Core::Resource unless entity_type
|
116
116
|
|
117
|
-
Occi::Log.debug "Parser call: #{response.content_type.inspect} #{path.include?('/-/')} " \
|
117
|
+
Occi::Api::Log.debug "Parser call: #{response.content_type.inspect} #{path.include?('/-/')} " \
|
118
118
|
"#{entity_type} #{response.headers.inspect}"
|
119
119
|
collection = Occi::Parser.parse(
|
120
120
|
response.content_type, response.body,
|
121
121
|
path.include?('/-/'), entity_type, response.headers
|
122
122
|
)
|
123
123
|
|
124
|
-
Occi::Log.debug "Parsed collection: empty? #{collection.empty?}"
|
124
|
+
Occi::Api::Log.debug "Parsed collection: empty? #{collection.empty?}"
|
125
125
|
collection
|
126
126
|
end
|
127
127
|
|
data/lib/occi/api/log.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
module Occi::Api
|
4
|
+
class Log < ::Occi::Log
|
5
|
+
|
6
|
+
SUBSCRIPTION_HANDLE = "rOCCI-api.log"
|
7
|
+
|
8
|
+
attr_reader :core_log
|
9
|
+
|
10
|
+
def initialize(log_dev, log_prefix = '[rOCCI-api]')
|
11
|
+
@core_log = ::Occi::Log.new(log_dev)
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
def close
|
16
|
+
super
|
17
|
+
@core_log.close
|
18
|
+
end
|
19
|
+
|
20
|
+
# @param severity [::Logger::Severity] severity
|
21
|
+
def level=(severity)
|
22
|
+
@core_log.level = severity
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/lib/occi/api/version.rb
CHANGED
data/occi-api.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = `git ls-files -- {test,spec}/*`.split("\n")
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.add_dependency 'occi-core', '~> 4.2.
|
21
|
+
gem.add_dependency 'occi-core', '~> 4.2.9'
|
22
22
|
gem.add_dependency 'httparty'
|
23
23
|
gem.add_dependency 'json'
|
24
24
|
|
@@ -14,7 +14,7 @@ module Occi
|
|
14
14
|
:endpoint => 'https://localhost:3300',
|
15
15
|
:auth => { :type => "none" },
|
16
16
|
:log => { :out => "/dev/null",
|
17
|
-
:level => Occi::Log::DEBUG },
|
17
|
+
:level => Occi::Api::Log::DEBUG },
|
18
18
|
:auto_connect => true,
|
19
19
|
:media_type => "text/plain,text/occi"
|
20
20
|
})
|
@@ -293,7 +293,7 @@ module Occi
|
|
293
293
|
# :endpoint => 'https://localhost:3300',
|
294
294
|
# :auth => { :type => "none" },
|
295
295
|
# :log => { :out => "/dev/null",
|
296
|
-
# :level => Occi::Log::DEBUG },
|
296
|
+
# :level => Occi::Api::Log::DEBUG },
|
297
297
|
# :auto_connect => true,
|
298
298
|
# :media_type => "application/occi+json"
|
299
299
|
#})
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: occi-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.0.beta.
|
4
|
+
version: 4.2.0.beta.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Feldhaus
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-02-
|
13
|
+
date: 2014-02-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: occi-core
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 4.2.
|
21
|
+
version: 4.2.9
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 4.2.
|
28
|
+
version: 4.2.9
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: httparty
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- lib/occi/api/dsl/main_methods.rb
|
113
113
|
- lib/occi/api/dsl/mixin_methods.rb
|
114
114
|
- lib/occi/api/dsl/type_methods.rb
|
115
|
+
- lib/occi/api/log.rb
|
115
116
|
- lib/occi/api/version.rb
|
116
117
|
- occi-api.gemspec
|
117
118
|
- spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/describes_compute_resources.yml
|