Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from google.appengine.ext.remote_api import remote_api_stub
- def test_remote_api():
- # This function is called when I want to use the remote api instead of the local datastore access
- remote_api_stub.ConfigureRemoteApi('myapp.appspot.com', '/_ah/remote_api', auth_func, '')
- def auth_func:
- # This actually returns a tuple with my credentials to skip the console input
- return ('username', 'password')
- File "C:Program Files(x86)Googlegoogle_appenginegoogleappenginetoolsdev_appserver_blobstore.py", line 79, in GetBlobStorage
- return apiproxy_stub_map.apiproxy.GetStub('blobstore').storage
- AttributeError: 'RemoteStub' object has no attribute 'storage'
- def attach_to_app(app_id, user=None, password=None, path=None, address=None):
- """
- attaches to app_id instance at address (default: <app_id>.appspot.com)
- if you don't specify a user/password you will be prompted for one
- if you don't specify an address it is assumed to be
- <app_id>.appspot.com
- path: path to remote_api handler, if not
- specified, will use /_ah/remote_api
- """
- path = path or "/_ah/remote_api"
- if not address:
- address = "%s.appspot.com" % app_id
- init_remote_api(app_id, path, address, user=user, password=password)
- def auth_func():
- """
- function to prompt user for credentials
- """
- email_address = raw_input("Email Address: ")
- password = getpass.getpass("Password: ")
- return email_address, password
- def init_remote_api(app_id, path, address, user=None, password=None):
- """
- generic wrapper to initialize the remoteapi for a given path
- required
- =========
- app_id : the app_id of the application to connect to
- path: the path to the remote_api handler ex: /_ah/remote_api
- address: server to connect to ex: myapp.appspot.com
- if user and password are not specified you will be prompted on
- connection if needed
- """
- if user and password:
- def my_auth():
- return (user, password)
- else:
- my_auth = auth_func
- remote_api_stub.ConfigureRemoteApi(app_id, path, my_auth, address)
- remote_api_stub.MaybeInvokeAuthentication()
- os.environ["SERVER_SOFTWARE"] = "Development (remote_api)/1.0"
- # example
- APP_ID = "s~myapp" # when hrds was introduced it became necessary to specify app_id and address note the "s~..."
- ADDRESS = "myapp.appspot.com"
- attach_to_app(APP_ID, address=ADDRESS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement