gcloud 0.12.2 → 0.20.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 (169) hide show
  1. checksums.yaml +5 -13
  2. data/lib/gcloud.rb +27 -456
  3. data/lib/gcloud/bigquery.rb +2 -382
  4. data/lib/gcloud/datastore.rb +2 -576
  5. data/lib/gcloud/dns.rb +2 -321
  6. data/lib/gcloud/logging.rb +1 -322
  7. data/lib/gcloud/pubsub.rb +2 -476
  8. data/lib/gcloud/resource_manager.rb +2 -273
  9. data/lib/gcloud/storage.rb +2 -440
  10. data/lib/gcloud/translate.rb +1 -250
  11. data/lib/gcloud/version.rb +2 -2
  12. data/lib/gcloud/vision.rb +1 -501
  13. metadata +36 -332
  14. data/AUTHENTICATION.md +0 -75
  15. data/CHANGELOG.md +0 -382
  16. data/OVERVIEW.md +0 -259
  17. data/lib/gcloud/backoff.rb +0 -150
  18. data/lib/gcloud/bigquery/copy_job.rb +0 -97
  19. data/lib/gcloud/bigquery/credentials.rb +0 -29
  20. data/lib/gcloud/bigquery/data.rb +0 -239
  21. data/lib/gcloud/bigquery/dataset.rb +0 -753
  22. data/lib/gcloud/bigquery/dataset/access.rb +0 -507
  23. data/lib/gcloud/bigquery/dataset/list.rb +0 -169
  24. data/lib/gcloud/bigquery/extract_job.rb +0 -117
  25. data/lib/gcloud/bigquery/insert_response.rb +0 -81
  26. data/lib/gcloud/bigquery/job.rb +0 -299
  27. data/lib/gcloud/bigquery/job/list.rb +0 -172
  28. data/lib/gcloud/bigquery/load_job.rb +0 -202
  29. data/lib/gcloud/bigquery/project.rb +0 -475
  30. data/lib/gcloud/bigquery/query_data.rb +0 -234
  31. data/lib/gcloud/bigquery/query_job.rb +0 -137
  32. data/lib/gcloud/bigquery/schema.rb +0 -359
  33. data/lib/gcloud/bigquery/service.rb +0 -506
  34. data/lib/gcloud/bigquery/table.rb +0 -1141
  35. data/lib/gcloud/bigquery/table/list.rb +0 -180
  36. data/lib/gcloud/bigquery/view.rb +0 -475
  37. data/lib/gcloud/credentials.rb +0 -129
  38. data/lib/gcloud/datastore/commit.rb +0 -148
  39. data/lib/gcloud/datastore/credentials.rb +0 -35
  40. data/lib/gcloud/datastore/cursor.rb +0 -76
  41. data/lib/gcloud/datastore/dataset.rb +0 -660
  42. data/lib/gcloud/datastore/dataset/lookup_results.rb +0 -219
  43. data/lib/gcloud/datastore/dataset/query_results.rb +0 -386
  44. data/lib/gcloud/datastore/entity.rb +0 -449
  45. data/lib/gcloud/datastore/errors.rb +0 -41
  46. data/lib/gcloud/datastore/gql_query.rb +0 -211
  47. data/lib/gcloud/datastore/grpc_utils.rb +0 -132
  48. data/lib/gcloud/datastore/key.rb +0 -281
  49. data/lib/gcloud/datastore/properties.rb +0 -128
  50. data/lib/gcloud/datastore/query.rb +0 -348
  51. data/lib/gcloud/datastore/service.rb +0 -167
  52. data/lib/gcloud/datastore/transaction.rb +0 -362
  53. data/lib/gcloud/dns/change.rb +0 -158
  54. data/lib/gcloud/dns/change/list.rb +0 -173
  55. data/lib/gcloud/dns/credentials.rb +0 -29
  56. data/lib/gcloud/dns/importer.rb +0 -183
  57. data/lib/gcloud/dns/project.rb +0 -247
  58. data/lib/gcloud/dns/record.rb +0 -170
  59. data/lib/gcloud/dns/record/list.rb +0 -174
  60. data/lib/gcloud/dns/service.rb +0 -167
  61. data/lib/gcloud/dns/zone.rb +0 -759
  62. data/lib/gcloud/dns/zone/list.rb +0 -168
  63. data/lib/gcloud/dns/zone/transaction.rb +0 -176
  64. data/lib/gcloud/errors.rb +0 -206
  65. data/lib/gcloud/gce.rb +0 -56
  66. data/lib/gcloud/grpc_utils.rb +0 -87
  67. data/lib/gcloud/logging/credentials.rb +0 -29
  68. data/lib/gcloud/logging/entry.rb +0 -465
  69. data/lib/gcloud/logging/entry/http_request.rb +0 -141
  70. data/lib/gcloud/logging/entry/list.rb +0 -177
  71. data/lib/gcloud/logging/entry/operation.rb +0 -90
  72. data/lib/gcloud/logging/logger.rb +0 -307
  73. data/lib/gcloud/logging/metric.rb +0 -169
  74. data/lib/gcloud/logging/metric/list.rb +0 -172
  75. data/lib/gcloud/logging/project.rb +0 -642
  76. data/lib/gcloud/logging/resource.rb +0 -84
  77. data/lib/gcloud/logging/resource_descriptor.rb +0 -137
  78. data/lib/gcloud/logging/resource_descriptor/list.rb +0 -174
  79. data/lib/gcloud/logging/service.rb +0 -267
  80. data/lib/gcloud/logging/sink.rb +0 -227
  81. data/lib/gcloud/logging/sink/list.rb +0 -171
  82. data/lib/gcloud/pubsub/credentials.rb +0 -29
  83. data/lib/gcloud/pubsub/message.rb +0 -94
  84. data/lib/gcloud/pubsub/policy.rb +0 -204
  85. data/lib/gcloud/pubsub/project.rb +0 -482
  86. data/lib/gcloud/pubsub/received_message.rb +0 -160
  87. data/lib/gcloud/pubsub/service.rb +0 -334
  88. data/lib/gcloud/pubsub/subscription.rb +0 -565
  89. data/lib/gcloud/pubsub/subscription/list.rb +0 -208
  90. data/lib/gcloud/pubsub/topic.rb +0 -511
  91. data/lib/gcloud/pubsub/topic/list.rb +0 -174
  92. data/lib/gcloud/pubsub/topic/publisher.rb +0 -85
  93. data/lib/gcloud/resource_manager/credentials.rb +0 -30
  94. data/lib/gcloud/resource_manager/manager.rb +0 -266
  95. data/lib/gcloud/resource_manager/policy.rb +0 -211
  96. data/lib/gcloud/resource_manager/project.rb +0 -484
  97. data/lib/gcloud/resource_manager/project/list.rb +0 -167
  98. data/lib/gcloud/resource_manager/project/updater.rb +0 -130
  99. data/lib/gcloud/resource_manager/service.rb +0 -127
  100. data/lib/gcloud/storage/bucket.rb +0 -775
  101. data/lib/gcloud/storage/bucket/acl.rb +0 -810
  102. data/lib/gcloud/storage/bucket/cors.rb +0 -153
  103. data/lib/gcloud/storage/bucket/list.rb +0 -172
  104. data/lib/gcloud/storage/credentials.rb +0 -29
  105. data/lib/gcloud/storage/errors.rb +0 -65
  106. data/lib/gcloud/storage/file.rb +0 -842
  107. data/lib/gcloud/storage/file/acl.rb +0 -425
  108. data/lib/gcloud/storage/file/list.rb +0 -191
  109. data/lib/gcloud/storage/file/verifier.rb +0 -67
  110. data/lib/gcloud/storage/project.rb +0 -316
  111. data/lib/gcloud/storage/service.rb +0 -347
  112. data/lib/gcloud/translate/api.rb +0 -241
  113. data/lib/gcloud/translate/detection.rb +0 -137
  114. data/lib/gcloud/translate/language.rb +0 -69
  115. data/lib/gcloud/translate/service.rb +0 -80
  116. data/lib/gcloud/translate/translation.rb +0 -112
  117. data/lib/gcloud/vision/annotate.rb +0 -224
  118. data/lib/gcloud/vision/annotation.rb +0 -455
  119. data/lib/gcloud/vision/annotation/entity.rb +0 -234
  120. data/lib/gcloud/vision/annotation/face.rb +0 -1750
  121. data/lib/gcloud/vision/annotation/properties.rb +0 -245
  122. data/lib/gcloud/vision/annotation/safe_search.rb +0 -161
  123. data/lib/gcloud/vision/annotation/text.rb +0 -236
  124. data/lib/gcloud/vision/annotation/vertex.rb +0 -108
  125. data/lib/gcloud/vision/credentials.rb +0 -29
  126. data/lib/gcloud/vision/image.rb +0 -590
  127. data/lib/gcloud/vision/location.rb +0 -115
  128. data/lib/gcloud/vision/project.rb +0 -278
  129. data/lib/gcloud/vision/service.rb +0 -66
  130. data/lib/google/api/annotations.rb +0 -14
  131. data/lib/google/api/http.rb +0 -30
  132. data/lib/google/api/label.rb +0 -24
  133. data/lib/google/api/monitored_resource.rb +0 -25
  134. data/lib/google/datastore/v1beta3/datastore.rb +0 -115
  135. data/lib/google/datastore/v1beta3/datastore_services.rb +0 -33
  136. data/lib/google/datastore/v1beta3/entity.rb +0 -63
  137. data/lib/google/datastore/v1beta3/query.rb +0 -128
  138. data/lib/google/devtools/cloudtrace/v1/trace.rb +0 -78
  139. data/lib/google/devtools/cloudtrace/v1/trace_services.rb +0 -32
  140. data/lib/google/example/library/v1/library.rb +0 -91
  141. data/lib/google/example/library/v1/library_services.rb +0 -40
  142. data/lib/google/iam/v1/iam_policy.rb +0 -33
  143. data/lib/google/iam/v1/iam_policy_services.rb +0 -30
  144. data/lib/google/iam/v1/policy.rb +0 -25
  145. data/lib/google/logging/type/http_request.rb +0 -28
  146. data/lib/google/logging/type/log_severity.rb +0 -27
  147. data/lib/google/logging/v2/log_entry.rb +0 -44
  148. data/lib/google/logging/v2/logging.rb +0 -56
  149. data/lib/google/logging/v2/logging_config.rb +0 -59
  150. data/lib/google/logging/v2/logging_config_services.rb +0 -32
  151. data/lib/google/logging/v2/logging_metrics.rb +0 -51
  152. data/lib/google/logging/v2/logging_metrics_services.rb +0 -32
  153. data/lib/google/logging/v2/logging_services.rb +0 -31
  154. data/lib/google/longrunning/operations.rb +0 -50
  155. data/lib/google/longrunning/operations_services.rb +0 -29
  156. data/lib/google/protobuf/descriptor.rb +0 -0
  157. data/lib/google/pubsub/v1/pubsub.rb +0 -129
  158. data/lib/google/pubsub/v1/pubsub_services.rb +0 -56
  159. data/lib/google/pubsub/v1beta2/pubsub.rb +0 -126
  160. data/lib/google/pubsub/v1beta2/pubsub_services.rb +0 -56
  161. data/lib/google/rpc/code.rb +0 -32
  162. data/lib/google/rpc/error_details.rb +0 -61
  163. data/lib/google/rpc/status.rb +0 -19
  164. data/lib/google/type/color.rb +0 -20
  165. data/lib/google/type/date.rb +0 -18
  166. data/lib/google/type/dayofweek.rb +0 -23
  167. data/lib/google/type/latlng.rb +0 -17
  168. data/lib/google/type/money.rb +0 -18
  169. data/lib/google/type/timeofday.rb +0 -19
