fog-google 0.2.0 → 0.3.0
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/.gitignore +1 -0
- data/README.md +7 -3
- data/examples/pubsub/subscriptions.rb +54 -0
- data/examples/pubsub/topics.rb +33 -0
- data/fog-google.gemspec +2 -2
- data/lib/fog/compute/google.rb +4 -884
- data/lib/fog/compute/google/mock.rb +871 -0
- data/lib/fog/compute/google/real.rb +22 -0
- data/lib/fog/dns/google.rb +3 -42
- data/lib/fog/dns/google/mock.rb +33 -0
- data/lib/fog/dns/google/real.rb +19 -0
- data/lib/fog/google.rb +14 -208
- data/lib/fog/google/mock.rb +14 -0
- data/lib/fog/google/models/pubsub/received_message.rb +40 -0
- data/lib/fog/google/models/pubsub/subscription.rb +86 -0
- data/lib/fog/google/models/pubsub/subscriptions.rb +32 -0
- data/lib/fog/google/models/pubsub/topic.rb +72 -0
- data/lib/fog/google/models/pubsub/topics.rb +31 -0
- data/lib/fog/google/monitoring.rb +3 -45
- data/lib/fog/google/monitoring/mock.rb +35 -0
- data/lib/fog/google/monitoring/real.rb +20 -0
- data/lib/fog/google/pubsub.rb +59 -0
- data/lib/fog/google/pubsub/mock.rb +34 -0
- data/lib/fog/google/pubsub/real.rb +20 -0
- data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +46 -0
- data/lib/fog/google/requests/pubsub/create_subscription.rb +57 -0
- data/lib/fog/google/requests/pubsub/create_topic.rb +36 -0
- data/lib/fog/google/requests/pubsub/delete_subscription.rb +28 -0
- data/lib/fog/google/requests/pubsub/delete_topic.rb +29 -0
- data/lib/fog/google/requests/pubsub/get_subscription.rb +44 -0
- data/lib/fog/google/requests/pubsub/get_topic.rb +41 -0
- data/lib/fog/google/requests/pubsub/list_subscriptions.rb +39 -0
- data/lib/fog/google/requests/pubsub/list_topics.rb +33 -0
- data/lib/fog/google/requests/pubsub/publish_topic.rb +61 -0
- data/lib/fog/google/requests/pubsub/pull_subscription.rb +77 -0
- data/lib/fog/google/shared.rb +191 -0
- data/lib/fog/google/sql.rb +3 -50
- data/lib/fog/google/sql/mock.rb +40 -0
- data/lib/fog/google/sql/real.rb +20 -0
- data/lib/fog/google/version.rb +1 -1
- data/lib/fog/storage/google_json.rb +4 -99
- data/lib/fog/storage/google_json/mock.rb +18 -0
- data/lib/fog/storage/google_json/real.rb +64 -0
- data/lib/fog/storage/google_json/utils.rb +32 -0
- data/lib/fog/storage/google_xml.rb +4 -260
- data/lib/fog/storage/google_xml/mock.rb +102 -0
- data/lib/fog/storage/google_xml/models/file.rb +14 -4
- data/lib/fog/storage/google_xml/real.rb +106 -0
- data/lib/fog/storage/google_xml/utils.rb +66 -0
- data/tests/models/pubsub/received_message_tests.rb +18 -0
- data/tests/models/pubsub/subscription_tests.rb +26 -0
- data/tests/models/pubsub/subscriptions_tests.rb +33 -0
- data/tests/models/pubsub/topic_tests.rb +18 -0
- data/tests/models/pubsub/topics_tests.rb +27 -0
- metadata +50 -14
@@ -0,0 +1,102 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class GoogleXML
|
4
|
+
class Mock
|
5
|
+
include Utils
|
6
|
+
|
7
|
+
def self.acls(type)
|
8
|
+
case type
|
9
|
+
when "private"
|
10
|
+
{
|
11
|
+
"AccessControlList" => [
|
12
|
+
{
|
13
|
+
"Permission" => "FULL_CONTROL",
|
14
|
+
"Scope" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0", "type" => "UserById" }
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"Owner" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0" }
|
18
|
+
}
|
19
|
+
when "public-read"
|
20
|
+
{
|
21
|
+
"AccessControlList" => [
|
22
|
+
{
|
23
|
+
"Permission" => "FULL_CONTROL",
|
24
|
+
"Scope" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0", "type" => "UserById" }
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"Permission" => "READ",
|
28
|
+
"Scope" => { "type" => "AllUsers" }
|
29
|
+
}
|
30
|
+
],
|
31
|
+
"Owner" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0" }
|
32
|
+
}
|
33
|
+
when "public-read-write"
|
34
|
+
{
|
35
|
+
"AccessControlList" => [
|
36
|
+
{
|
37
|
+
"Permission" => "FULL_CONTROL",
|
38
|
+
"Scope" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0", "type" => "UserById" }
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"Permission" => "READ",
|
42
|
+
"Scope" => { "type" => "AllUsers" }
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"Permission" => "WRITE",
|
46
|
+
"Scope" => { "type" => "AllUsers" }
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"Owner" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0" }
|
50
|
+
}
|
51
|
+
when "authenticated-read"
|
52
|
+
{
|
53
|
+
"AccessControlList" => [
|
54
|
+
{
|
55
|
+
"Permission" => "FULL_CONTROL",
|
56
|
+
"Scope" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0", "type" => "UserById" }
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"Permission" => "READ",
|
60
|
+
"Scope" => { "type" => "AllAuthenticatedUsers" }
|
61
|
+
}
|
62
|
+
],
|
63
|
+
"Owner" => { "ID" => "2744ccd10c7533bd736ad890f9dd5cab2adb27b07d500b9493f29cdc420cb2e0" }
|
64
|
+
}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.data
|
69
|
+
@data ||= Hash.new do |hash, key|
|
70
|
+
hash[key] = {
|
71
|
+
:acls => {
|
72
|
+
:bucket => {},
|
73
|
+
:object => {}
|
74
|
+
},
|
75
|
+
:buckets => {}
|
76
|
+
}
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.reset
|
81
|
+
@data = nil
|
82
|
+
end
|
83
|
+
|
84
|
+
def initialize(options = {})
|
85
|
+
@google_storage_access_key_id = options[:google_storage_access_key_id]
|
86
|
+
end
|
87
|
+
|
88
|
+
def data
|
89
|
+
self.class.data[@google_storage_access_key_id]
|
90
|
+
end
|
91
|
+
|
92
|
+
def reset_data
|
93
|
+
self.class.data.delete(@google_storage_access_key_id)
|
94
|
+
end
|
95
|
+
|
96
|
+
def signature(_params)
|
97
|
+
"foo"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -17,10 +17,20 @@ module Fog
|
|
17
17
|
attribute :owner, :aliases => "Owner"
|
18
18
|
attribute :storage_class, :aliases => ["x-goog-storage-class", "StorageClass"]
|
19
19
|
|
20
|
+
# https://cloud.google.com/storage/docs/access-control#predefined-acl
|
21
|
+
VALID_ACLS = [
|
22
|
+
"authenticated-read",
|
23
|
+
"bucket-owner-full-control",
|
24
|
+
"bucket-owner-read",
|
25
|
+
"private",
|
26
|
+
"project-private",
|
27
|
+
"public-read",
|
28
|
+
"public-read-write",
|
29
|
+
].freeze
|
30
|
+
|
20
31
|
def acl=(new_acl)
|
21
|
-
|
22
|
-
|
23
|
-
raise ArgumentError.new("acl must be one of [#{valid_acls.join(', ')}]")
|
32
|
+
unless VALID_ACLS.include?(new_acl)
|
33
|
+
raise ArgumentError.new("acl must be one of [#{VALID_ACLS.join(', ')}]")
|
24
34
|
end
|
25
35
|
@acl = new_acl
|
26
36
|
end
|
@@ -75,7 +85,7 @@ module Fog
|
|
75
85
|
if new_public
|
76
86
|
@acl = "public-read"
|
77
87
|
else
|
78
|
-
@acl = "private"
|
88
|
+
@acl = "project-private"
|
79
89
|
end
|
80
90
|
new_public
|
81
91
|
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class GoogleXML
|
4
|
+
class Real
|
5
|
+
include Utils
|
6
|
+
|
7
|
+
# Initialize connection to Google Storage
|
8
|
+
#
|
9
|
+
# ==== Notes
|
10
|
+
# options parameter must include values for :google_storage_access_key_id and
|
11
|
+
# :google_storage_secret_access_key in order to create a connection
|
12
|
+
#
|
13
|
+
# ==== Examples
|
14
|
+
# google_storage = Storage.new(
|
15
|
+
# :google_storage_access_key_id => your_google_storage_access_key_id,
|
16
|
+
# :google_storage_secret_access_key => your_google_storage_secret_access_key
|
17
|
+
# )
|
18
|
+
#
|
19
|
+
# ==== Parameters
|
20
|
+
# * options<~Hash> - config arguments for connection. Defaults to {}.
|
21
|
+
#
|
22
|
+
# ==== Returns
|
23
|
+
# * Storage object with connection to google.
|
24
|
+
def initialize(options = {})
|
25
|
+
@google_storage_access_key_id = options[:google_storage_access_key_id]
|
26
|
+
@google_storage_secret_access_key = options[:google_storage_secret_access_key]
|
27
|
+
@connection_options = options[:connection_options] || {}
|
28
|
+
@hmac = Fog::HMAC.new("sha1", @google_storage_secret_access_key)
|
29
|
+
@host = options[:host] || "storage.googleapis.com"
|
30
|
+
@persistent = options.fetch(:persistent, true)
|
31
|
+
@port = options[:port] || 443
|
32
|
+
@scheme = options[:scheme] || "https"
|
33
|
+
@path_style = options[:path_style] || false
|
34
|
+
end
|
35
|
+
|
36
|
+
def reload
|
37
|
+
@connection.reset if @connection
|
38
|
+
end
|
39
|
+
|
40
|
+
def signature(params)
|
41
|
+
string_to_sign = "#{params[:method]}\n"
|
42
|
+
string_to_sign << "#{params[:headers]['Content-MD5']}\n"
|
43
|
+
string_to_sign << "#{params[:headers]['Content-Type']}\n"
|
44
|
+
string_to_sign << params[:headers]["Date"].to_s
|
45
|
+
|
46
|
+
google_headers = {}
|
47
|
+
canonical_google_headers = ""
|
48
|
+
params[:headers].each do |key, value|
|
49
|
+
google_headers[key] = value if key[0..6] == "x-goog-"
|
50
|
+
end
|
51
|
+
|
52
|
+
google_headers = google_headers.sort { |x, y| x[0] <=> y[0] }
|
53
|
+
google_headers.each do |key, value|
|
54
|
+
canonical_google_headers << "#{key}:#{value}\n"
|
55
|
+
end
|
56
|
+
string_to_sign << canonical_google_headers.to_s
|
57
|
+
|
58
|
+
canonical_resource = "/"
|
59
|
+
if subdomain = params.delete(:subdomain)
|
60
|
+
canonical_resource << "#{CGI.escape(subdomain).downcase}/"
|
61
|
+
end
|
62
|
+
canonical_resource << params[:path].to_s
|
63
|
+
canonical_resource << "?"
|
64
|
+
params.fetch(:query, {}).keys.each do |key|
|
65
|
+
if %w(acl cors location logging requestPayment torrent versions versioning).include?(key)
|
66
|
+
canonical_resource << "#{key}&"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
canonical_resource.chop!
|
70
|
+
string_to_sign << canonical_resource.to_s
|
71
|
+
|
72
|
+
signed_string = @hmac.sign(string_to_sign)
|
73
|
+
Base64.encode64(signed_string).chomp!
|
74
|
+
end
|
75
|
+
|
76
|
+
def connection(scheme, host, port)
|
77
|
+
uri = "#{scheme}://#{host}:#{port}"
|
78
|
+
if @persistent
|
79
|
+
unless uri == @connection_uri
|
80
|
+
@connection_uri = uri
|
81
|
+
reload
|
82
|
+
@connection = nil
|
83
|
+
end
|
84
|
+
else
|
85
|
+
@connection = nil
|
86
|
+
end
|
87
|
+
@connection ||= Fog::XML::Connection.new(uri, @persistent, @connection_options)
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def request(params, &block)
|
93
|
+
params = request_params(params)
|
94
|
+
scheme = params.delete(:scheme)
|
95
|
+
host = params.delete(:host)
|
96
|
+
port = params.delete(:port)
|
97
|
+
|
98
|
+
params[:headers]["Date"] = Fog::Time.now.to_date_header
|
99
|
+
params[:headers]["Authorization"] = "GOOG1 #{@google_storage_access_key_id}:#{signature(params)}"
|
100
|
+
|
101
|
+
connection(scheme, host, port).request(params, &block)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class GoogleXML
|
4
|
+
module Utils
|
5
|
+
def http_url(params, expires)
|
6
|
+
"http://" << host_path_query(params, expires)
|
7
|
+
end
|
8
|
+
|
9
|
+
def https_url(params, expires)
|
10
|
+
"https://" << host_path_query(params, expires)
|
11
|
+
end
|
12
|
+
|
13
|
+
def url(params, expires)
|
14
|
+
Fog::Logger.deprecation("Fog::Storage::Google => #url is deprecated, use #https_url instead [light_black](#{caller.first})[/]")
|
15
|
+
https_url(params, expires)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def host_path_query(params, expires)
|
21
|
+
params[:headers]["Date"] = expires.to_i
|
22
|
+
params[:path] = CGI.escape(params[:path]).gsub("%2F", "/")
|
23
|
+
query = [params[:query]].compact
|
24
|
+
query << "GoogleAccessId=#{@google_storage_access_key_id}"
|
25
|
+
query << "Signature=#{CGI.escape(signature(params))}"
|
26
|
+
query << "Expires=#{params[:headers]['Date']}"
|
27
|
+
"#{params[:host]}/#{params[:path]}?#{query.join('&')}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def request_params(params)
|
31
|
+
subdomain = params[:host].split(".#{@host}").first
|
32
|
+
if @path_style || subdomain !~ /^(?!goog)(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
|
33
|
+
if subdomain =~ /_/
|
34
|
+
# https://github.com/fog/fog/pull/1258#issuecomment-10248620.
|
35
|
+
Fog::Logger.warning("fog: the specified google storage bucket name (#{subdomain}) is not DNS compliant (only characters a through z, digits 0 through 9, and the hyphen).")
|
36
|
+
else
|
37
|
+
# - Bucket names must contain only lowercase letters, numbers, dashes (-), underscores (_), and dots (.). Names containing dots require verification.
|
38
|
+
# - Bucket names must start and end with a number or letter.
|
39
|
+
# - Bucket names must contain 3 to 63 characters. Names containing dots can contain up to 222 characters, but each dot-separated component can be no longer than 63 characters.
|
40
|
+
# - Bucket names cannot be represented as an IP address in dotted-decimal notation (for example, 192.168.5.4).
|
41
|
+
# - Bucket names cannot begin with the "goog" prefix.
|
42
|
+
# - Also, for DNS compliance, you should not have a period adjacent to another period or dash. For example, ".." or "-." or ".-" are not acceptable.
|
43
|
+
Fog::Logger.warning("fog: the specified google storage bucket name (#{subdomain}) is not a valid dns name. See: https://developers.google.com/storage/docs/bucketnaming") unless @path_style
|
44
|
+
end
|
45
|
+
|
46
|
+
params[:host] = params[:host].split("#{subdomain}.")[-1]
|
47
|
+
params[:path] =
|
48
|
+
if params[:path]
|
49
|
+
"#{subdomain}/#{params[:path]}"
|
50
|
+
else
|
51
|
+
subdomain.to_s
|
52
|
+
end
|
53
|
+
|
54
|
+
subdomain = nil
|
55
|
+
end
|
56
|
+
|
57
|
+
params[:subdomain] = subdomain if subdomain && subdomain != @host
|
58
|
+
|
59
|
+
params[:scheme] ||= @scheme
|
60
|
+
params[:port] ||= @port
|
61
|
+
params
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Shindo.tests("Fog::Google[:pubsub] | received_message model", ["google"]) do
|
2
|
+
@connection = Fog::Google[:pubsub]
|
3
|
+
@topic = @connection.topics.create(:name => "projects/#{@connection.project}/topics/#{Fog::Mock.random_letters(16)}")
|
4
|
+
@subscription = @connection.subscriptions.create(
|
5
|
+
:name => "projects/#{@connection.project}/subscriptions/#{Fog::Mock.random_letters(16)}",
|
6
|
+
:topic => @topic.name
|
7
|
+
)
|
8
|
+
|
9
|
+
tests("success") do
|
10
|
+
tests('#acknowledge').returns(nil) do
|
11
|
+
@topic.publish(["foo"])
|
12
|
+
@subscription.pull[0].acknowledge
|
13
|
+
end
|
14
|
+
end
|
15
|
+
# teardown
|
16
|
+
@topic.destroy
|
17
|
+
@subscription.destroy
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Shindo.tests("Fog::Google[:pubsub] | subscription model", ["google"]) do
|
2
|
+
@connection = Fog::Google[:pubsub]
|
3
|
+
@topic = @connection.topics.create(:name => "projects/#{@connection.project}/topics/#{Fog::Mock.random_letters(16)}")
|
4
|
+
@subscriptions = @connection.subscriptions
|
5
|
+
|
6
|
+
tests("success") do
|
7
|
+
tests('#create').succeeds do
|
8
|
+
@subscription = @subscriptions.create(
|
9
|
+
:name => "projects/#{@connection.project}/subscriptions/#{Fog::Mock.random_letters(16)}",
|
10
|
+
:topic => @topic.name
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
tests('#pull').returns("foo") do
|
15
|
+
@topic.publish(["foo"])
|
16
|
+
@message = @subscription.pull[0]
|
17
|
+
@message.message["data"]
|
18
|
+
end
|
19
|
+
|
20
|
+
tests('#destroy').succeeds do
|
21
|
+
@subscription.destroy
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
@topic.destroy
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Shindo.tests("Fog::Google[:pubsub] | subscriptions model", ["google"]) do
|
2
|
+
@connection = Fog::Google[:pubsub]
|
3
|
+
@topic = @connection.topics.create(:name => "projects/#{@connection.project}/topics/#{Fog::Mock.random_letters(16)}")
|
4
|
+
@subscriptions = @connection.subscriptions
|
5
|
+
@subscription = @subscriptions.create(
|
6
|
+
:name => "projects/#{@connection.project}/subscriptions/#{Fog::Mock.random_letters(16)}",
|
7
|
+
:topic => @topic.name
|
8
|
+
)
|
9
|
+
|
10
|
+
tests("success") do
|
11
|
+
tests('#all').succeeds do
|
12
|
+
@subscriptions.all
|
13
|
+
end
|
14
|
+
|
15
|
+
tests('#get').succeeds do
|
16
|
+
@subscriptions.get(@subscription.name)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
@subscription.destroy
|
21
|
+
|
22
|
+
tests("failure") do
|
23
|
+
tests('#all').returns([]) do
|
24
|
+
@subscriptions.all
|
25
|
+
end
|
26
|
+
|
27
|
+
tests('#get').returns(nil) do
|
28
|
+
@subscriptions.get(Fog::Mock.random_letters_and_numbers(16))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
@topic.destroy
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Shindo.tests("Fog::Google[:pubsub] | topic model", ["google"]) do
|
2
|
+
@connection = Fog::Google[:pubsub]
|
3
|
+
@topics = @connection.topics
|
4
|
+
|
5
|
+
tests("success") do
|
6
|
+
tests('#create').succeeds do
|
7
|
+
@topic = @topics.create(:name => "projects/#{@connection.project}/topics/#{Fog::Mock.random_letters(16)}")
|
8
|
+
end
|
9
|
+
|
10
|
+
tests('#publish').succeeds do
|
11
|
+
@topic.publish(["foo"])
|
12
|
+
end
|
13
|
+
|
14
|
+
tests('#destroy').succeeds do
|
15
|
+
@topic.destroy
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Shindo.tests("Fog::Google[:pubsub] | topics model", ["google"]) do
|
2
|
+
@connection = Fog::Google[:pubsub]
|
3
|
+
@topics = @connection.topics
|
4
|
+
@topic = @topics.create(:name => "projects/#{@connection.project}/topics/#{Fog::Mock.random_letters(16)}")
|
5
|
+
|
6
|
+
tests("success") do
|
7
|
+
tests('#all').succeeds do
|
8
|
+
@topics.all
|
9
|
+
end
|
10
|
+
|
11
|
+
tests('#get').succeeds do
|
12
|
+
@topics.get(@topic.name)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@topic.destroy
|
17
|
+
|
18
|
+
tests("failure") do
|
19
|
+
tests('#all').returns([]) do
|
20
|
+
@topics.all
|
21
|
+
end
|
22
|
+
|
23
|
+
tests('#get').returns(nil) do
|
24
|
+
@topics.get(Fog::Mock.random_letters_and_numbers(16))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nat Welch
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-04-23 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: fog-core
|
@@ -59,22 +59,16 @@ dependencies:
|
|
59
59
|
name: google-api-client
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- - "
|
62
|
+
- - "~>"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 0.6.2
|
64
|
+
version: 0.8.6
|
68
65
|
type: :development
|
69
66
|
prerelease: false
|
70
67
|
version_requirements: !ruby/object:Gem::Requirement
|
71
68
|
requirements:
|
72
|
-
- - "
|
69
|
+
- - "~>"
|
73
70
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
- - ">="
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 0.6.2
|
71
|
+
version: 0.8.6
|
78
72
|
- !ruby/object:Gem::Dependency
|
79
73
|
name: rake
|
80
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +235,8 @@ files:
|
|
241
235
|
- examples/monitoring/timeseries_descriptors.rb
|
242
236
|
- examples/network.rb
|
243
237
|
- examples/precreated_client.rb
|
238
|
+
- examples/pubsub/subscriptions.rb
|
239
|
+
- examples/pubsub/topics.rb
|
244
240
|
- examples/sql/flags.rb
|
245
241
|
- examples/sql/instances.rb
|
246
242
|
- examples/sql/operations.rb
|
@@ -251,6 +247,7 @@ files:
|
|
251
247
|
- fog-google.gemspec
|
252
248
|
- lib/fog/bin/google.rb
|
253
249
|
- lib/fog/compute/google.rb
|
250
|
+
- lib/fog/compute/google/mock.rb
|
254
251
|
- lib/fog/compute/google/models/address.rb
|
255
252
|
- lib/fog/compute/google/models/addresses.rb
|
256
253
|
- lib/fog/compute/google/models/backend_service.rb
|
@@ -301,6 +298,7 @@ files:
|
|
301
298
|
- lib/fog/compute/google/models/url_maps.rb
|
302
299
|
- lib/fog/compute/google/models/zone.rb
|
303
300
|
- lib/fog/compute/google/models/zones.rb
|
301
|
+
- lib/fog/compute/google/real.rb
|
304
302
|
- lib/fog/compute/google/requests/add_backend_service_backends.rb
|
305
303
|
- lib/fog/compute/google/requests/add_instance_group_instance.rb
|
306
304
|
- lib/fog/compute/google/requests/add_region_view_resources.rb
|
@@ -444,6 +442,7 @@ files:
|
|
444
442
|
- lib/fog/compute/google/requests/update_url_map.rb
|
445
443
|
- lib/fog/compute/google/requests/validate_url_map.rb
|
446
444
|
- lib/fog/dns/google.rb
|
445
|
+
- lib/fog/dns/google/mock.rb
|
447
446
|
- lib/fog/dns/google/models/change.rb
|
448
447
|
- lib/fog/dns/google/models/changes.rb
|
449
448
|
- lib/fog/dns/google/models/project.rb
|
@@ -452,6 +451,7 @@ files:
|
|
452
451
|
- lib/fog/dns/google/models/records.rb
|
453
452
|
- lib/fog/dns/google/models/zone.rb
|
454
453
|
- lib/fog/dns/google/models/zones.rb
|
454
|
+
- lib/fog/dns/google/real.rb
|
455
455
|
- lib/fog/dns/google/requests/create_change.rb
|
456
456
|
- lib/fog/dns/google/requests/create_managed_zone.rb
|
457
457
|
- lib/fog/dns/google/requests/delete_managed_zone.rb
|
@@ -462,12 +462,18 @@ files:
|
|
462
462
|
- lib/fog/dns/google/requests/list_managed_zones.rb
|
463
463
|
- lib/fog/dns/google/requests/list_resource_record_sets.rb
|
464
464
|
- lib/fog/google.rb
|
465
|
+
- lib/fog/google/mock.rb
|
465
466
|
- lib/fog/google/models/monitoring/metric_descriptor.rb
|
466
467
|
- lib/fog/google/models/monitoring/metric_descriptors.rb
|
467
468
|
- lib/fog/google/models/monitoring/timeseries.rb
|
468
469
|
- lib/fog/google/models/monitoring/timeseries_collection.rb
|
469
470
|
- lib/fog/google/models/monitoring/timeseries_descriptor.rb
|
470
471
|
- lib/fog/google/models/monitoring/timeseries_descriptors.rb
|
472
|
+
- lib/fog/google/models/pubsub/received_message.rb
|
473
|
+
- lib/fog/google/models/pubsub/subscription.rb
|
474
|
+
- lib/fog/google/models/pubsub/subscriptions.rb
|
475
|
+
- lib/fog/google/models/pubsub/topic.rb
|
476
|
+
- lib/fog/google/models/pubsub/topics.rb
|
471
477
|
- lib/fog/google/models/sql/backup_run.rb
|
472
478
|
- lib/fog/google/models/sql/backup_runs.rb
|
473
479
|
- lib/fog/google/models/sql/flag.rb
|
@@ -481,9 +487,25 @@ files:
|
|
481
487
|
- lib/fog/google/models/sql/tier.rb
|
482
488
|
- lib/fog/google/models/sql/tiers.rb
|
483
489
|
- lib/fog/google/monitoring.rb
|
490
|
+
- lib/fog/google/monitoring/mock.rb
|
491
|
+
- lib/fog/google/monitoring/real.rb
|
492
|
+
- lib/fog/google/pubsub.rb
|
493
|
+
- lib/fog/google/pubsub/mock.rb
|
494
|
+
- lib/fog/google/pubsub/real.rb
|
484
495
|
- lib/fog/google/requests/monitoring/list_metric_descriptors.rb
|
485
496
|
- lib/fog/google/requests/monitoring/list_timeseries.rb
|
486
497
|
- lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb
|
498
|
+
- lib/fog/google/requests/pubsub/acknowledge_subscription.rb
|
499
|
+
- lib/fog/google/requests/pubsub/create_subscription.rb
|
500
|
+
- lib/fog/google/requests/pubsub/create_topic.rb
|
501
|
+
- lib/fog/google/requests/pubsub/delete_subscription.rb
|
502
|
+
- lib/fog/google/requests/pubsub/delete_topic.rb
|
503
|
+
- lib/fog/google/requests/pubsub/get_subscription.rb
|
504
|
+
- lib/fog/google/requests/pubsub/get_topic.rb
|
505
|
+
- lib/fog/google/requests/pubsub/list_subscriptions.rb
|
506
|
+
- lib/fog/google/requests/pubsub/list_topics.rb
|
507
|
+
- lib/fog/google/requests/pubsub/publish_topic.rb
|
508
|
+
- lib/fog/google/requests/pubsub/pull_subscription.rb
|
487
509
|
- lib/fog/google/requests/sql/clone_instance.rb
|
488
510
|
- lib/fog/google/requests/sql/delete_instance.rb
|
489
511
|
- lib/fog/google/requests/sql/delete_ssl_cert.rb
|
@@ -506,7 +528,10 @@ files:
|
|
506
528
|
- lib/fog/google/requests/sql/restore_instance_backup.rb
|
507
529
|
- lib/fog/google/requests/sql/set_instance_root_password.rb
|
508
530
|
- lib/fog/google/requests/sql/update_instance.rb
|
531
|
+
- lib/fog/google/shared.rb
|
509
532
|
- lib/fog/google/sql.rb
|
533
|
+
- lib/fog/google/sql/mock.rb
|
534
|
+
- lib/fog/google/sql/real.rb
|
510
535
|
- lib/fog/google/version.rb
|
511
536
|
- lib/fog/parsers/storage/google.rb
|
512
537
|
- lib/fog/parsers/storage/google/access_control_list.rb
|
@@ -519,10 +544,12 @@ files:
|
|
519
544
|
- lib/fog/parsers/storage/google/get_service.rb
|
520
545
|
- lib/fog/storage/google.rb
|
521
546
|
- lib/fog/storage/google_json.rb
|
547
|
+
- lib/fog/storage/google_json/mock.rb
|
522
548
|
- lib/fog/storage/google_json/models/directories.rb
|
523
549
|
- lib/fog/storage/google_json/models/directory.rb
|
524
550
|
- lib/fog/storage/google_json/models/file.rb
|
525
551
|
- lib/fog/storage/google_json/models/files.rb
|
552
|
+
- lib/fog/storage/google_json/real.rb
|
526
553
|
- lib/fog/storage/google_json/requests/copy_object.rb
|
527
554
|
- lib/fog/storage/google_json/requests/delete_bucket.rb
|
528
555
|
- lib/fog/storage/google_json/requests/delete_object.rb
|
@@ -541,11 +568,14 @@ files:
|
|
541
568
|
- lib/fog/storage/google_json/requests/put_object.rb
|
542
569
|
- lib/fog/storage/google_json/requests/put_object_acl.rb
|
543
570
|
- lib/fog/storage/google_json/requests/put_object_url.rb
|
571
|
+
- lib/fog/storage/google_json/utils.rb
|
544
572
|
- lib/fog/storage/google_xml.rb
|
573
|
+
- lib/fog/storage/google_xml/mock.rb
|
545
574
|
- lib/fog/storage/google_xml/models/directories.rb
|
546
575
|
- lib/fog/storage/google_xml/models/directory.rb
|
547
576
|
- lib/fog/storage/google_xml/models/file.rb
|
548
577
|
- lib/fog/storage/google_xml/models/files.rb
|
578
|
+
- lib/fog/storage/google_xml/real.rb
|
549
579
|
- lib/fog/storage/google_xml/requests/copy_object.rb
|
550
580
|
- lib/fog/storage/google_xml/requests/delete_bucket.rb
|
551
581
|
- lib/fog/storage/google_xml/requests/delete_object.rb
|
@@ -564,6 +594,7 @@ files:
|
|
564
594
|
- lib/fog/storage/google_xml/requests/put_object.rb
|
565
595
|
- lib/fog/storage/google_xml/requests/put_object_acl.rb
|
566
596
|
- lib/fog/storage/google_xml/requests/put_object_url.rb
|
597
|
+
- lib/fog/storage/google_xml/utils.rb
|
567
598
|
- tasks/bundler.rake
|
568
599
|
- tasks/console.rake
|
569
600
|
- tasks/lint.rake
|
@@ -625,6 +656,11 @@ files:
|
|
625
656
|
- tests/models/monitoring/metric_descriptors_tests.rb
|
626
657
|
- tests/models/monitoring/timeseries_collection_tests.rb
|
627
658
|
- tests/models/monitoring/timeseries_descriptors_tests.rb
|
659
|
+
- tests/models/pubsub/received_message_tests.rb
|
660
|
+
- tests/models/pubsub/subscription_tests.rb
|
661
|
+
- tests/models/pubsub/subscriptions_tests.rb
|
662
|
+
- tests/models/pubsub/topic_tests.rb
|
663
|
+
- tests/models/pubsub/topics_tests.rb
|
628
664
|
- tests/models/sql/flags_tests.rb
|
629
665
|
- tests/models/sql/instance_tests.rb
|
630
666
|
- tests/models/sql/instances_tests.rb
|
@@ -674,7 +710,7 @@ require_paths:
|
|
674
710
|
- lib
|
675
711
|
required_ruby_version: !ruby/object:Gem::Requirement
|
676
712
|
requirements:
|
677
|
-
- - "
|
713
|
+
- - "~>"
|
678
714
|
- !ruby/object:Gem::Version
|
679
715
|
version: '2.0'
|
680
716
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -684,7 +720,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
684
720
|
version: '0'
|
685
721
|
requirements: []
|
686
722
|
rubyforge_project:
|
687
|
-
rubygems_version: 2.
|
723
|
+
rubygems_version: 2.4.8
|
688
724
|
signing_key:
|
689
725
|
specification_version: 4
|
690
726
|
summary: Module for the 'fog' gem to support Google.
|