gcloud 0.6.3 → 0.7.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 +8 -8
- data/AUTHENTICATION.md +13 -9
- data/CHANGELOG.md +8 -3
- data/OVERVIEW.md +46 -8
- data/lib/gcloud.rb +123 -117
- data/lib/gcloud/backoff.rb +43 -15
- data/lib/gcloud/bigquery.rb +211 -195
- data/lib/gcloud/bigquery/connection.rb +9 -9
- data/lib/gcloud/bigquery/copy_job.rb +15 -16
- data/lib/gcloud/bigquery/credentials.rb +3 -3
- data/lib/gcloud/bigquery/data.rb +12 -11
- data/lib/gcloud/bigquery/dataset.rb +162 -216
- data/lib/gcloud/bigquery/dataset/access.rb +59 -43
- data/lib/gcloud/bigquery/dataset/list.rb +3 -3
- data/lib/gcloud/bigquery/errors.rb +9 -5
- data/lib/gcloud/bigquery/extract_job.rb +18 -18
- data/lib/gcloud/bigquery/insert_response.rb +7 -4
- data/lib/gcloud/bigquery/job.rb +48 -44
- data/lib/gcloud/bigquery/job/list.rb +3 -3
- data/lib/gcloud/bigquery/load_job.rb +24 -25
- data/lib/gcloud/bigquery/project.rb +145 -204
- data/lib/gcloud/bigquery/query_data.rb +10 -9
- data/lib/gcloud/bigquery/query_job.rb +23 -32
- data/lib/gcloud/bigquery/table.rb +238 -280
- data/lib/gcloud/bigquery/table/list.rb +3 -3
- data/lib/gcloud/bigquery/table/schema.rb +79 -87
- data/lib/gcloud/bigquery/view.rb +69 -82
- data/lib/gcloud/credentials.rb +3 -9
- data/lib/gcloud/datastore.rb +194 -170
- data/lib/gcloud/datastore/connection.rb +12 -8
- data/lib/gcloud/datastore/credentials.rb +6 -4
- data/lib/gcloud/datastore/dataset.rb +74 -141
- data/lib/gcloud/datastore/dataset/lookup_results.rb +6 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +6 -4
- data/lib/gcloud/datastore/entity.rb +81 -76
- data/lib/gcloud/datastore/errors.rb +10 -8
- data/lib/gcloud/datastore/key.rb +41 -77
- data/lib/gcloud/datastore/properties.rb +3 -3
- data/lib/gcloud/datastore/proto.rb +7 -4
- data/lib/gcloud/datastore/query.rb +26 -3
- data/lib/gcloud/datastore/transaction.rb +12 -8
- data/lib/gcloud/dns.rb +180 -152
- data/lib/gcloud/dns/change.rb +16 -16
- data/lib/gcloud/dns/change/list.rb +3 -3
- data/lib/gcloud/dns/connection.rb +9 -10
- data/lib/gcloud/dns/credentials.rb +3 -3
- data/lib/gcloud/dns/errors.rb +9 -5
- data/lib/gcloud/dns/importer.rb +17 -23
- data/lib/gcloud/dns/project.rb +42 -64
- data/lib/gcloud/dns/record.rb +58 -46
- data/lib/gcloud/dns/record/list.rb +6 -7
- data/lib/gcloud/dns/zone.rb +198 -289
- data/lib/gcloud/dns/zone/list.rb +3 -3
- data/lib/gcloud/dns/zone/transaction.rb +56 -72
- data/lib/gcloud/errors.rb +174 -3
- data/lib/gcloud/gce.rb +3 -4
- data/lib/gcloud/grpc_utils.rb +76 -0
- data/lib/gcloud/logging.rb +308 -0
- data/lib/gcloud/logging/credentials.rb +29 -0
- data/lib/gcloud/logging/entry.rb +303 -0
- data/lib/gcloud/logging/entry/http_request.rb +141 -0
- data/lib/gcloud/logging/entry/list.rb +111 -0
- data/lib/gcloud/logging/entry/operation.rb +90 -0
- data/lib/gcloud/logging/logger.rb +307 -0
- data/lib/gcloud/logging/metric.rb +175 -0
- data/lib/gcloud/logging/metric/list.rb +98 -0
- data/lib/gcloud/logging/project.rb +650 -0
- data/lib/gcloud/logging/resource.rb +95 -0
- data/lib/gcloud/logging/resource_descriptor.rb +140 -0
- data/lib/gcloud/logging/resource_descriptor/list.rb +78 -0
- data/lib/gcloud/logging/service.rb +258 -0
- data/lib/gcloud/logging/sink.rb +233 -0
- data/lib/gcloud/logging/sink/list.rb +97 -0
- data/lib/gcloud/pubsub.rb +241 -199
- data/lib/gcloud/pubsub/credentials.rb +3 -3
- data/lib/gcloud/pubsub/message.rb +26 -20
- data/lib/gcloud/pubsub/project.rb +166 -233
- data/lib/gcloud/pubsub/received_message.rb +28 -38
- data/lib/gcloud/pubsub/service.rb +323 -0
- data/lib/gcloud/pubsub/subscription.rb +172 -242
- data/lib/gcloud/pubsub/subscription/list.rb +11 -9
- data/lib/gcloud/pubsub/topic.rb +152 -271
- data/lib/gcloud/pubsub/topic/batch.rb +66 -0
- data/lib/gcloud/pubsub/topic/list.rb +9 -7
- data/lib/gcloud/resource_manager.rb +158 -138
- data/lib/gcloud/resource_manager/connection.rb +6 -5
- data/lib/gcloud/resource_manager/credentials.rb +3 -3
- data/lib/gcloud/resource_manager/errors.rb +9 -5
- data/lib/gcloud/resource_manager/manager.rb +54 -86
- data/lib/gcloud/resource_manager/project.rb +69 -88
- data/lib/gcloud/resource_manager/project/list.rb +4 -5
- data/lib/gcloud/resource_manager/project/updater.rb +12 -14
- data/lib/gcloud/search.rb +158 -135
- data/lib/gcloud/search/api_client.rb +7 -7
- data/lib/gcloud/search/connection.rb +8 -8
- data/lib/gcloud/search/credentials.rb +3 -3
- data/lib/gcloud/search/document.rb +64 -87
- data/lib/gcloud/search/document/list.rb +5 -5
- data/lib/gcloud/search/errors.rb +9 -5
- data/lib/gcloud/search/field_value.rb +32 -38
- data/lib/gcloud/search/field_values.rb +50 -80
- data/lib/gcloud/search/fields.rb +44 -65
- data/lib/gcloud/search/index.rb +163 -204
- data/lib/gcloud/search/index/list.rb +5 -5
- data/lib/gcloud/search/project.rb +31 -47
- data/lib/gcloud/search/result.rb +27 -31
- data/lib/gcloud/search/result/list.rb +6 -6
- data/lib/gcloud/storage.rb +224 -190
- data/lib/gcloud/storage/bucket.rb +202 -227
- data/lib/gcloud/storage/bucket/acl.rb +83 -170
- data/lib/gcloud/storage/bucket/cors.rb +31 -34
- data/lib/gcloud/storage/bucket/list.rb +3 -3
- data/lib/gcloud/storage/connection.rb +11 -7
- data/lib/gcloud/storage/credentials.rb +3 -3
- data/lib/gcloud/storage/errors.rb +11 -8
- data/lib/gcloud/storage/file.rb +129 -171
- data/lib/gcloud/storage/file/acl.rb +51 -99
- data/lib/gcloud/storage/file/list.rb +3 -3
- data/lib/gcloud/storage/file/verifier.rb +3 -2
- data/lib/gcloud/storage/project.rb +111 -132
- data/lib/gcloud/upload.rb +4 -7
- data/lib/gcloud/version.rb +2 -4
- data/lib/google/api/annotations.rb +14 -0
- data/lib/google/api/http.rb +30 -0
- data/lib/google/api/label.rb +24 -0
- data/lib/google/api/monitored_resource.rb +25 -0
- data/lib/google/datastore/v1beta3/datastore.rb +115 -0
- data/lib/google/datastore/v1beta3/datastore_services.rb +33 -0
- data/lib/google/datastore/v1beta3/entity.rb +63 -0
- data/lib/google/datastore/v1beta3/query.rb +128 -0
- data/lib/google/devtools/cloudtrace/v1/trace.rb +78 -0
- data/lib/google/devtools/cloudtrace/v1/trace_services.rb +32 -0
- data/lib/google/example/library/v1/library.rb +91 -0
- data/lib/google/example/library/v1/library_services.rb +40 -0
- data/lib/google/iam/v1/iam_policy.rb +33 -0
- data/lib/google/iam/v1/iam_policy_services.rb +30 -0
- data/lib/google/iam/v1/policy.rb +25 -0
- data/lib/google/logging/type/http_request.rb +28 -0
- data/lib/google/logging/type/log_severity.rb +27 -0
- data/lib/google/logging/v2/log_entry.rb +44 -0
- data/lib/google/logging/v2/logging.rb +56 -0
- data/lib/google/logging/v2/logging_config.rb +59 -0
- data/lib/google/logging/v2/logging_config_services.rb +32 -0
- data/lib/google/logging/v2/logging_metrics.rb +51 -0
- data/lib/google/logging/v2/logging_metrics_services.rb +32 -0
- data/lib/google/logging/v2/logging_services.rb +31 -0
- data/lib/google/longrunning/operations.rb +50 -0
- data/lib/google/longrunning/operations_services.rb +29 -0
- data/lib/google/protobuf/any.rb +17 -0
- data/lib/google/protobuf/api.rb +31 -0
- data/lib/google/protobuf/descriptor.rb +0 -0
- data/lib/google/protobuf/duration.rb +17 -0
- data/lib/google/protobuf/empty.rb +15 -0
- data/lib/google/protobuf/field_mask.rb +16 -0
- data/lib/google/protobuf/source_context.rb +16 -0
- data/lib/google/protobuf/struct.rb +35 -0
- data/lib/google/protobuf/timestamp.rb +17 -0
- data/lib/google/protobuf/type.rb +79 -0
- data/lib/google/protobuf/wrappers.rb +48 -0
- data/lib/google/pubsub/v1/pubsub.rb +129 -0
- data/lib/google/pubsub/v1/pubsub_services.rb +56 -0
- data/lib/google/pubsub/v1beta2/pubsub.rb +126 -0
- data/lib/google/pubsub/v1beta2/pubsub_services.rb +56 -0
- data/lib/google/rpc/code.rb +32 -0
- data/lib/google/rpc/error_details.rb +61 -0
- data/lib/google/rpc/status.rb +19 -0
- data/lib/google/type/color.rb +20 -0
- data/lib/google/type/date.rb +18 -0
- data/lib/google/type/dayofweek.rb +23 -0
- data/lib/google/type/latlng.rb +17 -0
- data/lib/google/type/money.rb +18 -0
- data/lib/google/type/timeofday.rb +19 -0
- metadata +101 -4
- data/lib/gcloud/pubsub/connection.rb +0 -295
- data/lib/gcloud/pubsub/errors.rb +0 -93
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2015 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,13 +12,14 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "gcloud/credentials"
|
|
17
17
|
|
|
18
18
|
module Gcloud
|
|
19
19
|
module Pubsub
|
|
20
20
|
##
|
|
21
|
-
# Represents the OAuth 2.0 signing logic for Pub/Sub.
|
|
22
|
-
class Credentials < Gcloud::Credentials
|
|
21
|
+
# @private Represents the OAuth 2.0 signing logic for Pub/Sub.
|
|
22
|
+
class Credentials < Gcloud::Credentials
|
|
23
23
|
SCOPE = ["https://www.googleapis.com/auth/pubsub"]
|
|
24
24
|
PATH_ENV_VARS = %w(PUBSUB_KEYFILE GCLOUD_KEYFILE GOOGLE_CLOUD_KEYFILE)
|
|
25
25
|
JSON_ENV_VARS = %w(PUBSUB_KEYFILE_JSON GCLOUD_KEYFILE_JSON
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2015 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,20 +12,22 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
|
|
16
|
+
require "gcloud/errors"
|
|
17
17
|
|
|
18
18
|
module Gcloud
|
|
19
19
|
module Pubsub
|
|
20
20
|
##
|
|
21
|
-
#
|
|
21
|
+
# # Message
|
|
22
22
|
#
|
|
23
23
|
# Represents a Pub/Sub Message.
|
|
24
24
|
#
|
|
25
|
-
# Message objects are created by Topic#publish.
|
|
26
|
-
# Subscription#pull returns an array of ReceivedMessage objects, each of
|
|
27
|
-
# which contains a Message object. Each ReceivedMessage object can be
|
|
25
|
+
# Message objects are created by {Topic#publish}.
|
|
26
|
+
# {Subscription#pull} returns an array of {ReceivedMessage} objects, each of
|
|
27
|
+
# which contains a Message object. Each {ReceivedMessage} object can be
|
|
28
28
|
# acknowledged and/or delayed.
|
|
29
29
|
#
|
|
30
|
+
# @example
|
|
30
31
|
# require "gcloud"
|
|
31
32
|
#
|
|
32
33
|
# gcloud = Gcloud.new
|
|
@@ -44,45 +45,50 @@ module Gcloud
|
|
|
44
45
|
#
|
|
45
46
|
class Message
|
|
46
47
|
##
|
|
47
|
-
# The Google
|
|
48
|
-
attr_accessor :
|
|
48
|
+
# @private The gRPC Google::Pubsub::V1::PubsubMessage object.
|
|
49
|
+
attr_accessor :grpc
|
|
49
50
|
|
|
50
51
|
##
|
|
51
52
|
# Create an empty Message object.
|
|
52
53
|
# This can be used to publish several messages in bulk.
|
|
53
54
|
def initialize data = nil, attributes = {}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
# Convert attributes to strings to match the protobuf definition
|
|
56
|
+
attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }]
|
|
57
|
+
|
|
58
|
+
@grpc = Google::Pubsub::V1::PubsubMessage.new(
|
|
59
|
+
data: String(data).encode("ASCII-8BIT"),
|
|
60
|
+
attributes: attributes)
|
|
57
61
|
end
|
|
58
62
|
|
|
59
63
|
##
|
|
60
64
|
# The received data.
|
|
61
65
|
def data
|
|
62
|
-
@
|
|
66
|
+
@grpc.data
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
##
|
|
66
70
|
# The received attributes.
|
|
67
71
|
def attributes
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
return @grpc.attributes.to_h if @grpc.attributes.respond_to? :to_h
|
|
73
|
+
# Enumerable doesn't have to_h on Ruby 2.0, so fallback to this
|
|
74
|
+
Hash[@grpc.attributes.to_a]
|
|
71
75
|
end
|
|
72
76
|
|
|
73
77
|
##
|
|
74
78
|
# The ID of this message, assigned by the server at publication time.
|
|
75
79
|
# Guaranteed to be unique within the topic.
|
|
76
80
|
def message_id
|
|
77
|
-
@
|
|
81
|
+
@grpc.message_id
|
|
78
82
|
end
|
|
79
83
|
alias_method :msg_id, :message_id
|
|
80
84
|
|
|
81
85
|
##
|
|
82
|
-
# New
|
|
83
|
-
def self.
|
|
84
|
-
new.tap do |
|
|
85
|
-
|
|
86
|
+
# @private New Message from a Google::Pubsub::V1::PubsubMessage object.
|
|
87
|
+
def self.from_grpc grpc
|
|
88
|
+
new.tap do |m|
|
|
89
|
+
m.instance_eval do
|
|
90
|
+
@grpc = grpc
|
|
91
|
+
end
|
|
86
92
|
end
|
|
87
93
|
end
|
|
88
94
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2015 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,24 +12,28 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "gcloud/gce"
|
|
17
|
-
require "gcloud/
|
|
17
|
+
require "gcloud/errors"
|
|
18
|
+
require "gcloud/pubsub/service"
|
|
18
19
|
require "gcloud/pubsub/credentials"
|
|
19
|
-
require "gcloud/pubsub/errors"
|
|
20
20
|
require "gcloud/pubsub/topic"
|
|
21
21
|
|
|
22
22
|
module Gcloud
|
|
23
23
|
module Pubsub
|
|
24
24
|
##
|
|
25
|
-
#
|
|
25
|
+
# # Project
|
|
26
26
|
#
|
|
27
27
|
# Represents the project that pubsub messages are pushed to and pulled from.
|
|
28
|
-
# Topic is a named resource to which messages are sent by publishers.
|
|
29
|
-
# Subscription is a named resource representing the stream of messages
|
|
30
|
-
# a single, specific topic, to be delivered to the subscribing
|
|
31
|
-
# Message is a combination of data and attributes that a
|
|
32
|
-
# a topic and is eventually delivered to subscribers.
|
|
28
|
+
# {Topic} is a named resource to which messages are sent by publishers.
|
|
29
|
+
# {Subscription} is a named resource representing the stream of messages
|
|
30
|
+
# from a single, specific topic, to be delivered to the subscribing
|
|
31
|
+
# application. {Message} is a combination of data and attributes that a
|
|
32
|
+
# publisher sends to a topic and is eventually delivered to subscribers.
|
|
33
|
+
#
|
|
34
|
+
# See {Gcloud#pubsub}
|
|
33
35
|
#
|
|
36
|
+
# @example
|
|
34
37
|
# require "gcloud"
|
|
35
38
|
#
|
|
36
39
|
# gcloud = Gcloud.new
|
|
@@ -39,24 +42,22 @@ module Gcloud
|
|
|
39
42
|
# topic = pubsub.topic "my-topic"
|
|
40
43
|
# topic.publish "task completed"
|
|
41
44
|
#
|
|
42
|
-
# See Gcloud#pubsub
|
|
43
45
|
class Project
|
|
44
46
|
##
|
|
45
|
-
# The
|
|
46
|
-
attr_accessor :
|
|
47
|
+
# @private The gRPC Service object.
|
|
48
|
+
attr_accessor :service
|
|
47
49
|
|
|
48
50
|
##
|
|
49
|
-
# Creates a new Connection instance.
|
|
50
|
-
def initialize project, credentials
|
|
51
|
+
# @private Creates a new Connection instance.
|
|
52
|
+
def initialize project, credentials
|
|
51
53
|
project = project.to_s # Always cast to a string
|
|
52
54
|
fail ArgumentError, "project is missing" if project.empty?
|
|
53
|
-
@
|
|
55
|
+
@service = Service.new project, credentials
|
|
54
56
|
end
|
|
55
57
|
|
|
56
58
|
# The Pub/Sub project connected to.
|
|
57
59
|
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
+
# @example
|
|
60
61
|
# require "gcloud"
|
|
61
62
|
#
|
|
62
63
|
# gcloud = Gcloud.new "my-todo-project",
|
|
@@ -66,12 +67,12 @@ module Gcloud
|
|
|
66
67
|
# pubsub.project #=> "my-todo-project"
|
|
67
68
|
#
|
|
68
69
|
def project
|
|
69
|
-
|
|
70
|
+
service.project
|
|
70
71
|
end
|
|
71
72
|
|
|
72
73
|
##
|
|
73
|
-
# Default project.
|
|
74
|
-
def self.default_project
|
|
74
|
+
# @private Default project.
|
|
75
|
+
def self.default_project
|
|
75
76
|
ENV["PUBSUB_PROJECT"] ||
|
|
76
77
|
ENV["GCLOUD_PROJECT"] ||
|
|
77
78
|
ENV["GOOGLE_CLOUD_PROJECT"] ||
|
|
@@ -81,67 +82,54 @@ module Gcloud
|
|
|
81
82
|
##
|
|
82
83
|
# Retrieves topic by name.
|
|
83
84
|
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
#
|
|
90
|
-
#
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
#
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
# Gcloud::Pubsub::Topic or nil if topic does not exist. Will return a
|
|
105
|
-
# newly created Gcloud::Pubsub::Topic if the topic does not exist and
|
|
106
|
-
# +autocreate+ is set to +true+.
|
|
107
|
-
#
|
|
108
|
-
# === Examples
|
|
109
|
-
#
|
|
85
|
+
# The topic will be created if the topic does not exist and the
|
|
86
|
+
# `autocreate` option is set to true.
|
|
87
|
+
#
|
|
88
|
+
# @param [String] topic_name Name of a topic.
|
|
89
|
+
# @param [Boolean] autocreate Flag to control whether the requested topic
|
|
90
|
+
# will be created if it does not exist. Ignored if `skip_lookup` is
|
|
91
|
+
# `true`. The default value is `false`.
|
|
92
|
+
# @param [String] project If the topic belongs to a project other than the
|
|
93
|
+
# one currently connected to, the alternate project ID can be specified
|
|
94
|
+
# here.
|
|
95
|
+
# @param [Boolean] skip_lookup Optionally create a {Topic} object without
|
|
96
|
+
# verifying the topic resource exists on the Pub/Sub service. Calls made
|
|
97
|
+
# on this object will raise errors if the topic resource does not exist.
|
|
98
|
+
# Default is `false`.
|
|
99
|
+
#
|
|
100
|
+
# @return [Gcloud::Pubsub::Topic, nil] Returns `nil` if topic does not
|
|
101
|
+
# exist. Will return a newly created{ Gcloud::Pubsub::Topic} if the
|
|
102
|
+
# topic does not exist and `autocreate` is set to `true`.
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
110
105
|
# require "gcloud"
|
|
111
106
|
#
|
|
112
107
|
# gcloud = Gcloud.new
|
|
113
108
|
# pubsub = gcloud.pubsub
|
|
114
109
|
# topic = pubsub.topic "existing-topic"
|
|
115
110
|
#
|
|
116
|
-
# By default
|
|
117
|
-
# the topic will be created in Pub/Sub when needed.
|
|
118
|
-
#
|
|
111
|
+
# @example By default `nil` will be returned if the topic does not exist.
|
|
119
112
|
# require "gcloud"
|
|
120
113
|
#
|
|
121
114
|
# gcloud = Gcloud.new
|
|
122
115
|
# pubsub = gcloud.pubsub
|
|
123
116
|
# topic = pubsub.topic "non-existing-topic" #=> nil
|
|
124
117
|
#
|
|
125
|
-
#
|
|
126
|
-
# +autocreate+ option is set to true.
|
|
127
|
-
#
|
|
118
|
+
# @example With the `autocreate` option set to `true`.
|
|
128
119
|
# require "gcloud"
|
|
129
120
|
#
|
|
130
121
|
# gcloud = Gcloud.new
|
|
131
122
|
# pubsub = gcloud.pubsub
|
|
132
123
|
# topic = pubsub.topic "non-existing-topic", autocreate: true
|
|
133
124
|
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
125
|
+
# @example Create a topic in a different project with the `project` flag.
|
|
136
126
|
# require "gcloud"
|
|
137
127
|
#
|
|
138
128
|
# gcloud = Gcloud.new
|
|
139
129
|
# pubsub = gcloud.pubsub
|
|
140
130
|
# topic = pubsub.topic "another-topic", project: "another-project"
|
|
141
131
|
#
|
|
142
|
-
#
|
|
143
|
-
# +skip_lookup+ option:
|
|
144
|
-
#
|
|
132
|
+
# @example Skip the lookup against the service with `skip_lookup`:
|
|
145
133
|
# require "gcloud"
|
|
146
134
|
#
|
|
147
135
|
# gcloud = Gcloud.new
|
|
@@ -149,16 +137,17 @@ module Gcloud
|
|
|
149
137
|
# topic = pubsub.topic "another-topic", skip_lookup: true
|
|
150
138
|
#
|
|
151
139
|
def topic topic_name, autocreate: nil, project: nil, skip_lookup: nil
|
|
152
|
-
|
|
140
|
+
ensure_service!
|
|
153
141
|
options = { project: project }
|
|
154
|
-
return Topic.new_lazy(topic_name,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
142
|
+
return Topic.new_lazy(topic_name, service, options) if skip_lookup
|
|
143
|
+
grpc = service.get_topic topic_name
|
|
144
|
+
Topic.from_grpc grpc, service
|
|
145
|
+
rescue GRPC::BadStatus => e
|
|
146
|
+
if e.code == 5
|
|
158
147
|
return create_topic(topic_name) if autocreate
|
|
159
148
|
return nil
|
|
160
149
|
end
|
|
161
|
-
|
|
150
|
+
raise Error.from_error(e)
|
|
162
151
|
end
|
|
163
152
|
alias_method :get_topic, :topic
|
|
164
153
|
alias_method :find_topic, :topic
|
|
@@ -166,17 +155,11 @@ module Gcloud
|
|
|
166
155
|
##
|
|
167
156
|
# Creates a new topic.
|
|
168
157
|
#
|
|
169
|
-
#
|
|
170
|
-
#
|
|
171
|
-
# +topic_name+::
|
|
172
|
-
# Name of a topic. (+String+)
|
|
173
|
-
#
|
|
174
|
-
# === Returns
|
|
158
|
+
# @param [String] topic_name Name of a topic.
|
|
175
159
|
#
|
|
176
|
-
# Gcloud::Pubsub::Topic
|
|
177
|
-
#
|
|
178
|
-
# === Examples
|
|
160
|
+
# @return [Gcloud::Pubsub::Topic]
|
|
179
161
|
#
|
|
162
|
+
# @example
|
|
180
163
|
# require "gcloud"
|
|
181
164
|
#
|
|
182
165
|
# gcloud = Gcloud.new
|
|
@@ -184,34 +167,26 @@ module Gcloud
|
|
|
184
167
|
# topic = pubsub.create_topic "my-topic"
|
|
185
168
|
#
|
|
186
169
|
def create_topic topic_name
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
fail ApiError.from_response(resp)
|
|
193
|
-
end
|
|
170
|
+
ensure_service!
|
|
171
|
+
grpc = service.create_topic topic_name
|
|
172
|
+
Topic.from_grpc grpc, service
|
|
173
|
+
rescue GRPC::BadStatus => e
|
|
174
|
+
raise Error.from_error(e)
|
|
194
175
|
end
|
|
195
176
|
alias_method :new_topic, :create_topic
|
|
196
177
|
|
|
197
178
|
##
|
|
198
179
|
# Retrieves a list of topics for the given project.
|
|
199
180
|
#
|
|
200
|
-
#
|
|
181
|
+
# @param [String] token The `token` value returned by the last call to
|
|
182
|
+
# `topics`; indicates that this is a continuation of a call, and that
|
|
183
|
+
# the system should return the next page of data.
|
|
184
|
+
# @param [Integer] max Maximum number of topics to return.
|
|
201
185
|
#
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
# that this is a continuation of a call, and that the system should
|
|
205
|
-
# return the next page of data. (+String+)
|
|
206
|
-
# +max+::
|
|
207
|
-
# Maximum number of topics to return. (+Integer+)
|
|
208
|
-
#
|
|
209
|
-
# === Returns
|
|
210
|
-
#
|
|
211
|
-
# Array of Gcloud::Pubsub::Topic (See Gcloud::Pubsub::Topic::List)
|
|
212
|
-
#
|
|
213
|
-
# === Examples
|
|
186
|
+
# @return [Array<Gcloud::Pubsub::Topic>] (See
|
|
187
|
+
# {Gcloud::Pubsub::Topic::List})
|
|
214
188
|
#
|
|
189
|
+
# @example
|
|
215
190
|
# require "gcloud"
|
|
216
191
|
#
|
|
217
192
|
# gcloud = Gcloud.new
|
|
@@ -222,9 +197,7 @@ module Gcloud
|
|
|
222
197
|
# puts topic.name
|
|
223
198
|
# end
|
|
224
199
|
#
|
|
225
|
-
#
|
|
226
|
-
# through them: (See Topic::List#token)
|
|
227
|
-
#
|
|
200
|
+
# @example With pagination: (See {Topic::List#token})
|
|
228
201
|
# require "gcloud"
|
|
229
202
|
#
|
|
230
203
|
# gcloud = Gcloud.new
|
|
@@ -243,40 +216,37 @@ module Gcloud
|
|
|
243
216
|
# end
|
|
244
217
|
#
|
|
245
218
|
def topics token: nil, max: nil
|
|
246
|
-
|
|
219
|
+
ensure_service!
|
|
247
220
|
options = { token: token, max: max }
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
fail ApiError.from_response(resp)
|
|
253
|
-
end
|
|
221
|
+
grpc = service.list_topics options
|
|
222
|
+
Topic::List.from_grpc grpc, service
|
|
223
|
+
rescue GRPC::BadStatus => e
|
|
224
|
+
raise Error.from_error(e)
|
|
254
225
|
end
|
|
255
226
|
alias_method :find_topics, :topics
|
|
256
227
|
alias_method :list_topics, :topics
|
|
257
228
|
|
|
258
229
|
##
|
|
259
|
-
# Publishes one or more messages to the given topic.
|
|
230
|
+
# Publishes one or more messages to the given topic. The topic will be
|
|
231
|
+
# created if the topic does previously not exist and the `autocreate`
|
|
232
|
+
# option is provided.
|
|
260
233
|
#
|
|
261
|
-
#
|
|
262
|
-
#
|
|
263
|
-
# +topic_name+::
|
|
264
|
-
# Name of a topic. (+String+)
|
|
265
|
-
# +data+::
|
|
266
|
-
# The message data. (+String+)
|
|
267
|
-
# +attributes+::
|
|
268
|
-
# Optional attributes for the message. (+Hash+)
|
|
269
|
-
# <code>attributes[:autocreate]</code>::
|
|
270
|
-
# Flag to control whether the provided topic will be created if it does
|
|
271
|
-
# not exist.
|
|
272
|
-
#
|
|
273
|
-
# === Returns
|
|
234
|
+
# A note about auto-creating the topic: Any message published to a topic
|
|
235
|
+
# without a subscription will be lost.
|
|
274
236
|
#
|
|
275
|
-
#
|
|
276
|
-
#
|
|
237
|
+
# @param [String] topic_name Name of a topic.
|
|
238
|
+
# @param [String] data The message data.
|
|
239
|
+
# @param [Hash] attributes Optional attributes for the message.
|
|
240
|
+
# @option attributes [Boolean] :autocreate Flag to control whether the
|
|
241
|
+
# provided topic will be created if it does not exist.
|
|
242
|
+
# @yield [batch] a block for publishing multiple messages in one request
|
|
243
|
+
# @yieldparam [Topic::Batch] batch the batch object
|
|
277
244
|
#
|
|
278
|
-
#
|
|
245
|
+
# @return [Message, Array<Message>] Returns the published message when
|
|
246
|
+
# called without a block, or an array of messages when called with a
|
|
247
|
+
# block.
|
|
279
248
|
#
|
|
249
|
+
# @example
|
|
280
250
|
# require "gcloud"
|
|
281
251
|
#
|
|
282
252
|
# gcloud = Gcloud.new
|
|
@@ -284,8 +254,7 @@ module Gcloud
|
|
|
284
254
|
#
|
|
285
255
|
# msg = pubsub.publish "my-topic", "new-message"
|
|
286
256
|
#
|
|
287
|
-
# Additionally, a message can be published with attributes:
|
|
288
|
-
#
|
|
257
|
+
# @example Additionally, a message can be published with attributes:
|
|
289
258
|
# require "gcloud"
|
|
290
259
|
#
|
|
291
260
|
# gcloud = Gcloud.new
|
|
@@ -294,8 +263,7 @@ module Gcloud
|
|
|
294
263
|
# msg = pubsub.publish "my-topic", "new-message", foo: :bar,
|
|
295
264
|
# this: :that
|
|
296
265
|
#
|
|
297
|
-
# Multiple messages can be
|
|
298
|
-
#
|
|
266
|
+
# @example Multiple messages can be sent at the same time using a block:
|
|
299
267
|
# require "gcloud"
|
|
300
268
|
#
|
|
301
269
|
# gcloud = Gcloud.new
|
|
@@ -307,9 +275,7 @@ module Gcloud
|
|
|
307
275
|
# batch.publish "new-message-3", foo: :bif
|
|
308
276
|
# end
|
|
309
277
|
#
|
|
310
|
-
#
|
|
311
|
-
# exist and the +autocreate+ option is provided.
|
|
312
|
-
#
|
|
278
|
+
# @example With `autocreate`:
|
|
313
279
|
# require "gcloud"
|
|
314
280
|
#
|
|
315
281
|
# gcloud = Gcloud.new
|
|
@@ -317,9 +283,6 @@ module Gcloud
|
|
|
317
283
|
#
|
|
318
284
|
# msg = pubsub.publish "new-topic", "new-message", autocreate: true
|
|
319
285
|
#
|
|
320
|
-
# A note about auto-creating the topic: Any message published to a topic
|
|
321
|
-
# without a subscription will be lost.
|
|
322
|
-
#
|
|
323
286
|
def publish topic_name, data = nil, attributes = {}
|
|
324
287
|
# Fix parameters
|
|
325
288
|
if data.is_a?(::Hash) && attributes.empty?
|
|
@@ -328,7 +291,7 @@ module Gcloud
|
|
|
328
291
|
end
|
|
329
292
|
# extract autocreate option
|
|
330
293
|
autocreate = attributes.delete :autocreate
|
|
331
|
-
|
|
294
|
+
ensure_service!
|
|
332
295
|
batch = Topic::Batch.new data, attributes
|
|
333
296
|
yield batch if block_given?
|
|
334
297
|
return nil if batch.messages.count.zero?
|
|
@@ -336,34 +299,27 @@ module Gcloud
|
|
|
336
299
|
end
|
|
337
300
|
|
|
338
301
|
##
|
|
339
|
-
# Creates a new Subscription object for the provided topic.
|
|
340
|
-
#
|
|
341
|
-
#
|
|
342
|
-
#
|
|
343
|
-
#
|
|
344
|
-
#
|
|
345
|
-
#
|
|
346
|
-
#
|
|
347
|
-
#
|
|
348
|
-
#
|
|
349
|
-
#
|
|
350
|
-
#
|
|
351
|
-
#
|
|
352
|
-
#
|
|
353
|
-
#
|
|
354
|
-
#
|
|
355
|
-
#
|
|
356
|
-
#
|
|
357
|
-
#
|
|
358
|
-
#
|
|
359
|
-
#
|
|
360
|
-
#
|
|
361
|
-
# === Returns
|
|
362
|
-
#
|
|
363
|
-
# Gcloud::Pubsub::Subscription
|
|
364
|
-
#
|
|
365
|
-
# === Examples
|
|
366
|
-
#
|
|
302
|
+
# Creates a new {Subscription} object for the provided topic. The topic
|
|
303
|
+
# will be created if the topic does previously not exist and the
|
|
304
|
+
# `autocreate` option is provided.
|
|
305
|
+
#
|
|
306
|
+
# @param [String] topic_name Name of a topic.
|
|
307
|
+
# @param [String] subscription_name Name of the new subscription. Must
|
|
308
|
+
# start with a letter, and contain only letters ([A-Za-z]), numbers
|
|
309
|
+
# ([0-9], dashes (-), underscores (_), periods (.), tildes (~), plus (+)
|
|
310
|
+
# or percent signs (%). It must be between 3 and 255 characters in
|
|
311
|
+
# length, and it must not start with "goog".
|
|
312
|
+
# @param [Integer] deadline The maximum number of seconds after a
|
|
313
|
+
# subscriber receives a message before the subscriber should acknowledge
|
|
314
|
+
# the message.
|
|
315
|
+
# @param [String] endpoint A URL locating the endpoint to which messages
|
|
316
|
+
# should be pushed.
|
|
317
|
+
# @param [String] autocreate Flag to control whether the topic will be
|
|
318
|
+
# created if it does not exist.
|
|
319
|
+
#
|
|
320
|
+
# @return [Gcloud::Pubsub::Subscription]
|
|
321
|
+
#
|
|
322
|
+
# @example
|
|
367
323
|
# require "gcloud"
|
|
368
324
|
#
|
|
369
325
|
# gcloud = Gcloud.new
|
|
@@ -372,8 +328,7 @@ module Gcloud
|
|
|
372
328
|
# sub = pubsub.subscribe "my-topic", "my-topic-sub"
|
|
373
329
|
# puts sub.name # => "my-topic-sub"
|
|
374
330
|
#
|
|
375
|
-
# The name is optional, and will be generated if not given.
|
|
376
|
-
#
|
|
331
|
+
# @example The name is optional, and will be generated if not given.
|
|
377
332
|
# require "gcloud"
|
|
378
333
|
#
|
|
379
334
|
# gcloud = Gcloud.new
|
|
@@ -382,9 +337,7 @@ module Gcloud
|
|
|
382
337
|
# sub = pubsub.subscribe "my-topic"
|
|
383
338
|
# puts sub.name # => "generated-sub-name"
|
|
384
339
|
#
|
|
385
|
-
#
|
|
386
|
-
# acknowledgement and pushed all messages to an endpoint
|
|
387
|
-
#
|
|
340
|
+
# @example Wait 2 minutes for acknowledgement and push all to an endpoint:
|
|
388
341
|
# require "gcloud"
|
|
389
342
|
#
|
|
390
343
|
# gcloud = Gcloud.new
|
|
@@ -394,9 +347,7 @@ module Gcloud
|
|
|
394
347
|
# deadline: 120,
|
|
395
348
|
# endpoint: "https://example.com/push"
|
|
396
349
|
#
|
|
397
|
-
#
|
|
398
|
-
# exist and the +autocreate+ option is provided.
|
|
399
|
-
#
|
|
350
|
+
# @example With `autocreate`:
|
|
400
351
|
# require "gcloud"
|
|
401
352
|
#
|
|
402
353
|
# gcloud = Gcloud.new
|
|
@@ -406,18 +357,19 @@ module Gcloud
|
|
|
406
357
|
#
|
|
407
358
|
def subscribe topic_name, subscription_name, deadline: nil, endpoint: nil,
|
|
408
359
|
autocreate: nil
|
|
409
|
-
|
|
360
|
+
ensure_service!
|
|
410
361
|
options = { deadline: deadline, endpoint: endpoint }
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
362
|
+
grpc = service.create_subscription topic_name,
|
|
363
|
+
subscription_name, options
|
|
364
|
+
Subscription.from_grpc grpc, service
|
|
365
|
+
rescue GRPC::BadStatus => e
|
|
366
|
+
if autocreate && e.code == 5
|
|
415
367
|
create_topic topic_name
|
|
416
368
|
return subscribe(topic_name, subscription_name,
|
|
417
369
|
deadline: deadline, endpoint: endpoint,
|
|
418
370
|
autocreate: false)
|
|
419
371
|
end
|
|
420
|
-
|
|
372
|
+
raise Error.from_error(e)
|
|
421
373
|
end
|
|
422
374
|
alias_method :create_subscription, :subscribe
|
|
423
375
|
alias_method :new_subscription, :subscribe
|
|
@@ -425,26 +377,19 @@ module Gcloud
|
|
|
425
377
|
##
|
|
426
378
|
# Retrieves subscription by name.
|
|
427
379
|
#
|
|
428
|
-
#
|
|
429
|
-
#
|
|
430
|
-
#
|
|
431
|
-
#
|
|
432
|
-
#
|
|
433
|
-
#
|
|
434
|
-
#
|
|
435
|
-
#
|
|
436
|
-
# +skip_lookup+::
|
|
437
|
-
# Optionally create a Subscription object without verifying the
|
|
438
|
-
# subscription resource exists on the Pub/Sub service. Calls made on
|
|
439
|
-
# this object will raise errors if the service resource does not exist.
|
|
440
|
-
# Default is +false+. (+Boolean+)
|
|
380
|
+
# @param [String] subscription_name Name of a subscription.
|
|
381
|
+
# @param [String] project If the subscription belongs to a project other
|
|
382
|
+
# than the one currently connected to, the alternate project ID can be
|
|
383
|
+
# specified here.
|
|
384
|
+
# @param [Boolean] skip_lookup Optionally create a {Subscription} object
|
|
385
|
+
# without verifying the subscription resource exists on the Pub/Sub
|
|
386
|
+
# service. Calls made on this object will raise errors if the service
|
|
387
|
+
# resource does not exist. Default is `false`.
|
|
441
388
|
#
|
|
442
|
-
#
|
|
443
|
-
#
|
|
444
|
-
# Gcloud::Pubsub::Subscription or +nil+ if the subscription does not exist
|
|
445
|
-
#
|
|
446
|
-
# === Example
|
|
389
|
+
# @return [Gcloud::Pubsub::Subscription, nil] Returns `nil` if the
|
|
390
|
+
# subscription does not exist
|
|
447
391
|
#
|
|
392
|
+
# @example
|
|
448
393
|
# require "gcloud"
|
|
449
394
|
#
|
|
450
395
|
# gcloud = Gcloud.new
|
|
@@ -453,9 +398,7 @@ module Gcloud
|
|
|
453
398
|
# subscription = pubsub.subscription "my-sub"
|
|
454
399
|
# puts subscription.name
|
|
455
400
|
#
|
|
456
|
-
#
|
|
457
|
-
# +skip_lookup+ option:
|
|
458
|
-
#
|
|
401
|
+
# @example Skip the lookup against the service with `skip_lookup`:
|
|
459
402
|
# require "gcloud"
|
|
460
403
|
#
|
|
461
404
|
# gcloud = Gcloud.new
|
|
@@ -466,15 +409,16 @@ module Gcloud
|
|
|
466
409
|
# puts subscription.name
|
|
467
410
|
#
|
|
468
411
|
def subscription subscription_name, project: nil, skip_lookup: nil
|
|
469
|
-
|
|
412
|
+
ensure_service!
|
|
470
413
|
options = { project: project }
|
|
471
414
|
if skip_lookup
|
|
472
|
-
return Subscription.new_lazy
|
|
415
|
+
return Subscription.new_lazy subscription_name, service, options
|
|
473
416
|
end
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
417
|
+
grpc = service.get_subscription subscription_name
|
|
418
|
+
Subscription.from_grpc grpc, service
|
|
419
|
+
rescue GRPC::BadStatus => e
|
|
420
|
+
return nil if e.code == 5
|
|
421
|
+
raise Error.from_error(e)
|
|
478
422
|
end
|
|
479
423
|
alias_method :get_subscription, :subscription
|
|
480
424
|
alias_method :find_subscription, :subscription
|
|
@@ -482,24 +426,16 @@ module Gcloud
|
|
|
482
426
|
##
|
|
483
427
|
# Retrieves a list of subscriptions for the given project.
|
|
484
428
|
#
|
|
485
|
-
#
|
|
429
|
+
# @param [String] prefix Filter results to subscriptions whose names begin
|
|
430
|
+
# with this prefix.
|
|
431
|
+
# @param [String] token A previously-returned page token representing part
|
|
432
|
+
# of the larger set of results to view.
|
|
433
|
+
# @param [Integer] max Maximum number of subscriptions to return.
|
|
486
434
|
#
|
|
487
|
-
#
|
|
488
|
-
#
|
|
489
|
-
# (+String+)
|
|
490
|
-
# +token+::
|
|
491
|
-
# A previously-returned page token representing part of the larger set
|
|
492
|
-
# of results to view. (+String+)
|
|
493
|
-
# +max+::
|
|
494
|
-
# Maximum number of subscriptions to return. (+Integer+)
|
|
495
|
-
#
|
|
496
|
-
# === Returns
|
|
497
|
-
#
|
|
498
|
-
# Array of Gcloud::Pubsub::Subscription
|
|
499
|
-
# (See Gcloud::Pubsub::Subscription::List)
|
|
500
|
-
#
|
|
501
|
-
# === Examples
|
|
435
|
+
# @return [Array<Gcloud::Pubsub::Subscription>] (See
|
|
436
|
+
# {Gcloud::Pubsub::Subscription::List})
|
|
502
437
|
#
|
|
438
|
+
# @example
|
|
503
439
|
# require "gcloud"
|
|
504
440
|
#
|
|
505
441
|
# gcloud = Gcloud.new
|
|
@@ -510,9 +446,7 @@ module Gcloud
|
|
|
510
446
|
# puts subscription.name
|
|
511
447
|
# end
|
|
512
448
|
#
|
|
513
|
-
#
|
|
514
|
-
# paginate through them: (See Subscription::List#token)
|
|
515
|
-
#
|
|
449
|
+
# @example With pagination: (See {Subscription::List#token})
|
|
516
450
|
# require "gcloud"
|
|
517
451
|
#
|
|
518
452
|
# gcloud = Gcloud.new
|
|
@@ -531,14 +465,12 @@ module Gcloud
|
|
|
531
465
|
# end
|
|
532
466
|
#
|
|
533
467
|
def subscriptions prefix: nil, token: nil, max: nil
|
|
534
|
-
|
|
468
|
+
ensure_service!
|
|
535
469
|
options = { prefix: prefix, token: token, max: max }
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
fail ApiError.from_response(resp)
|
|
541
|
-
end
|
|
470
|
+
grpc = service.list_subscriptions options
|
|
471
|
+
Subscription::List.from_grpc grpc, service
|
|
472
|
+
rescue GRPC::BadStatus => e
|
|
473
|
+
raise Error.from_error(e)
|
|
542
474
|
end
|
|
543
475
|
alias_method :find_subscriptions, :subscriptions
|
|
544
476
|
alias_method :list_subscriptions, :subscriptions
|
|
@@ -546,22 +478,23 @@ module Gcloud
|
|
|
546
478
|
protected
|
|
547
479
|
|
|
548
480
|
##
|
|
549
|
-
# Raise an error unless an active connection is
|
|
550
|
-
|
|
551
|
-
|
|
481
|
+
# @private Raise an error unless an active connection to the service is
|
|
482
|
+
# available.
|
|
483
|
+
def ensure_service!
|
|
484
|
+
fail "Must have active connection to service" unless service
|
|
552
485
|
end
|
|
553
486
|
|
|
554
487
|
##
|
|
555
488
|
# Call the publish API with arrays of data data and attrs.
|
|
556
489
|
def publish_batch_messages topic_name, batch, autocreate = false
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
490
|
+
grpc = service.publish topic_name, batch.messages
|
|
491
|
+
batch.to_gcloud_messages Array(grpc.message_ids)
|
|
492
|
+
rescue GRPC::BadStatus => e
|
|
493
|
+
if autocreate && e.code == 5
|
|
561
494
|
create_topic topic_name
|
|
562
495
|
publish_batch_messages topic_name, batch, false
|
|
563
496
|
else
|
|
564
|
-
|
|
497
|
+
raise Error.from_error(e)
|
|
565
498
|
end
|
|
566
499
|
end
|
|
567
500
|
end
|