waz-storage 1.0.5 → 1.0.6
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/lib/waz/storage/base.rb +6 -4
- data/lib/waz/storage/core_service.rb +12 -4
- data/lib/waz/storage/version.rb +1 -1
- data/rakefile +5 -4
- metadata +4 -4
data/lib/waz/storage/base.rb
CHANGED
@@ -15,9 +15,11 @@ module WAZ
|
|
15
15
|
#
|
16
16
|
# All other parameters are optional.
|
17
17
|
def establish_connection!(options = {})
|
18
|
-
raise InvalidOption, :account_name unless options.keys.include? :account_name
|
19
|
-
raise InvalidOption, :access_key unless options.keys.include? :access_key
|
20
|
-
|
18
|
+
raise InvalidOption, :account_name unless options.keys.include? :account_name
|
19
|
+
raise InvalidOption, :access_key if !options.keys.include? :use_sas_auth_only unless options.keys.include? :access_key
|
20
|
+
raise InvalidOption, :use_sas_auth_only if !options.keys.include? :access_key unless options.keys.include? :use_sas_auth_only
|
21
|
+
raise InvalidOption, :sharedaccesssignature if !options.keys.include? :access_key unless options.keys.include? :sharedaccesssignature and options.keys.include? :use_sas_auth_only
|
22
|
+
options[:use_ssl] = false unless options.keys.include? :use_ssl
|
21
23
|
(@connections ||= []) << options
|
22
24
|
end
|
23
25
|
|
@@ -65,4 +67,4 @@ module WAZ
|
|
65
67
|
end
|
66
68
|
end
|
67
69
|
end
|
68
|
-
end
|
70
|
+
end
|
@@ -3,10 +3,14 @@ module WAZ
|
|
3
3
|
# This module is imported by the specific services that use Shared Key authentication profile. On the current implementation
|
4
4
|
# this module is imported from WAZ::Queues::Service and WAZ::Blobs::Service.
|
5
5
|
module SharedKeyCoreService
|
6
|
-
attr_accessor :account_name, :access_key, :use_ssl, :base_url, :type_of_service, :use_devenv
|
6
|
+
attr_accessor :account_name, :access_key, :use_ssl, :base_url, :type_of_service, :use_devenv, :use_sas_auth_only, :sharedaccesssignature
|
7
7
|
|
8
8
|
# Creates an instance of the implementor service (internally used by the API).
|
9
9
|
def initialize(options = {})
|
10
|
+
# Flag to define the use of shared access signature only
|
11
|
+
self.use_sas_auth_only = options[:use_sas_auth_only] or false
|
12
|
+
self.sharedaccesssignature = options[:sharedaccesssignature]
|
13
|
+
|
10
14
|
self.account_name = options[:account_name]
|
11
15
|
self.access_key = options[:access_key]
|
12
16
|
self.type_of_service = options[:type_of_service]
|
@@ -25,7 +29,7 @@ module WAZ
|
|
25
29
|
http_headers.merge!("x-ms-Date" => Time.new.httpdate)
|
26
30
|
http_headers.merge!("Content-Length" => (payload or "").size)
|
27
31
|
request = {:headers => http_headers, :method => verb.to_s.downcase.to_sym, :url => url, :payload => payload}
|
28
|
-
request[:headers].merge!("Authorization" => "SharedKey #{account_name}:#{generate_signature(request)}")
|
32
|
+
request[:headers].merge!("Authorization" => "SharedKey #{account_name}:#{generate_signature(request)}") unless self.use_sas_auth_only
|
29
33
|
return RestClient::Request.new(request)
|
30
34
|
end
|
31
35
|
|
@@ -36,7 +40,11 @@ module WAZ
|
|
36
40
|
query_params = options.keys.sort{ |a, b| a.to_s <=> b.to_s}.map{ |k| "#{k.to_s.gsub(/_/, '')}=#{CGI.escape(options[k].to_s)}"}.join("&") unless options.nil? or options.empty?
|
37
41
|
uri = "#{protocol}://#{base_url}/#{path.start_with?(account_name) ? "" : account_name }#{((path or "").start_with?("/") or path.start_with?(account_name)) ? "" : "/"}#{(path or "")}" if !self.use_devenv.nil? and self.use_devenv
|
38
42
|
uri ||= "#{protocol}://#{account_name}.#{base_url}#{(path or "").start_with?("/") ? "" : "/"}#{(path or "")}"
|
39
|
-
|
43
|
+
if self.use_sas_auth_only
|
44
|
+
uri << "?#{self.sharedaccesssignature.gsub(/\?/,'')}"
|
45
|
+
else
|
46
|
+
uri << "?#{query_params}" if query_params
|
47
|
+
end
|
40
48
|
return uri
|
41
49
|
end
|
42
50
|
|
@@ -111,4 +119,4 @@ module WAZ
|
|
111
119
|
end
|
112
120
|
end
|
113
121
|
end
|
114
|
-
end
|
122
|
+
end
|
data/lib/waz/storage/version.rb
CHANGED
data/rakefile
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rubygems'
|
3
|
-
require '
|
3
|
+
require 'rspec/core/rake_task'
|
4
4
|
require 'rake/gempackagetask'
|
5
5
|
require 'rake/rdoctask'
|
6
6
|
require 'lib/waz-storage'
|
7
7
|
|
8
8
|
task :default => [:specs]
|
9
9
|
|
10
|
-
|
11
|
-
t.
|
10
|
+
RSpec::Core::RakeTask.new do |t|
|
11
|
+
t.name = :specs
|
12
|
+
t.pattern = "tests/**/*.rb"
|
12
13
|
t.rcov = true
|
13
14
|
t.rcov_opts = ['--text-report', '--exclude', "exclude.*/.gem,test,Library,#{ENV['GEM_HOME']}", '--sort', 'coverage' ]
|
14
|
-
t.
|
15
|
+
t.rspec_opts = ['-cfn']
|
15
16
|
end
|
16
17
|
|
17
18
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: waz-storage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 6
|
10
|
+
version: 1.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Johnny G. Halife
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-18 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|