--- Downloads/google_appengine/google/appengine/tools/devappserver2/server.py 2013-03-15 17:48:00.000000000 +0100 +++ Documents/oddamto/env_base/google_appengine/google/appengine/tools/devappserver2/server.py 2013-03-24 16:12:22.832602813 +0100 @@ -87,6 +87,21 @@ _SHUTDOWN_TIMEOUT = 30 +def GetGoogleSqlOAuth2RefreshToken(oauth_file_path): + """Reads the user's Google Cloud SQL OAuth2.0 token from disk.""" + import json + if not os.path.exists(oauth_file_path): + return None + try: + with open(oauth_file_path) as oauth_file: + token = json.load(oauth_file) + return token['refresh_token'] + except (IOError, KeyError, simplejson.decoder.JSONDecodeError): + logging.exception( + 'Could not read OAuth2.0 token from %s', oauth_file_path) + return None + + def _static_files_regex_from_handlers(handlers): patterns = [] for url_map in handlers: @@ -254,6 +269,13 @@ for key, value in (self._server_configuration.env_variables or {}).items(): runtime_config.environ.add(key=str(key), value=str(value)) + from google.storage.speckle.python.api import rdbms + token = GetGoogleSqlOAuth2RefreshToken(os.path.expanduser( + rdbms.OAUTH_CREDENTIALS_PATH)) + if token: + runtime_config.environ.add(key='GOOGLE_SQL_OAUTH2_REFRESH_TOKEN', value=str(token)) + + if self._cloud_sql_config: runtime_config.cloud_sql_config.CopyFrom(self._cloud_sql_config)