blob: 25305d4012e65769f4b936d9c58370a52e897b01 [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import code
import getpass
import logging
import os
import sys
ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
GAE_SDK = os.path.join(ROOT, '..', 'gcloud', 'platform', 'google_appengine')
LIB = os.path.join(GAE_SDK, 'lib')
sys.path.insert(0, GAE_SDK)
sys.path.append(os.path.join(LIB, 'yaml', 'lib'))
sys.path.append(os.path.join(LIB, 'fancy_urllib'))
sys.path.append(os.path.join(LIB, 'webob'))
sys.path.append(ROOT)
from google.appengine.ext.remote_api import remote_api_stub
def auth_func():
user = os.environ.get('EMAIL_ADDRESS')
if user:
print('User: %s' % user)
else:
user = raw_input('Username:')
try:
pwd = open('.pwd').readline().strip()
except IOError:
pwd = getpass.getpass('Password:')
return user, pwd
def main():
if len(sys.argv) < 2:
app_id = 'chromium-status'
else:
app_id = sys.argv[1]
if len(sys.argv) > 2:
host = sys.argv[2]
else:
host = '%s.appspot.com' % app_id
logging.basicConfig(level=logging.ERROR)
# pylint: disable=W0612
from google.appengine.api import memcache
from google.appengine.ext import db
remote_api_stub.ConfigureRemoteDatastore(
app_id, '/_ah/remote_api', auth_func, host)
from appengine_module.chromium_status import base_page
from appengine_module.chromium_status import git_lkgr
from appengine_module.chromium_status import static_blobs
from appengine_module.chromium_status import status
from appengine_module.chromium_status import utils
utils.bootstrap()
def remove(entity, functor, batch=100):
"""Remove entries."""
count = 0
items = []
while True:
entries = [i for i in entity.all().fetch(limit=batch) if functor(i)]
count += len(entries)
print '%s' % count
if entries:
db.delete(entries)
else:
break
# Symbols presented to the user.
predefined_vars = locals()
prompt = (
'App Engine interactive console for "%s".\n'
'Available symbols:\n'
' %s\n') % (app_id, ', '.join(sorted(predefined_vars)))
code.interact(prompt, None, predefined_vars)
if __name__ == '__main__':
sys.exit(main())