Skip to content

Commit f03f7e0

Browse files
author
remi Taylor
authored
Merge pull request #78 from GoogleCloudPlatform/add-pubsub-snippets-for-deletions
Add Pub/Sub snippets for deleting topics and subscriptions
2 parents 070bfb2 + c7c5291 commit f03f7e0

File tree

2 files changed

+65
-15
lines changed

2 files changed

+65
-15
lines changed

pubsub/sample.rb

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,48 @@ def create_topic
3030
# [END create_topic]
3131
end
3232

33+
def delete_topic
34+
# [START delete_topic]
35+
gcloud = Google::Cloud.new "my-gcp-project-id"
36+
pubsub = gcloud.pubsub
37+
topic = pubsub.topic "my-topic"
38+
39+
topic.delete
40+
41+
puts "Deleted topic my-topic"
42+
# [END delete_topic]
43+
end
44+
3345
def create_subscription
3446
# [START create_subscription]
3547
gcloud = Google::Cloud.new "my-gcp-project-id"
3648
pubsub = gcloud.pubsub
37-
topic = pubsub.topic "my-topic"
49+
topic = pubsub.topic "my-topic"
3850

3951
subscription = topic.subscribe "my-subscription"
4052

4153
puts "Subscription created #{subscription.name}"
4254
# [END create_subscription]
4355
end
4456

57+
def delete_subscription
58+
# [START delete_subscription]
59+
gcloud = Google::Cloud.new "my-gcp-project-id"
60+
pubsub = gcloud.pubsub
61+
topic = pubsub.topic "my-topic"
62+
subscription = topic.subscription "my-subscription"
63+
64+
subscription.delete
65+
66+
puts "Deleted subscription my-subscription"
67+
# [END delete_subscription]
68+
end
69+
4570
def create_push_subscription
4671
# [START create_push_subscription]
4772
gcloud = Google::Cloud.new "my-gcp-project-id"
4873
pubsub = gcloud.pubsub
49-
topic = pubsub.topic "my-topic"
74+
topic = pubsub.topic "my-topic"
5075

5176
subscription = topic.subscribe(
5277
"my-subscription-push",
@@ -69,8 +94,8 @@ def publish_message
6994

7095
def pull_messages
7196
# [START pull_messages]
72-
gcloud = Google::Cloud.new "my-gcp-project-id"
73-
pubsub = gcloud.pubsub
97+
gcloud = Google::Cloud.new "my-gcp-project-id"
98+
pubsub = gcloud.pubsub
7499
subscription = pubsub.subscription "my-subscription"
75100

76101
puts "Messages pulled:"
@@ -96,8 +121,8 @@ def list_topics
96121

97122
def list_subscriptions
98123
# [START list_subscriptions]
99-
gcloud = Google::Cloud.new "my-gcp-project-id"
100-
pubsub = gcloud.pubsub
124+
gcloud = Google::Cloud.new "my-gcp-project-id"
125+
pubsub = gcloud.pubsub
101126
subscriptions = pubsub.subscriptions
102127

103128
puts "Subscriptions:"
@@ -111,7 +136,7 @@ def get_topic_policy
111136
# [START get_topic_policy]
112137
gcloud = Google::Cloud.new "my-gcp-project-id"
113138
pubsub = gcloud.pubsub
114-
topic = pubsub.topic "my-topic"
139+
topic = pubsub.topic "my-topic"
115140

116141
policy = topic.policy
117142

@@ -122,8 +147,8 @@ def get_topic_policy
122147

123148
def get_subscription_policy
124149
# [START get_subscription_policy]
125-
gcloud = Google::Cloud.new "my-gcp-project-id"
126-
pubsub = gcloud.pubsub
150+
gcloud = Google::Cloud.new "my-gcp-project-id"
151+
pubsub = gcloud.pubsub
127152
subscription = pubsub.subscription "my-subscription"
128153

129154
policy = subscription.policy
@@ -135,8 +160,8 @@ def get_subscription_policy
135160

136161
def set_subscription_policy
137162
# [START set_subscription_policy]
138-
gcloud = Google::Cloud.new "my-gcp-project-id"
139-
pubsub = gcloud.pubsub
163+
gcloud = Google::Cloud.new "my-gcp-project-id"
164+
pubsub = gcloud.pubsub
140165
subscription = pubsub.subscription "my-subscription"
141166

142167
policy = subscription.policy do |p|
@@ -152,7 +177,7 @@ def set_topic_policy
152177
# [START set_topic_policy]
153178
gcloud = Google::Cloud.new "my-gcp-project-id"
154179
pubsub = gcloud.pubsub
155-
topic = pubsub.topic "my-topic"
180+
topic = pubsub.topic "my-topic"
156181

157182
policy = topic.policy do |p|
158183
p.add "roles/pubsub.publisher",
@@ -165,8 +190,8 @@ def set_topic_policy
165190

166191
def test_subscription_permissions
167192
# [START test_subscription_permissions]
168-
gcloud = Google::Cloud.new "my-gcp-project-id"
169-
pubsub = gcloud.pubsub
193+
gcloud = Google::Cloud.new "my-gcp-project-id"
194+
pubsub = gcloud.pubsub
170195
subscription = pubsub.subscription "my-subscription"
171196

172197
permissions = subscription.test_permissions "pubsub.subscriptions.consume",
@@ -181,7 +206,7 @@ def test_topic_permissions
181206
# [START test_topic_permissions]
182207
gcloud = Google::Cloud.new "my-gcp-project-id"
183208
pubsub = gcloud.pubsub
184-
topic = pubsub.topic "my-topic"
209+
topic = pubsub.topic "my-topic"
185210

186211
permissions = topic.test_permissions "pubsub.topics.attachSubscription",
187212
"pubsub.topics.publish",

pubsub/spec/sample_spec.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ def expect_with_retry attempts: 5
6161
expect(topic.name).to include(TOPIC_NAME)
6262
end
6363

64+
it "deletes topic" do
65+
@pubsub.create_topic TOPIC_NAME
66+
expect(@pubsub.topic TOPIC_NAME).not_to be nil
67+
68+
expect { delete_topic }.to output("Deleted topic #{TOPIC_NAME}\n").to_stdout
69+
70+
expect(@pubsub.topic TOPIC_NAME).to be nil
71+
end
72+
6473
it "creates subscription" do
6574
expect(@pubsub.subscription(SUBSCRIPTION_NAME)).to be nil
6675
@pubsub.create_topic TOPIC_NAME
@@ -74,6 +83,22 @@ def expect_with_retry attempts: 5
7483
expect(subscription.topic.name).to include(TOPIC_NAME)
7584
end
7685

86+
it "deletes subscription" do
87+
topic = @pubsub.create_topic TOPIC_NAME
88+
@pubsub.create_subscription(
89+
TOPIC_NAME,
90+
SUBSCRIPTION_NAME,
91+
autocreate: true
92+
)
93+
expect(topic.subscription SUBSCRIPTION_NAME).not_to be nil
94+
95+
expect { delete_subscription }.to output(
96+
"Deleted subscription #{SUBSCRIPTION_NAME}\n"
97+
).to_stdout
98+
99+
expect(topic.subscription SUBSCRIPTION_NAME).to be nil
100+
end
101+
77102
it "creates push subscription" do
78103
subscription_name = "my-subscription-push"
79104

0 commit comments

Comments
 (0)