2727from google .cloud import pubsub_v1
2828
2929
30- def list_subscriptions (project , topic_name ):
30+ def list_subscriptions_in_topic (project , topic_name ):
3131 """Lists all subscriptions for a given topic."""
3232 subscriber = pubsub_v1 .SubscriberClient ()
3333 topic_path = subscriber .topic_path (project , topic_name )
@@ -36,6 +36,15 @@ def list_subscriptions(project, topic_name):
3636 print (subscription .name )
3737
3838
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+
3948def create_subscription (project , topic_name , subscription_name ):
4049 """Create a new pull subscription on the given topic."""
4150 subscriber = pubsub_v1 .SubscriberClient ()
@@ -109,9 +118,12 @@ def callback(message):
109118 parser .add_argument ('project' , help = 'Your Google Cloud project ID' )
110119
111120 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__ )
115127
116128 create_parser = subparsers .add_parser (
117129 'create' , help = create_subscription .__doc__ )
@@ -133,8 +145,10 @@ def callback(message):
133145
134146 args = parser .parse_args ()
135147
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 )
138152 elif args .command == 'create' :
139153 create_subscription (
140154 args .project , args .topic_name , args .subscription_name )
0 commit comments