I've run a lot of tests and I couldn't set os.environ['SOME_KEY']
='some value' and have access to it in welcome/model/db.py.  If you
can tell me how to do it then I'll test it out.

As I couldn't get it to work, I did the following which I could get to
work.

In gaehandler.py, I added "env['app_engine']='GAE'" to wsgiapp
(env,res):

In main.py, I added "environ['app_engine']='WSGI'" to app_with_logging
(environ, responder):

Then in welcome/model/db.py I could do "if request.env['app_engine']
=='GAE':" which is all I need for my current work.

Bill

On Feb 1, 3:17 pm, Robin B <robi...@gmail.com> wrote:
> > Shouldn't there be a non-google value set somewhere else
> > (wsgihandler.py?) and what would the value be ('WSGI'?)?
>
> When web2py does its detection in main.py, it can do:
>
> runtime = os.environ.get('WEB2PY_RUNTIME']','DEFAULT')
>
> > Would it be prefereable to be a boolean (IS_GAE=True) and set
> > elsewhere to False? (I suppose this has problem if another application
> > engine comes along).
>
> Yeah, it would be handy to be able to be able to check for known
> runtimes:
> request.env.runtime.is_gae?
>
>
>
> > As there is already an environ key 'SERVER_SOFTWARE' why create
> > another key 'WEB2PY_MODE'?
>
> Google is setting SERVER_SOFTWARE in this case:
>
> if os.environ.get('SERVER_SOFTWARE','').startswith('Devel'):
>
> gaehandler.py code should only set WEB2PY_MODE if it was not
> externally set by the developer
>
> this way the developer can test production mode on localhost
>
> export WEB2PY_MODE=PRODUCTION
> dev_appserver.py .
>
>
>
> > Bill
>
> > On Feb 1, 12:36 pm, Robin B <robi...@gmail.com> wrote:
>
> > > You are right importing 'google' is insufficient for detection, but
> > > detecting GAE side effects is only slightly better.
>
> > > All GAE apps start in gaehandler.py.  Simply set the environment
> > > variables in side of gaehandler.py, it results in 100% fool proof
> > > detection.
>
> > > At the top of gaelhander.py:
>
> > > # foolproof detection in 1 line
> > > os.environ['WEB2PY_RUNTIME'] = 'GOOGLE'
> > > # also set the mode
> > > if os.environ.get('SERVER_SOFTWARE','').startswith('Devel'):
> > >   os.environ['WEB2PY_MODE'] = 'DEVELOPMENT'
> > > else:
> > >   os.environ['WEB2PY_MODE'] = 'PRODUCTION'
>
> > > Robin
>
> > > On Feb 1, 4:35 am, billf <billferr...@blueyonder.co.uk> wrote:
>
> > > > As a short-term solution, I am using the following patch:
>
> > > > In compileapp.py, is_gae is set depending on the result of
> > > > imp.get_magic() so in build_environment() in the same module I store
> > > > is_gae in environment['GAE'].  Then in db.py I can say
>
> > > > if globals()['GAE']: before importing google stuff and using GQLDB()
>
> > > > Have I a) re-invented the wheel, b) come up with a good solution, c)
> > > > missed something important?
>
> > > > On Feb 1, 9:06 am, billf <billferr...@blueyonder.co.uk> wrote:
>
> > > > > I have installed the google appengine but do not want web2py to use
> > > > > the google datastore just because the libs are there but that is what
> > > > > the welcome app does.
>
> > > > > I have read some threads related to detecting GAE but they seemed
> > > > > inconclusive.
>
> > > > > Is there a way that, in a model (or elsewhere for that matter) I can
> > > > > detect if the app is running on GAE that doesn't depend on the
> > > > > presence of google libs?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to