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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +7 -3
  4. data/examples/pubsub/subscriptions.rb +54 -0
  5. data/examples/pubsub/topics.rb +33 -0
  6. data/fog-google.gemspec +2 -2
  7. data/lib/fog/compute/google.rb +4 -884
  8. data/lib/fog/compute/google/mock.rb +871 -0
  9. data/lib/fog/compute/google/real.rb +22 -0
  10. data/lib/fog/dns/google.rb +3 -42
  11. data/lib/fog/dns/google/mock.rb +33 -0
  12. data/lib/fog/dns/google/real.rb +19 -0
  13. data/lib/fog/google.rb +14 -208
  14. data/lib/fog/google/mock.rb +14 -0
  15. data/lib/fog/google/models/pubsub/received_message.rb +40 -0
  16. data/lib/fog/google/models/pubsub/subscription.rb +86 -0
  17. data/lib/fog/google/models/pubsub/subscriptions.rb +32 -0
  18. data/lib/fog/google/models/pubsub/topic.rb +72 -0
  19. data/lib/fog/google/models/pubsub/topics.rb +31 -0
  20. data/lib/fog/google/monitoring.rb +3 -45
  21. data/lib/fog/google/monitoring/mock.rb +35 -0
  22. data/lib/fog/google/monitoring/real.rb +20 -0
  23. data/lib/fog/google/pubsub.rb +59 -0
  24. data/lib/fog/google/pubsub/mock.rb +34 -0
  25. data/lib/fog/google/pubsub/real.rb +20 -0
  26. data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +46 -0
  27. data/lib/fog/google/requests/pubsub/create_subscription.rb +57 -0
  28. data/lib/fog/google/requests/pubsub/create_topic.rb +36 -0
  29. data/lib/fog/google/requests/pubsub/delete_subscription.rb +28 -0
  30. data/lib/fog/google/requests/pubsub/delete_topic.rb +29 -0
  31. data/lib/fog/google/requests/pubsub/get_subscription.rb +44 -0
  32. data/lib/fog/google/requests/pubsub/get_topic.rb +41 -0
  33. data/lib/fog/google/requests/pubsub/list_subscriptions.rb +39 -0
  34. data/lib/fog/google/requests/pubsub/list_topics.rb +33 -0
  35. data/lib/fog/google/requests/pubsub/publish_topic.rb +61 -0
  36. data/lib/fog/google/requests/pubsub/pull_subscription.rb +77 -0
  37. data/lib/fog/google/shared.rb +191 -0
  38. data/lib/fog/google/sql.rb +3 -50
  39. data/lib/fog/google/sql/mock.rb +40 -0
  40. data/lib/fog/google/sql/real.rb +20 -0
  41. data/lib/fog/google/version.rb +1 -1
  42. data/lib/fog/storage/google_json.rb +4 -99
  43. data/lib/fog/storage/google_json/mock.rb +18 -0
  44. data/lib/fog/storage/google_json/real.rb +64 -0
  45. data/lib/fog/storage/google_json/utils.rb +32 -0
  46. data/lib/fog/storage/google_xml.rb +4 -260
  47. data/lib/fog/storage/google_xml/mock.rb +102 -0
  48. data/lib/fog/storage/google_xml/models/file.rb +14 -4
  49. data/lib/fog/storage/google_xml/real.rb +106 -0
  50. data/lib/fog/storage/google_xml/utils.rb +66 -0
  51. data/tests/models/pubsub/received_message_tests.rb +18 -0
  52. data/tests/models/pubsub/subscription_tests.rb +26 -0
  53. data/tests/models/pubsub/subscriptions_tests.rb +33 -0
  54. data/tests/models/pubsub/topic_tests.rb +18 -0
  55. data/tests/models/pubsub/topics_tests.rb +27 -0
  56. 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
- valid_acls = ["private", "public-read", "public-read-write", "authenticated-read"]
22
- unless valid_acls.include?(new_acl)
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.2.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-03-24 00:00:00.000000000 Z
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: '0.9'
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: '0.9'
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.5.1
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.