27
27
from google .cloud import pubsub_v1
28
28
29
29
30
- def list_subscriptions (project , topic_name ):
30
+ def list_subscriptions_in_topic (project , topic_name ):
31
31
"""Lists all subscriptions for a given topic."""
32
32
subscriber = pubsub_v1 .SubscriberClient ()
33
33
topic_path = subscriber .topic_path (project , topic_name )
@@ -36,6 +36,15 @@ def list_subscriptions(project, topic_name):
36
36
print (subscription .name )
37
37
38
38
39
+ def list_subscriptions_in_project (project ):
40
+ """Lists all subscriptions in the current project."""
41
+ subscriber = pubsub_v1 .SubscriberClient ()
42
+ project_path = subscriber .project_path (project )
43
+
44
+ for subscription in subscriber .list_subscriptions (project_path ):
45
+ print (subscription .name )
46
+
47
+
39
48
def create_subscription (project , topic_name , subscription_name ):
40
49
"""Create a new pull subscription on the given topic."""
41
50
subscriber = pubsub_v1 .SubscriberClient ()
@@ -109,9 +118,12 @@ def callback(message):
109
118
parser .add_argument ('project' , help = 'Your Google Cloud project ID' )
110
119
111
120
subparsers = parser .add_subparsers (dest = 'command' )
112
- list_parser = subparsers .add_parser (
113
- 'list' , help = list_subscriptions .__doc__ )
114
- list_parser .add_argument ('topic_name' )
121
+ list_in_topic_parser = subparsers .add_parser (
122
+ 'list_in_topic' , help = list_subscriptions_in_topic .__doc__ )
123
+ list_in_topic_parser .add_argument ('topic_name' )
124
+
125
+ list_in_project_parser = subparsers .add_parser (
126
+ 'list_in_project' , help = list_subscriptions_in_project .__doc__ )
115
127
116
128
create_parser = subparsers .add_parser (
117
129
'create' , help = create_subscription .__doc__ )
@@ -133,8 +145,10 @@ def callback(message):
133
145
134
146
args = parser .parse_args ()
135
147
136
- if args .command == 'list' :
137
- list_subscriptions (args .project , args .topic_name )
148
+ if args .command == 'list_in_topic' :
149
+ list_subscriptions_in_topic (args .project , args .topic_name )
150
+ elif args .command == 'list_in_project' :
151
+ list_subscriptions_in_project (args .project )
138
152
elif args .command == 'create' :
139
153
create_subscription (
140
154
args .project , args .topic_name , args .subscription_name )
0 commit comments