I find that dev_appserver.py and appcfg.py fail on my Mac OS X 10.10.5 system
that's got old 2.7.0 Python, failing with SSL issues, while my Mac OS X 10.10.5
system with fairly new 2.7.10 Python works great. The trick of removing
cacerts.txt helps dev_appserver.py, but not appcfg.py, which makes sense,
skipping SSL is probably fine locally, but not when connecting to GAE servers.
I suggest minimum Python requirements on the documentation web page below be
more specific than just 2.7. Maybe 2.7.9 is a good minimum required Python
level. I read a couple folks say their SSL issues went away after moving to
2.7.9.
https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
Here's an example fail with 2.7.0:
/Users/drdavew/google-cloud-sdk/platform/google_appengine/appcfg.py --oauth2
update .
Note: the --oauth2 flag is now the default and can be omitted.
06:42 PM Application: drdavew00-glass00; version: 1
06:42 PM Host: appengine.google.com
06:42 PM
Starting update of app: drdavew00-glass00, version: 1
06:42 PM Getting current resource limits.
Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=550516889912.apps.googleusercontent.com&access_type=offline
If your browser is on a different machine then exit and re-run this
application with the command-line parameter
--noauth_local_webserver
Traceback (most recent call last):
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/appcfg.py", line 133, in <module>
run_file(__file__, globals())
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/appcfg.py", line 129, in run_file
execfile(_PATHS.script_file(script_name), globals_)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 5481, in <module>
main(sys.argv)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 5472, in main
result = AppCfgApp(argv).Run()
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 3013, in Run
self.action(self)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 5128, in __call__
return method()
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 3851, in Update
self._UpdateWithParsedAppYaml(appyaml, self.basepath)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 3904, in _UpdateWithParsedAppYaml
self.UpdateVersion(rpcserver, basepath, appyaml, APP_YAML_FILENAME)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 3783, in UpdateVersion
return appversion.DoUpload(paths, openfunc)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 2446, in DoUpload
self.error_fh)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 484, in GetResourceLimits
resource_limits.update(_GetRemoteResourceLimits(logging_context))
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 454, in _GetRemoteResourceLimits
yaml_data = logging_context.Send('/api/appversion/getresourcelimits')
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appcfg.py", line 1756, in Send
result = self.rpcserver.Send(url, payload=payload, **kwargs)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 241, in Send
self._Authenticate(self.http, auth_errors[0] > 0)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 459, in _Authenticate
self.credentials = tools.run_flow(flow, self.storage, self.flags)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/oauth2client/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/oauth2client/oauth2client/tools.py", line 225, in run_flow
credential = flow.step2_exchange(code, http=http)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/oauth2client/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/oauth2client/oauth2client/client.py", line 1993, in step2_exchange
headers=headers)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1584, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1332, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1268, in _conn_request
conn.connect()
File "/Users/drdavew/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1037, in connect
raise SSLHandshakeError(e)
httplib2.SSLHandshakeError: [Errno 1] _ssl.c:499: error:0D0890A1:asn1 encoding
routines:ASN1_verify:unknown message digest algorithm
Original issue reported on code.google.com by drdave...@gmail.com on 8 Feb 2016 at 5:56
Original issue reported on code.google.com by
drdave...@gmail.com
on 8 Feb 2016 at 5:56