def agent_env(env=None, uid=None): x = pkconfig.to_environ( ( 'pykern.*', 'sirepo.feature_config.*', ), exclude_re=pykern.pkdebug.SECRETS_RE, ) env = (env or PKDict()).pksetdefault(**x, ).pksetdefault( PYTHONPATH='', PYTHONSTARTUP='', PYTHONUNBUFFERED='1', SIREPO_AUTH_LOGGED_IN_USER=lambda: uid or sirepo.auth.logged_in_user(), SIREPO_JOB_VERIFY_TLS=cfg.verify_tls, SIREPO_JOB_MAX_MESSAGE_BYTES=cfg.max_message_bytes, SIREPO_JOB_PING_INTERVAL_SECS=cfg.ping_interval_secs, SIREPO_JOB_PING_TIMEOUT_SECS=cfg.ping_timeout_secs, SIREPO_SRDB_ROOT=lambda: sirepo.srdb.root(), ) for k in env.keys(): assert not pykern.pkdebug.SECRETS_RE.search(k), \ 'unexpected secret key={} match={}'.format( k, pykern.pkdebug.SECRETS_RE, ) return '\n'.join(("export {}='{}'".format(k, v) for k, v in env.items()))
def sirepo_unit_env(self, compt=None): if not compt: compt = self # Only variable that is required to be in the environment e = pkconfig.to_environ( ['*'], values=PKDict((k, v) for k, v in compt.j2_ctx.items() if k in ('sirepo', 'pykern')), # local only values exclude_re=r'^sirepo(?:_docker_image|.*_vhost|.*_client_max_body)', ) e.PYTHONUNBUFFERED = '1' return e
def agent_env(env=None, uid=None): env = (env or PKDict()).pksetdefault(**pkconfig.to_environ(( 'pykern.*', 'sirepo.feature_config.job', 'sirepo.simulation_db.sbatch_display', ))).pksetdefault( PYTHONPATH='', PYTHONSTARTUP='', PYTHONUNBUFFERED='1', SIREPO_AUTH_LOGGED_IN_USER=lambda: uid or sirepo.auth.logged_in_user(), SIREPO_JOB_VERIFY_TLS=cfg.verify_tls, SIREPO_SRDB_ROOT=lambda: sirepo.srdb.root(), ) return '\n'.join(("export {}='{}'".format(k, v) for k, v in env.items()))
def agent_env(env=None, uid=None): env = (env or PKDict()).pksetdefault(**pkconfig.to_environ(( 'pykern.*', 'sirepo.feature_config.job', ))).pksetdefault( PYTHONPATH='', PYTHONSTARTUP='', PYTHONUNBUFFERED='1', SIREPO_AUTH_LOGGED_IN_USER=lambda: uid or sirepo.auth.logged_in_user(), SIREPO_JOB_VERIFY_TLS=cfg.verify_tls, SIREPO_JOB_MAX_MESSAGE_SIZE=cfg.max_message_size, SIREPO_JOB_PING_INTERVAL_SECS=cfg.ping_interval_secs, SIREPO_JOB_PING_TIMEOUT_SECS=cfg.ping_timeout_secs, SIREPO_SRDB_ROOT=lambda: sirepo.srdb.root(), ) return '\n'.join(("export {}='{}'".format(k, v) for k, v in env.items()))
def _enable_docker(self): from rsconf import systemd from rsconf.component import docker_registry def _env_ok(elem): for p in ( # TODO(e-carlin): all of auth and smtp is really too much. # We just need auth_methods for checking if the cookies is # valid. But bringing in methods then initializes the methods # so we have to bring in their full config. 'SIREPO_AUTH', 'SIREPO_COOKIE', 'SIREPO_FEATURE_PROPRIETARY_SIM', 'SIREPO_SIM_API_JUPYTERHUBLOGIN', 'SIREPO_SMTP', 'SIREPO_SRDB', ): if elem[0].startswith(f'{p}'): return True return False z = self.j2_ctx[self.name] systemd.docker_unit_enable( self, self.j2_ctx, cmd="bash -l -c 'jupyterhub -f {}'".format(self.__conf_f), env=PKDict( filter( _env_ok, self.buildt.get_component('sirepo').sirepo_unit_env( self).items(), ), **pkconfig.to_environ( ['*'], values=dict(sirepo=dict(feature_config=dict( sim_types=set(('jupyterhublogin', ))), )), ), ), image=docker_registry.absolute_image(self.j2_ctx, z.docker_image), run_u=z.run_u, volumes=[ self._jupyterhub_db(), self.j2_ctx.sirepo.srdb.root, ], )