@@ -1,141 +0,0 @@
1
- # Copyright 2016 Google Inc. All rights reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- module Gcloud
17
- module Logging
18
- class Entry
19
- ##
20
- # # Http Request
21
- #
22
- # HTTP request data associated with a log entry.
23
- #
24
- # See also {Gcloud::Logging::Entry#http_request}.
25
- #
26
- class HttpRequest
27
- ##
28
- # @private Create an empty HttpRequest object.
29
- def initialize
30
- end
31
-
32
- ##
33
- # The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`.
34
- # (String)
35
- attr_accessor :method
36
-
37
- ##
38
- # The URL. The scheme (http, https), the host name, the path and the
39
- # query portion of the URL that was requested. Example:
40
- # `"http://example.com/some/info?color=red"`. (String)
41
- attr_accessor :url
42
-
43
- ##
44
- # The size of the HTTP request message in bytes, including the request
45
- # headers and the request body. (Integer)
46
- attr_accessor :size
47
-
48
- ##
49
- # The response code indicating the status of response. Examples: `200`,
50
- # `404`. (Integer)
51
- attr_accessor :status
52
-
53
- ##
54
- # The size of the HTTP response message sent back to the client, in
55
- # bytes, including the response headers and the response body. (Integer)
56
- attr_accessor :response_size
57
-
58
- ##
59
- # The user agent sent by the client. Example: `"Mozilla/4.0 (compatible;
60
- # MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`. (String)
61
- attr_accessor :user_agent
62
-
63
- ##
64
- # The IP address (IPv4 or IPv6) of the client that issued the HTTP
65
- # request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`.
66
- # (String)
67
- attr_accessor :remote_ip
68
-
69
- ##
70
- # The referer URL of the request, as defined in [HTTP/1.1 Header Field
71
- # Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
72
- # (String)
73
- attr_accessor :referer
74
-
75
- ##
76
- # Whether an entity was served from cache (with or without validation).
77
- # (Boolean)
78
- attr_accessor :cache_hit
79
-
80
- ##
81
- # Whether the response was validated with the origin server before being
82
- # served from cache. This field is only meaningful if `cache_hit` is
83
- # `true`. (Boolean)
84
- attr_accessor :validated
85
-
86
- ##
87
- # @private Determines if the HttpRequest has any data.
88
- def empty?
89
- method.nil? &&
90
- url.nil? &&
91
- size.nil? &&
92
- status.nil? &&
93
- response_size.nil? &&
94
- user_agent.nil? &&
95
- remote_ip.nil? &&
96
- referer.nil? &&
97
- cache_hit.nil? &&
98
- validated.nil?
99
- end
100
-
101
- ##
102
- # @private Exports the HttpRequest to a
103
- # Google::Logging::Type::HttpRequest object.
104
- def to_grpc
105
- return nil if empty?
106
- Google::Logging::Type::HttpRequest.new(
107
- request_method: method.to_s,
108
- request_url: url.to_s,
109
- request_size: size.to_i,
110
- status: status.to_i,
111
- response_size: response_size.to_i,
112
- user_agent: user_agent.to_s,
113
- remote_ip: remote_ip.to_s,
114
- referer: referer.to_s,
115
- cache_hit: !(!cache_hit),
116
- validated_with_origin_server: !(!validated)
117
- )
118
- end
119
-
120
- ##
121
- # @private New HttpRequest from a Google::Logging::Type::HttpRequest
122
- # object.
123
- def self.from_grpc grpc
124
- return new if grpc.nil?
125
- new.tap do |h|
126
- h.method = grpc.request_method
127
- h.url = grpc.request_url
128
- h.size = grpc.request_size
129
- h.status = grpc.status
130
- h.response_size = grpc.response_size
131
- h.user_agent = grpc.user_agent
132
- h.remote_ip = grpc.remote_ip
133
- h.referer = grpc.referer
134
- h.cache_hit = grpc.cache_hit
135
- h.validated = grpc.validated_with_origin_server
136
- end
137
- end
138
- end
139
- end
140
- end
141
- end
@@ -1,177 +0,0 @@
1
- # Copyright 2016 Google Inc. All rights reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- require "delegate"
17
-
18
- module Gcloud
19
- module Logging
20
- class Entry
21
- ##
22
- # Entry::List is a special case Array with additional values.
23
- class List < DelegateClass(::Array)
24
- ##
25
- # If not empty, indicates that there are more records that match
26
- # the request and this value should be passed to continue.
27
- attr_accessor :token
28
-
29
- ##
30
- # @private Create a new Entry::List with an array of Entry instances.
31
- def initialize arr = []
32
- super arr
33
- end
34
-
35
- ##
36
- # Whether there is a next page of entries.
37
- #
38
- # @return [Boolean]
39
- #
40
- # @example
41
- # require "gcloud"
42
- #
43
- # gcloud = Gcloud.new
44
- # logging = gcloud.logging
45
- #
46
- # entries = logging.entries
47
- # if entries.next?
48
- # next_entries = entries.next
49
- # end
50
- #
51
- def next?
52
- !token.nil?
53
- end
54
-
55
- ##
56
- # Retrieve the next page of entries.
57
- #
58
- # @return [Sink::List]
59
- #
60
- # @example
61
- # require "gcloud"
62
- #
63
- # gcloud = Gcloud.new
64
- # logging = gcloud.logging
65
- #
66
- # entries = dataset.entries
67
- # if entries.next?
68
- # next_entries = entries.next
69
- # end
70
- #
71
- def next
72
- return nil unless next?
73
- ensure_service!
74
- grpc = @service.list_entries token: token, projects: @projects,
75
- filter: @filter, order: @order, max: @max
76
- self.class.from_grpc grpc, @service
77
- end
78
-
79
- ##
80
- # Retrieves all log entries by repeatedly loading {#next} until {#next?}
81
- # returns `false`. Calls the given block once for each log entry, which
82
- # is passed as the parameter.
83
- #
84
- # An Enumerator is returned if no block is given.
85
- #
86
- # This method may make several API calls until all log entries are
87
- # retrieved. Be sure to use as narrow a search criteria as possible.
88
- # Please use with caution.
89
- #
90
- # @param [Integer] request_limit The upper limit of API requests to make
91
- # to load all log entries. Default is no limit.
92
- # @yield [entry] The block for accessing each log entry.
93
- # @yieldparam [Entry] entry The log entry object.
94
- #
95
- # @return [Enumerator]
96
- #
97
- # @example Iterating each log entry by passing a block:
98
- # require "gcloud"
99
- #
100
- # gcloud = Gcloud.new
101
- # logging = gcloud.logging
102
- # entries = logging.entries order: "timestamp desc"
103
- #
104
- # entries.all do |entry|
105
- # puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
106
- # end
107
- #
108
- # @example Using the enumerator by not passing a block:
109
- # require "gcloud"
110
- #
111
- # gcloud = Gcloud.new
112
- # logging = gcloud.logging
113
- # entries = logging.entries order: "timestamp desc"
114
- #
115
- # all_payloads = entries.all.map do |entry|
116
- # entry.payload
117
- # end
118
- #
119
- # @example Limit the number of API calls made:
120
- # require "gcloud"
121
- #
122
- # gcloud = Gcloud.new
123
- # logging = gcloud.logging
124
- # entries = logging.entries order: "timestamp desc"
125
- #
126
- # entries.all(request_limit: 10) do |entry|
127
- # puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
128
- # end
129
- #
130
- def all request_limit: nil
131
- request_limit = request_limit.to_i if request_limit
132
- unless block_given?
133
- return enum_for(:all, request_limit: request_limit)
134
- end
135
- results = self
136
- loop do
137
- results.each { |r| yield r }
138
- if request_limit
139
- request_limit -= 1
140
- break if request_limit < 0
141
- end
142
- break unless results.next?
143
- results = results.next
144
- end
145
- end
146
-
147
- ##
148
- # @private New Entry::List from a
149
- # Google::Logging::V2::ListLogEntryResponse object.
150
- def self.from_grpc grpc_list, service, projects: nil, filter: nil,
151
- order: nil, max: nil
152
- entries = new(Array(grpc_list.entries).map do |grpc_entry|
153
- Entry.from_grpc grpc_entry
154
- end)
155
- token = grpc_list.next_page_token
156
- token = nil if token == ""
157
- entries.instance_variable_set "@token", token
158
- entries.instance_variable_set "@service", service
159
- entries.instance_variable_set "@projects", projects
160
- entries.instance_variable_set "@filter", filter
161
- entries.instance_variable_set "@order", order
162
- entries.instance_variable_set "@max", max
163
- entries
164
- end
165
-
166
- protected
167
-
168
- ##
169
- # @private Raise an error unless an active connection to the service is
170
- # available.
171
- def ensure_service!
172
- fail "Must have active connection to service" unless @service
173
- end
174
- end
175
- end
176
- end
177
- end
@@ -1,90 +0,0 @@
1
- # Copyright 2016 Google Inc. All rights reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- module Gcloud
17
- module Logging
18
- class Entry
19
- ##
20
- # # Operation
21
- #
22
- # Additional information about a potentially long-running operation with
23
- # which a log entry is associated.
24
- #
25
- # See also {Gcloud::Logging::Entry#operation}.
26
- #
27
- class Operation
28
- ##
29
- # @private Create an empty Operation object.
30
- def initialize
31
- end
32
-
33
- ##
34
- # An arbitrary operation identifier. Log entries with the same
35
- # identifier are assumed to be part of the same operation.
36
- attr_accessor :id
37
-
38
- ##
39
- # An arbitrary producer identifier. The combination of `id` and
40
- # `producer` must be globally unique. Examples for `producer`:
41
- # `"MyDivision.MyBigCompany.com"`,
42
- # `"github.com/MyProject/MyApplication"`.
43
- attr_accessor :producer
44
-
45
- ##
46
- # Set this to `true` if this is the first log entry in the operation.
47
- attr_accessor :first
48
-
49
- ##
50
- # Set this to `true` if this is the last log entry in the operation.
51
- attr_accessor :last
52
-
53
- ##
54
- # @private Determines if the Operation has any data.
55
- def empty?
56
- id.nil? &&
57
- producer.nil? &&
58
- first.nil? &&
59
- last.nil?
60
- end
61
-
62
- ##
63
- # @private Exports the Operation to a
64
- # Google::Logging::V2::LogEntryOperation object.
65
- def to_grpc
66
- return nil if empty?
67
- Google::Logging::V2::LogEntryOperation.new(
68
- id: id.to_s,
69
- producer: producer.to_s,
70
- first: !(!first),
71
- last: !(!last)
72
- )
73
- end
74
-
75
- ##
76
- # @private New HttpRequest from a Google::Logging::V2::LogEntryOperation
77
- # object.
78
- def self.from_grpc grpc
79
- return new if grpc.nil?
80
- new.tap do |o|
81
- o.id = grpc.id
82
- o.producer = grpc.producer
83
- o.first = grpc.first
84
- o.last = grpc.last
85
- end
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,307 +0,0 @@
1
- # Copyright 2016 Google Inc. All rights reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- module Gcloud
17
- module Logging
18
- ##
19
- # # Logger
20
- #
21
- # A (mostly) API-compatible logger for ruby's Logger.
22
- #
23
- # @example
24
- # require "gcloud"
25
- #
26
- # gcloud = Gcloud.new
27
- # logging = gcloud.logging
28
- #
29
- # resource = logging.resource "gae_app",
30
- # module_id: "1",
31
- # version_id: "20150925t173233"
32
- #
33
- # logger = logging.logger "my_app_log", resource, env: :production
34
- # logger.info "Job started."
35
- #
36
- class Logger
37
- ##
38
- # @private The logging object.
39
- attr_accessor :logging
40
-
41
- ##
42
- # @private The Google Cloud log_name to write the log entry with.
43
- attr_reader :log_name
44
-
45
- ##
46
- # @private The Google Cloud resource to write the log entry with.
47
- attr_reader :resource
48
-
49
- ##
50
- # @private The Google Cloud labels to write the log entry with.
51
- attr_reader :labels
52
-
53
- ##
54
- # @private Creates a new Logger instance.
55
- def initialize logging, log_name, resource, labels = nil
56
- @logging = logging
57
- @log_name = log_name
58
- @resource = resource
59
- @labels = labels
60
- @level = 0 # DEBUG is the default behavior
61
- end
62
-
63
- ##
64
- # Log a `DEBUG` entry.
65
- #
66
- # @param [String, Hash] message The log entry payload, represented as
67
- # either a string, a hash (JSON), or a hash (protocol buffer).
68
- # @yield Evaluates to the message to log. This is not evaluated unless the
69
- # logger's level is sufficient to log the message. This allows you to
70
- # create potentially expensive logging messages that are only called
71
- # when the logger is configured to show them.
72
- #
73
- def debug message = nil, &block
74
- if block_given?
75
- add 0, nil, message, &block
76
- else
77
- add 0, message, nil, &block
78
- end
79
- end
80
-
81
- ##
82
- # Log an `INFO` entry.
83
- #
84
- # @param [String, Hash] message The log entry payload, represented as
85
- # either a string, a hash (JSON), or a hash (protocol buffer).
86
- # @yield Evaluates to the message to log. This is not evaluated unless the
87
- # logger's level is sufficient to log the message. This allows you to
88
- # create potentially expensive logging messages that are only called
89
- # when the logger is configured to show them.
90
- #
91
- def info message = nil, &block
92
- if block_given?
93
- add 1, nil, message, &block
94
- else
95
- add 1, message, nil, &block
96
- end
97
- end
98
-
99
- ##
100
- # Log a `WARN` entry.
101
- #
102
- # @param [String, Hash] message The log entry payload, represented as
103
- # either a string, a hash (JSON), or a hash (protocol buffer).
104
- # @yield Evaluates to the message to log. This is not evaluated unless the
105
- # logger's level is sufficient to log the message. This allows you to
106
- # create potentially expensive logging messages that are only called
107
- # when the logger is configured to show them.
108
- #
109
- def warn message = nil, &block
110
- if block_given?
111
- add 2, nil, message, &block
112
- else
113
- add 2, message, nil, &block
114
- end
115
- end
116
-
117
- ##
118
- # Log an `ERROR` entry.
119
- #
120
- # @param [String, Hash] message The log entry payload, represented as
121
- # either a string, a hash (JSON), or a hash (protocol buffer).
122
- # @yield Evaluates to the message to log. This is not evaluated unless the
123
- # logger's level is sufficient to log the message. This allows you to
124
- # create potentially expensive logging messages that are only called
125
- # when the logger is configured to show them.
126
- #
127
- def error message = nil, &block
128
- if block_given?
129
- add 3, nil, message, &block
130
- else
131
- add 3, message, nil, &block
132
- end
133
- end
134
-
135
- ##
136
- # Log a `FATAL` entry.
137
- #
138
- # @param [String, Hash] message The log entry payload, represented as
139
- # either a string, a hash (JSON), or a hash (protocol buffer).
140
- # @yield Evaluates to the message to log. This is not evaluated unless the
141
- # logger's level is sufficient to log the message. This allows you to
142
- # create potentially expensive logging messages that are only called
143
- # when the logger is configured to show them.
144
- #
145
- def fatal message = nil, &block
146
- if block_given?
147
- add 4, nil, message, &block
148
- else
149
- add 4, message, nil, &block
150
- end
151
- end
152
-
153
- ##
154
- # Log an `UNKNOWN` entry. This will be printed no matter what the
155
- # logger's current severity level is.
156
- #
157
- # @param [String, Hash] message The log entry payload, represented as
158
- # either a string, a hash (JSON), or a hash (protocol buffer).
159
- # @yield Evaluates to the message to log. This is not evaluated unless the
160
- # logger's level is sufficient to log the message. This allows you to
161
- # create potentially expensive logging messages that are only called
162
- # when the logger is configured to show them.
163
- #
164
- def unknown message = nil, &block
165
- if block_given?
166
- add 5, nil, message, &block
167
- else
168
- add 5, message, nil, &block
169
- end
170
- end
171
-
172
- ##
173
- # Log a message if the given severity is high enough. This is the generic
174
- # logging method. Users will be more inclined to use {#debug}, {#info},
175
- # {#warn}, {#error}, and {#fatal}.
176
- #
177
- # @param [Integer, String, Symbol] severity the integer code for or the
178
- # name of the severity level
179
- # @param [String, Hash] message The log entry payload, represented as
180
- # either a string, a hash (JSON), or a hash (protocol buffer).
181
- # @yield Evaluates to the message to log. This is not evaluated unless the
182
- # logger's level is sufficient to log the message. This allows you to
183
- # create potentially expensive logging messages that are only called
184
- # when the logger is configured to show them.
185
- #
186
- def add severity, message = nil, progname = nil
187
- severity = derive_severity(severity) || 5 # 5 is UNKNOWN/DEFAULT
188
- return true if severity < @level
189
-
190
- if message.nil?
191
- if block_given?
192
- message = yield
193
- else
194
- message = progname
195
- # progname = nil # TODO: Figure out what to do with the progname
196
- end
197
- end
198
-
199
- write_entry severity, message
200
- end
201
- alias_method :log, :add
202
-
203
- ##
204
- # Returns `true` if the current severity level allows for sending `DEBUG`
205
- # messages.
206
- def debug?
207
- @level <= 0
208
- end
209
-
210
- ##
211
- # Returns `true` if the current severity level allows for sending `INFO`
212
- # messages.
213
- def info?
214
- @level <= 1
215
- end
216
-
217
- ##
218
- # Returns `true` if the current severity level allows for sending `WARN`
219
- # messages.
220
- def warn?
221
- @level <= 2
222
- end
223
-
224
- ##
225
- # Returns `true` if the current severity level allows for sending `ERROR`
226
- # messages.
227
- def error?
228
- @level <= 3
229
- end
230
-
231
- ##
232
- # Returns `true` if the current severity level allows for sending `FATAL`
233
- # messages.
234
- def fatal?
235
- @level <= 4
236
- end
237
-
238
- ##
239
- # Sets the logging severity level.
240
- #
241
- # @param [Integer, String, Symbol] severity the integer code for or the
242
- # name of the severity level
243
- #
244
- # @example
245
- # require "gcloud"
246
- #
247
- # gcloud = Gcloud.new
248
- # logging = gcloud.logging
249
- #
250
- # resource = logging.resource "gae_app",
251
- # module_id: "1",
252
- # version_id: "20150925t173233"
253
- #
254
- # logger = logging.logger "my_app_log", resource, env: :production
255
- #
256
- # logger.level = "INFO"
257
- # logger.debug "Job started." # No log entry written
258
- #
259
- def level= severity
260
- new_level = derive_severity severity
261
- fail ArgumentError, "invalid log level: #{severity}" if new_level.nil?
262
- @level = new_level
263
- end
264
- alias_method :sev_threshold=, :level=
265
-
266
- protected
267
-
268
- ##
269
- # @private Write a log entry to the Stackdriver Logging service.
270
- def write_entry severity, message
271
- entry = logging.entry.tap do |e|
272
- e.severity = gcloud_severity(severity)
273
- e.payload = message
274
- end
275
-
276
- logging.write_entries entry, log_name: log_name,
277
- resource: resource,
278
- labels: labels
279
- end
280
-
281
- ##
282
- # @private Get the logger level number from severity value object.
283
- def derive_severity severity
284
- return severity if severity.is_a? Integer
285
-
286
- downcase_severity = severity.to_s.downcase
287
- case downcase_severity
288
- when "debug".freeze then 0
289
- when "info".freeze then 1
290
- when "warn".freeze then 2
291
- when "error".freeze then 3
292
- when "fatal".freeze then 4
293
- when "unknown".freeze then 5
294
- else nil
295
- end
296
- end
297
-
298
- ##
299
- # @private Get Google Cloud deverity from logger level number.
300
- def gcloud_severity severity_int
301
- %i(DEBUG INFO WARNING ERROR CRITICAL DEFAULT)[severity_int]
302
- rescue
303
- :DEFAULT
304
- end
305
- end
306
- end
307
- end