python - permissions issue when running bokeh server from supervisor -


i have web application employs bokeh plotting engine. have created interactive plotting app based of of "stocks example"

i have running on development machine. on application server, running supervisor (supervisorctl).

i using redis backend.

i having permissions issue based on "driving" various applications. when try access application on server, traceback shows directory creation permission problem.

traceback (most recent call last):   ... flask / wsgi stuff ...   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/flask_login.py", line 755, in decorated_view     return func(*args, **kwargs)   file "/home/webdev/mydevelopment/git/ers_data_app/webapp/mod_performance/plotting_views.py", line 53, in data_viz     bs = make_bokeh_session()   file "/home/webdev/mydevelopment/git/ers_data_app/webapp/mod_performance/plotting_views.py", line 27, in make_bokeh_session     b_session.login(un, pw)   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/bokeh/session.py", line 244, in login     self.save()   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/bokeh/session.py", line 180, in save     data = self.load_dict()   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/bokeh/session.py", line 151, in load_dict     configfile = self.configfile   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/bokeh/session.py", line 148, in configfile     return join(self.configdir, "config.json")   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib/python2.7/site-packages/bokeh/session.py", line 138, in configdir     makedirs(bokehdir)   file "/home/webdev/mydevelopment/git/ers_data_app/env/lib64/python2.7/os.py", line 157, in makedirs     mkdir(name, mode) oserror: [errno 13] permission denied: '/root/.bokeh' 

i placed print statement in flask view show current user (using os.getegid())

from bokeh.session import session bsession ... def make_bokeh_session():     print 'bokeh session group!!!!!!!! {}'.format(os.getegid())     print 'bokeh session user!!!!!!!! {}'.format(os.path.expanduser('~'))     un = current_user.username     pw = current_app.config['bokeh_session_pw']     b_session = bsession(root_url=bokeh_url, load_from_config=false)     try:         b_session.login(un, pw)     except runtimeerror e:         b_session.register(un, pw)         b_session.login(un, pw)     output_server('ers_plots')     return b_session 

the print statement gives shows group id of 1000 (my webdev user runs everything), although os.expanduser('~') shows user root.

see below supervisor configuration snippets.

[program:bokehservergo] directory = /home/webdev/mydevelopment/git/ers_data_app/webapp/mod_performance command = /home/webdev/mydevelopment/git/ers_data_app/env/bin/bokeh-server --script=plotting_app.py --backend=redis --no-start-redis -m user=webdev ... 

the webapp run uwsgi emperor

[program:uwsgi_emperor_go] command = /usr/bin/uwsgi --emperor /etc/uwsgi/emperor.ini user=webdev ... 

and redis runner

[program:redisgo] command=/usr/bin/redis-server /etc/redis.conf user=webdev ... 

the relavent code bokeh/session.py (makedirs throwing traceback)

@property     def configdir(self):         """ filename our config stored. """         if self._configdir:             return self._configdir         bokehdir = join(expanduser("~"), ".bokeh")         if not exists(bokehdir):             makedirs(bokehdir)         return bokehdir 

how can fix permission issue bokeh may deployed on server? tried adding user=webdev various supervisord program blocks no avail. have since removed user=webdev supervisor.conf config redis

i ended making own app_document decorator (see stock_app example) allowed me create multi-user bokeh session , pass in config directory, since that's error being thrown.


Comments

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

Ruby on Rails, ActiveRecord, Postgres, UTF-8 and ASCII-8BIT encodings -