google-cloud-debugger 0.36.1 → 0.42.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +2 -1
  3. data/CHANGELOG.md +47 -0
  4. data/CONTRIBUTING.md +4 -4
  5. data/LOGGING.md +1 -1
  6. data/OVERVIEW.md +28 -59
  7. data/TROUBLESHOOTING.md +2 -8
  8. data/ext/google/cloud/debugger/debugger_c/tracer.c +8 -33
  9. data/lib/google-cloud-debugger.rb +14 -15
  10. data/lib/google/cloud/debugger.rb +18 -16
  11. data/lib/google/cloud/debugger/agent.rb +4 -1
  12. data/lib/google/cloud/debugger/breakpoint.rb +9 -9
  13. data/lib/google/cloud/debugger/breakpoint/evaluator.rb +19 -25
  14. data/lib/google/cloud/debugger/breakpoint/source_location.rb +6 -6
  15. data/lib/google/cloud/debugger/breakpoint/stack_frame.rb +5 -5
  16. data/lib/google/cloud/debugger/breakpoint/status_message.rb +4 -6
  17. data/lib/google/cloud/debugger/breakpoint/variable.rb +8 -11
  18. data/lib/google/cloud/debugger/breakpoint/variable_table.rb +1 -1
  19. data/lib/google/cloud/debugger/credentials.rb +9 -6
  20. data/lib/google/cloud/debugger/debuggee.rb +4 -4
  21. data/lib/google/cloud/debugger/middleware.rb +1 -1
  22. data/lib/google/cloud/debugger/rails.rb +2 -2
  23. data/lib/google/cloud/debugger/service.rb +28 -66
  24. data/lib/google/cloud/debugger/snappoint.rb +4 -7
  25. data/lib/google/cloud/debugger/transmitter.rb +1 -1
  26. data/lib/google/cloud/debugger/version.rb +1 -1
  27. metadata +14 -72
  28. data/lib/google/cloud/debugger/v2.rb +0 -243
  29. data/lib/google/cloud/debugger/v2/controller2_client.rb +0 -373
  30. data/lib/google/cloud/debugger/v2/controller2_client_config.json +0 -41
  31. data/lib/google/cloud/debugger/v2/credentials.rb +0 -42
  32. data/lib/google/cloud/debugger/v2/debugger2_client.rb +0 -481
  33. data/lib/google/cloud/debugger/v2/debugger2_client_config.json +0 -51
  34. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/controller.rb +0 -91
  35. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/data.rb +0 -443
  36. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/debugger.rb +0 -151
  37. data/lib/google/cloud/debugger/v2/doc/google/devtools/source/v1/source_context.rb +0 -162
  38. data/lib/google/cloud/debugger/v2/doc/google/protobuf/empty.rb +0 -29
  39. data/lib/google/cloud/debugger/v2/doc/google/protobuf/timestamp.rb +0 -113
  40. data/lib/google/devtools/clouddebugger/v2/controller_pb.rb +0 -50
  41. data/lib/google/devtools/clouddebugger/v2/controller_services_pb.rb +0 -98
  42. data/lib/google/devtools/clouddebugger/v2/data_pb.rb +0 -108
  43. data/lib/google/devtools/clouddebugger/v2/debugger_pb.rb +0 -77
  44. data/lib/google/devtools/clouddebugger/v2/debugger_services_pb.rb +0 -66
  45. data/lib/google/devtools/source/v1/source_context_pb.rb +0 -90
