diff --git a/gcloud/pubsub/client.py b/gcloud/pubsub/client.py index 3a47e6d6a8a0..445d1a90132b 100644 --- a/gcloud/pubsub/client.py +++ b/gcloud/pubsub/client.py @@ -125,10 +125,18 @@ def list_subscriptions(self, page_size=None, page_token=None, resp = self.connection.api_request(method='GET', path=path, query_params=params) + topics = {} - subscriptions = [Subscription.from_api_repr(resource, self, - topics=topics) - for resource in resp['subscriptions']] + subscriptions = [] + for resource in resp['subscriptions']: + if isinstance(resource, dict) and 'topic' in resource and len(resource['topic'].split('/')) == 4: + subscriptions.append(Subscription.from_api_repr(resource, self, topics=topics)) + elif topic_name and len(resource.split('/')) == 4: + subscription_name = resource.split('/')[3] + subscriptions.append(Subscription( + name=subscription_name, + topic=self.topic(topic_name) + )) return subscriptions, resp.get('nextPageToken') def topic(self, name, timestamp_messages=False): diff --git a/setup.py b/setup.py index 0cd32748c562..863eeaded877 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ setup( name='gcloud', - version='0.8.0', + version='0.8.2', description='API Client library for Google Cloud', author='Google Cloud Platform', author_email='jjg+gcloud-python@google.com',