3

I am trying to test a basic app with Google App Engine using the trendy-lights example with Google Earth Engine App.

I cloned the trendy-lights app from the GEE github repository and updated the application name in app.yaml, EE_ACCOUNT in config.py and the privatekey.pem file. I didn't do any other change. However the trendy-lights app does not work.

Please see the error I got below. I am trying to figure out why it does not work. (Just FYI, I tried the sample flask app in GAE and it works well, I see the 'Hello World' text when I go to the app webpage).

Does anyone know what the error I got refers to? I have no clue and I don't know how to debug it.

Another question: For running this app (i.e., the trendy-lights example) using GAE and GEE, do I have to sign up for the GAE free trial? (I am a trusted tester for GEE)

Thanks for any help!

Ali

user@osgeolive:~/shared/git/earthengine-api/demos/trendy-lights$ /home/user/google_appengine/dev_appserver.py ./
INFO    2015-08-14 14:07:21,304 sdk_update_checker.py:229] Checking for updates to the SDK.
INFO    2015-08-14 14:07:21,735 sdk_update_checker.py:257] The SDK is up to date.
WARNING  2015-08-14 14:07:22,512 simple_search_stub.py:1126] Could not read search indexes from /tmp/appengine.test-project-1036.user/search_indexes
INFO    2015-08-14 14:07:22,516 api_server.py:205] Starting API server at: http://localhost:52519
INFO    2015-08-14 14:07:22,530 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO    2015-08-14 14:07:22,531 admin_server.py:118] Starting admin server at: htp://localhost:8000
INFO    2015-08-14 14:07:51,222 client.py:515] Attempting refresh to obtain initial access_token
INFO    2015-08-14 14:07:51,262 client.py:755] Refreshing access_token
ERROR   2015-08-14 14:07:53,438 wsgi.py:263]

Traceback (most recent call last):
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/server.py", line 241, in <module>
    ee.Initialize(EE_CREDENTIALS)
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/__init__.py", line 83, in Initialize
    ApiFunction.initialize()
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/apifunction.py", line 145, in initialize
    signatures = data.getAlgorithms()
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/data.py", line 341, in getAlgorithms
    return send_('/algorithms', {}, 'GET')
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/data.py", line 594, in send_
    response.status)
EEException: Server returned HTTP code: 404

INFO    2015-08-14 14:07:53,573 module.py:809] default: "GET / HTTP/1.1" 500 -
INFO    2015-08-14 14:07:53,625 client.py:515] Attempting refresh to obtain initial access_token
INFO    2015-08-14 14:07:53,666 client.py:755] Refreshing access_token
ERROR   2015-08-14 14:07:55,192 wsgi.py:263]

Traceback (most recent call last):
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/user/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/server.py", line 241, in <module>
    ee.Initialize(EE_CREDENTIALS)
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/__init__.py", line 83, in Initialize
    ApiFunction.initialize()
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/apifunction.py", line 145, in initialize
    signatures = data.getAlgorithms()
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/data.py", line 341, in getAlgorithms
    return send_('/algorithms', {}, 'GET')
  File "/home/user/shared/git/earthengine-api/demos/trendy-lights/ee/data.py", line 594, in send_
    response.status)
EEException: Server returned HTTP code: 404

INFO    2015-08-14 14:07:55,198 module.py:809] default: "GET /favicon.ico HTTP/1.1" 500 -

I am running osgeo Lubuntu on VirtualBox running on Windows 8.1. (VirtualBox-5.0.0-101573-Win, osgeo-live-8.5, Python 2.7.6, Google App Engine 1.9.24).

Kevin Reid
  • 37,492
  • 13
  • 80
  • 108
Ali
  • 51
  • 1
  • 4
  • It seems as though the EE SDK is attempting to hit an endpoint which isn't responding. The crucial line to understand the error is `send_('/algorithms', {}, 'GET')`. – Nick Aug 17 '15 at 22:46

2 Answers2

2

The issue posted in this question is solved now.

My service account had to be whitelisted by the administrators of the Google Earth Engine platform for the app to be able to run.

Ali
  • 51
  • 1
  • 4
0

As posted here, you must call ee.Initialize() in order to earthengine api search for authentication files created by command earthengine authenticate.

Douglas Haubert
  • 83
  • 1
  • 1
  • 7