@@ -1,481 +0,0 @@
1
- # Copyright 2020 Google LLC
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
- # https://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
- # EDITING INSTRUCTIONS
16
- # This file was generated from the file
17
- # https://github.com/googleapis/googleapis/blob/master/google/devtools/clouddebugger/v2/debugger.proto,
18
- # and updates to that file get reflected here through a refresh process.
19
- # For the short term, the refresh process will only be runnable by Google
20
- # engineers.
21
-
22
-
23
- require "json"
24
- require "pathname"
25
-
26
- require "google/gax"
27
-
28
- require "google/devtools/clouddebugger/v2/debugger_pb"
29
- require "google/cloud/debugger/v2/credentials"
30
- require "google/cloud/debugger/version"
31
-
32
- module Google
33
- module Cloud
34
- module Debugger
35
- module V2
36
- # The Debugger service provides the API that allows users to collect run-time
37
- # information from a running application, without stopping or slowing it down
38
- # and without modifying its state. An application may include one or
39
- # more replicated processes performing the same work.
40
- #
41
- # A debugged application is represented using the Debuggee concept. The
42
- # Debugger service provides a way to query for available debuggees, but does
43
- # not provide a way to create one. A debuggee is created using the Controller
44
- # service, usually by running a debugger agent with the application.
45
- #
46
- # The Debugger service enables the client to set one or more Breakpoints on a
47
- # Debuggee and collect the results of the set Breakpoints.
48
- #
49
- # @!attribute [r] debugger2_stub
50
- # @return [Google::Devtools::Clouddebugger::V2::Debugger2::Stub]
51
- class Debugger2Client
52
- # @private
53
- attr_reader :debugger2_stub
54
-
55
- # The default address of the service.
56
- SERVICE_ADDRESS = "clouddebugger.googleapis.com".freeze
57
-
58
- # The default port of the service.
59
- DEFAULT_SERVICE_PORT = 443
60
-
61
- # The default set of gRPC interceptors.
62
- GRPC_INTERCEPTORS = []
63
-
64
- DEFAULT_TIMEOUT = 30
65
-
66
- # The scopes needed to make gRPC calls to all of the methods defined in
67
- # this service.
68
- ALL_SCOPES = [
69
- "https://www.googleapis.com/auth/cloud-platform",
70
- "https://www.googleapis.com/auth/cloud_debugger"
71
- ].freeze
72
-
73
-
74
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
75
- # Provides the means for authenticating requests made by the client. This parameter can
76
- # be many types.
77
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
78
- # authenticating requests made by this client.
79
- # A `String` will be treated as the path to the keyfile to be used for the construction of
80
- # credentials for this client.
81
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
82
- # credentials for this client.
83
- # A `GRPC::Core::Channel` will be used to make calls through.
84
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
85
- # should already be composed with a `GRPC::Core::CallCredentials` object.
86
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
87
- # metadata for requests, generally, to give OAuth credentials.
88
- # @param scopes [Array<String>]
89
- # The OAuth scopes for this service. This parameter is ignored if
90
- # an updater_proc is supplied.
91
- # @param client_config [Hash]
92
- # A Hash for call options for each method. See
93
- # Google::Gax#construct_settings for the structure of
94
- # this data. Falls back to the default config if not specified
95
- # or the specified config is missing data points.
96
- # @param timeout [Numeric]
97
- # The default timeout, in seconds, for calls made through this client.
98
- # @param metadata [Hash]
99
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
100
- # @param service_address [String]
101
- # Override for the service hostname, or `nil` to leave as the default.
102
- # @param service_port [Integer]
103
- # Override for the service port, or `nil` to leave as the default.
104
- # @param exception_transformer [Proc]
105
- # An optional proc that intercepts any exceptions raised during an API call to inject
106
- # custom error handling.
107
- def initialize \
108
- credentials: nil,
109
- scopes: ALL_SCOPES,
110
- client_config: {},
111
- timeout: DEFAULT_TIMEOUT,
112
- metadata: nil,
113
- service_address: nil,
114
- service_port: nil,
115
- exception_transformer: nil,
116
- lib_name: nil,
117
- lib_version: ""
118
- # These require statements are intentionally placed here to initialize
119
- # the gRPC module only when it's required.
120
- # See https://github.com/googleapis/toolkit/issues/446
121
- require "google/gax/grpc"
122
- require "google/devtools/clouddebugger/v2/debugger_services_pb"
123
-
124
- credentials ||= Google::Cloud::Debugger::V2::Credentials.default
125
-
126
- if credentials.is_a?(String) || credentials.is_a?(Hash)
127
- updater_proc = Google::Cloud::Debugger::V2::Credentials.new(credentials).updater_proc
128
- end
129
- if credentials.is_a?(GRPC::Core::Channel)
130
- channel = credentials
131
- end
132
- if credentials.is_a?(GRPC::Core::ChannelCredentials)
133
- chan_creds = credentials
134
- end
135
- if credentials.is_a?(Proc)
136
- updater_proc = credentials
137
- end
138
- if credentials.is_a?(Google::Auth::Credentials)
139
- updater_proc = credentials.updater_proc
140
- end
141
-
142
- package_version = Google::Cloud::Debugger::VERSION
143
-
144
- google_api_client = "gl-ruby/#{RUBY_VERSION}"
145
- google_api_client << " #{lib_name}/#{lib_version}" if lib_name
146
- google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
147
- google_api_client << " grpc/#{GRPC::VERSION}"
148
- google_api_client.freeze
149
-
150
- headers = { :"x-goog-api-client" => google_api_client }
151
- if credentials.respond_to?(:quota_project_id) && credentials.quota_project_id
152
- headers[:"x-goog-user-project"] = credentials.quota_project_id
153
- end
154
- headers.merge!(metadata) unless metadata.nil?
155
- client_config_file = Pathname.new(__dir__).join(
156
- "debugger2_client_config.json"
157
- )
158
- defaults = client_config_file.open do |f|
159
- Google::Gax.construct_settings(
160
- "google.devtools.clouddebugger.v2.Debugger2",
161
- JSON.parse(f.read),
162
- client_config,
163
- Google::Gax::Grpc::STATUS_CODE_NAMES,
164
- timeout,
165
- errors: Google::Gax::Grpc::API_ERRORS,
166
- metadata: headers
167
- )
168
- end
169
-
170
- # Allow overriding the service path/port in subclasses.
171
- service_path = service_address || self.class::SERVICE_ADDRESS
172
- port = service_port || self.class::DEFAULT_SERVICE_PORT
173
- interceptors = self.class::GRPC_INTERCEPTORS
174
- @debugger2_stub = Google::Gax::Grpc.create_stub(
175
- service_path,
176
- port,
177
- chan_creds: chan_creds,
178
- channel: channel,
179
- updater_proc: updater_proc,
180
- scopes: scopes,
181
- interceptors: interceptors,
182
- &Google::Devtools::Clouddebugger::V2::Debugger2::Stub.method(:new)
183
- )
184
-
185
- @delete_breakpoint = Google::Gax.create_api_call(
186
- @debugger2_stub.method(:delete_breakpoint),
187
- defaults["delete_breakpoint"],
188
- exception_transformer: exception_transformer
189
- )
190
- @set_breakpoint = Google::Gax.create_api_call(
191
- @debugger2_stub.method(:set_breakpoint),
192
- defaults["set_breakpoint"],
193
- exception_transformer: exception_transformer,
194
- params_extractor: proc do |request|
195
- {'debuggee_id' => request.debuggee_id}
196
- end
197
- )
198
- @get_breakpoint = Google::Gax.create_api_call(
199
- @debugger2_stub.method(:get_breakpoint),
200
- defaults["get_breakpoint"],
201
- exception_transformer: exception_transformer
202
- )
203
- @list_breakpoints = Google::Gax.create_api_call(
204
- @debugger2_stub.method(:list_breakpoints),
205
- defaults["list_breakpoints"],
206
- exception_transformer: exception_transformer,
207
- params_extractor: proc do |request|
208
- {'debuggee_id' => request.debuggee_id}
209
- end
210
- )
211
- @list_debuggees = Google::Gax.create_api_call(
212
- @debugger2_stub.method(:list_debuggees),
213
- defaults["list_debuggees"],
214
- exception_transformer: exception_transformer
215
- )
216
- end
217
-
218
- # Service calls
219
-
220
- # Deletes the breakpoint from the debuggee.
221
- #
222
- # @param debuggee_id [String]
223
- # Required. ID of the debuggee whose breakpoint to delete.
224
- # @param breakpoint_id [String]
225
- # Required. ID of the breakpoint to delete.
226
- # @param client_version [String]
227
- # Required. The client version making the call.
228
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
229
- # @param options [Google::Gax::CallOptions]
230
- # Overrides the default settings for this call, e.g, timeout,
231
- # retries, etc.
232
- # @yield [result, operation] Access the result along with the RPC operation
233
- # @yieldparam result []
234
- # @yieldparam operation [GRPC::ActiveCall::Operation]
235
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
236
- # @example
237
- # require "google/cloud/debugger/v2"
238
- #
239
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
240
- #
241
- # # TODO: Initialize `debuggee_id`:
242
- # debuggee_id = ''
243
- #
244
- # # TODO: Initialize `breakpoint_id`:
245
- # breakpoint_id = ''
246
- #
247
- # # TODO: Initialize `client_version`:
248
- # client_version = ''
249
- # debugger2_client.delete_breakpoint(debuggee_id, breakpoint_id, client_version)
250
-
251
- def delete_breakpoint \
252
- debuggee_id,
253
- breakpoint_id,
254
- client_version,
255
- options: nil,
256
- &block
257
- req = {
258
- debuggee_id: debuggee_id,
259
- breakpoint_id: breakpoint_id,
260
- client_version: client_version
261
- }.delete_if { |_, v| v.nil? }
262
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::DeleteBreakpointRequest)
263
- @delete_breakpoint.call(req, options, &block)
264
- nil
265
- end
266
-
267
- # Sets the breakpoint to the debuggee.
268
- #
269
- # @param debuggee_id [String]
270
- # Required. ID of the debuggee where the breakpoint is to be set.
271
- # @param breakpoint [Google::Devtools::Clouddebugger::V2::Breakpoint | Hash]
272
- # Required. Breakpoint specification to set.
273
- # The field `location` of the breakpoint must be set.
274
- # A hash of the same form as `Google::Devtools::Clouddebugger::V2::Breakpoint`
275
- # can also be provided.
276
- # @param client_version [String]
277
- # Required. The client version making the call.
278
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
279
- # @param options [Google::Gax::CallOptions]
280
- # Overrides the default settings for this call, e.g, timeout,
281
- # retries, etc.
282
- # @yield [result, operation] Access the result along with the RPC operation
283
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::SetBreakpointResponse]
284
- # @yieldparam operation [GRPC::ActiveCall::Operation]
285
- # @return [Google::Devtools::Clouddebugger::V2::SetBreakpointResponse]
286
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
287
- # @example
288
- # require "google/cloud/debugger/v2"
289
- #
290
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
291
- #
292
- # # TODO: Initialize `debuggee_id`:
293
- # debuggee_id = ''
294
- #
295
- # # TODO: Initialize `breakpoint`:
296
- # breakpoint = {}
297
- #
298
- # # TODO: Initialize `client_version`:
299
- # client_version = ''
300
- # response = debugger2_client.set_breakpoint(debuggee_id, breakpoint, client_version)
301
-
302
- def set_breakpoint \
303
- debuggee_id,
304
- breakpoint,
305
- client_version,
306
- options: nil,
307
- &block
308
- req = {
309
- debuggee_id: debuggee_id,
310
- breakpoint: breakpoint,
311
- client_version: client_version
312
- }.delete_if { |_, v| v.nil? }
313
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::SetBreakpointRequest)
314
- @set_breakpoint.call(req, options, &block)
315
- end
316
-
317
- # Gets breakpoint information.
318
- #
319
- # @param debuggee_id [String]
320
- # Required. ID of the debuggee whose breakpoint to get.
321
- # @param breakpoint_id [String]
322
- # Required. ID of the breakpoint to get.
323
- # @param client_version [String]
324
- # Required. The client version making the call.
325
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
326
- # @param options [Google::Gax::CallOptions]
327
- # Overrides the default settings for this call, e.g, timeout,
328
- # retries, etc.
329
- # @yield [result, operation] Access the result along with the RPC operation
330
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::GetBreakpointResponse]
331
- # @yieldparam operation [GRPC::ActiveCall::Operation]
332
- # @return [Google::Devtools::Clouddebugger::V2::GetBreakpointResponse]
333
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
334
- # @example
335
- # require "google/cloud/debugger/v2"
336
- #
337
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
338
- #
339
- # # TODO: Initialize `debuggee_id`:
340
- # debuggee_id = ''
341
- #
342
- # # TODO: Initialize `breakpoint_id`:
343
- # breakpoint_id = ''
344
- #
345
- # # TODO: Initialize `client_version`:
346
- # client_version = ''
347
- # response = debugger2_client.get_breakpoint(debuggee_id, breakpoint_id, client_version)
348
-
349
- def get_breakpoint \
350
- debuggee_id,
351
- breakpoint_id,
352
- client_version,
353
- options: nil,
354
- &block
355
- req = {
356
- debuggee_id: debuggee_id,
357
- breakpoint_id: breakpoint_id,
358
- client_version: client_version
359
- }.delete_if { |_, v| v.nil? }
360
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::GetBreakpointRequest)
361
- @get_breakpoint.call(req, options, &block)
362
- end
363
-
364
- # Lists all breakpoints for the debuggee.
365
- #
366
- # @param debuggee_id [String]
367
- # Required. ID of the debuggee whose breakpoints to list.
368
- # @param client_version [String]
369
- # Required. The client version making the call.
370
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
371
- # @param include_all_users [true, false]
372
- # When set to `true`, the response includes the list of breakpoints set by
373
- # any user. Otherwise, it includes only breakpoints set by the caller.
374
- # @param include_inactive [true, false]
375
- # When set to `true`, the response includes active and inactive
376
- # breakpoints. Otherwise, it includes only active breakpoints.
377
- # @param action [Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest::BreakpointActionValue | Hash]
378
- # When set, the response includes only breakpoints with the specified action.
379
- # A hash of the same form as `Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest::BreakpointActionValue`
380
- # can also be provided.
381
- # @param strip_results [true, false]
382
- # This field is deprecated. The following fields are always stripped out of
383
- # the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
384
- # @param wait_token [String]
385
- # A wait token that, if specified, blocks the call until the breakpoints
386
- # list has changed, or a server selected timeout has expired. The value
387
- # should be set from the last response. The error code
388
- # `google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
389
- # should be called again with the same `wait_token`.
390
- # @param options [Google::Gax::CallOptions]
391
- # Overrides the default settings for this call, e.g, timeout,
392
- # retries, etc.
393
- # @yield [result, operation] Access the result along with the RPC operation
394
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::ListBreakpointsResponse]
395
- # @yieldparam operation [GRPC::ActiveCall::Operation]
396
- # @return [Google::Devtools::Clouddebugger::V2::ListBreakpointsResponse]
397
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
398
- # @example
399
- # require "google/cloud/debugger/v2"
400
- #
401
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
402
- #
403
- # # TODO: Initialize `debuggee_id`:
404
- # debuggee_id = ''
405
- #
406
- # # TODO: Initialize `client_version`:
407
- # client_version = ''
408
- # response = debugger2_client.list_breakpoints(debuggee_id, client_version)
409
-
410
- def list_breakpoints \
411
- debuggee_id,
412
- client_version,
413
- include_all_users: nil,
414
- include_inactive: nil,
415
- action: nil,
416
- strip_results: nil,
417
- wait_token: nil,
418
- options: nil,
419
- &block
420
- req = {
421
- debuggee_id: debuggee_id,
422
- client_version: client_version,
423
- include_all_users: include_all_users,
424
- include_inactive: include_inactive,
425
- action: action,
426
- strip_results: strip_results,
427
- wait_token: wait_token
428
- }.delete_if { |_, v| v.nil? }
429
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest)
430
- @list_breakpoints.call(req, options, &block)
431
- end
432
-
433
- # Lists all the debuggees that the user has access to.
434
- #
435
- # @param project [String]
436
- # Required. Project number of a Google Cloud project whose debuggees to list.
437
- # @param client_version [String]
438
- # Required. The client version making the call.
439
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
440
- # @param include_inactive [true, false]
441
- # When set to `true`, the result includes all debuggees. Otherwise, the
442
- # result includes only debuggees that are active.
443
- # @param options [Google::Gax::CallOptions]
444
- # Overrides the default settings for this call, e.g, timeout,
445
- # retries, etc.
446
- # @yield [result, operation] Access the result along with the RPC operation
447
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::ListDebuggeesResponse]
448
- # @yieldparam operation [GRPC::ActiveCall::Operation]
449
- # @return [Google::Devtools::Clouddebugger::V2::ListDebuggeesResponse]
450
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
451
- # @example
452
- # require "google/cloud/debugger/v2"
453
- #
454
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
455
- #
456
- # # TODO: Initialize `project`:
457
- # project = ''
458
- #
459
- # # TODO: Initialize `client_version`:
460
- # client_version = ''
461
- # response = debugger2_client.list_debuggees(project, client_version)
462
-
463
- def list_debuggees \
464
- project,
465
- client_version,
466
- include_inactive: nil,
467
- options: nil,
468
- &block
469
- req = {
470
- project: project,
471
- client_version: client_version,
472
- include_inactive: include_inactive
473
- }.delete_if { |_, v| v.nil? }
474
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::ListDebuggeesRequest)
475
- @list_debuggees.call(req, options, &block)
476
- end
477
- end
478
- end
479
- end
480
- end
481
- end