Source code for google.appengine.api.prospective_search.prospective_search_admin

#!/usr/bin/env python
# Copyright 2007 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# See the License for the specific language governing permissions and
# limitations under the License.

"""ProspectiveSearch Admin API.

Admin functions (private to this module) for prospective search.

Functions defined in this module:
  list_subscriptions: Lists subscriptions, for a specified app_id and topic.
  list_topics: Lists topics that have subscriptions, for a specified app_id.

from google.appengine.api import apiproxy_stub_map
from google.appengine.api.prospective_search import prospective_search_pb

[docs]def list_subscriptions(topic, max_results, app_id=None, sub_id_start=None, expires_before=None): """List subscriptions on a topic. Args: topic: required for datastore.Entity document_class, optional for db.Model. max_results: maximum number of subscriptions to return. app_id: if not None, use this app_id. sub_id_start: return only subscriptions that are lexicographically equal or greater than the specified value. expires_before: when set, limits list to subscriptions which will expire no later than expires_before (epoch time). Returns: List of subscription tuples. The subscription tuple contains: subscription id query expiration time (secs after the Unix epoch when subscription expires) state (SubscriptionState = OK/PENDING/ERROR) error_message (if state is ERROR) Raises: DocumentTypeError: document type is unsupported. TopicNotSpecified: raised for datastore.Entity if topic is not specified. apiproxy_errors.Error: list call failed. """ request = prospective_search_pb.ListSubscriptionsRequest() if app_id: request.set_app_id(app_id) request.set_topic(topic) request.set_subscription_id_start(sub_id_start) request.set_max_results(max_results) if expires_before: request.set_expires_before(expires_before) response = prospective_search_pb.ListSubscriptionsResponse() apiproxy_stub_map.MakeSyncCall('matcher', 'ListSubscriptions', request, response) subscriptions = [] for sub in response.subscription_list(): subscriptions.append((, sub.vanilla_query(), sub.expiration_time_sec(), sub.state(), sub.error_message())) return subscriptions
[docs]def list_topics(max_results, app_id=None, topic_start=None): """List topics, over-riding app_id. Args: max_results: maximum number of topics to return. app_id: if not None, use this app_id. topic_start: if not None, start listing topics from this one. Returns: List of topics (strings), or an empty list if the caller is not an administrator and the app_id does not match the app_id of the application. """ request = prospective_search_pb.ListTopicsRequest() request.set_max_results(max_results) if app_id: request.set_app_id(app_id) if topic_start: request.set_topic_start(topic_start) response = prospective_search_pb.ListTopicsResponse() resp = apiproxy_stub_map.MakeSyncCall('matcher', 'ListTopics', request, response) if resp is not None: response = resp topics = [] for topic in response.topic_list(): topics.append(topic) return topics

Send feedback about...

App Engine standard environment for Python