def create_examples(): """Adds missing app examples to all users. """ from pykern import pkio from sirepo import feature_config from sirepo import server from sirepo import simulation_db from sirepo import cookie server.init() for d in pkio.sorted_glob(simulation_db.user_dir_name('*')): if _is_src_dir(d): continue; uid = simulation_db.uid_from_dir_name(d) cookie.init_mock(uid) for sim_type in feature_config.cfg.sim_types: simulation_db.verify_app_directory(sim_type) names = map( lambda x: x['name'], simulation_db.iterate_simulation_datafiles(sim_type, simulation_db.process_simulation_list, { 'simulation.isExample': True, })) for s in simulation_db.examples(sim_type): if s.models.simulation.name not in names: simulation_db.save_new_example(s)
def api_copyNonSessionSimulation(): req = http_request.parse_post(id=True, template=True) simulation_db.verify_app_directory(req.type) src = pkio.py_path( simulation_db.find_global_simulation( req.type, req.id, checked=True, ), ) data = simulation_db.open_json_file( req.type, src.join(simulation_db.SIMULATION_DATA_FILE), ) data.pkdel('report') data.models.simulation.isExample = False data.models.simulation.outOfSessionSimulationId = req.id res = _save_new_and_reply(data) sirepo.sim_data.get_class(req.type).lib_files_from_other_user( data, simulation_db.lib_dir_from_sim_dir(src), ) target = simulation_db.simulation_dir(req.type, data.models.simulation.simulationId) #TODO(robnagler) does not work, supervisor needs to be notified to # copy the simulation state. # if hasattr(req.template, 'copy_related_files'): # req.template.copy_related_files(data, str(src), str(target)) return res
def app_simulation_list(): data = _parse_data_input() sim_type = data['simulationType'] search = data['search'] if 'search' in data else None simulation_db.verify_app_directory(sim_type) return _json_response( sorted( simulation_db.iterate_simulation_datafiles(sim_type, simulation_db.process_simulation_list, search), key=lambda row: row['name'], ) )
def api_listSimulations(): data = _parse_data_input() sim_type = data['simulationType'] search = data['search'] if 'search' in data else None simulation_db.verify_app_directory(sim_type) return http_reply.gen_json( sorted( simulation_db.iterate_simulation_datafiles( sim_type, simulation_db.process_simulation_list, search), key=lambda row: row['name'], ))
def api_listSimulations(): req = http_request.parse_post() simulation_db.verify_app_directory(req.type) return http_reply.gen_json( sorted( simulation_db.iterate_simulation_datafiles( req.type, simulation_db.process_simulation_list, req.req_data.get('search'), ), key=lambda row: row['name'], ))
def create_examples(): """Adds missing app examples to all users. """ server.init() for d in pkio.sorted_glob(simulation_db.user_dir_name('*')): if _is_src_dir(d): continue; uid = simulation_db.uid_from_dir_name(d) auth.init_mock(uid) for sim_type in feature_config.cfg.sim_types: simulation_db.verify_app_directory(sim_type) names = map( lambda x: x['name'], simulation_db.iterate_simulation_datafiles(sim_type, simulation_db.process_simulation_list, { 'simulation.isExample': True, })) for example in simulation_db.examples(sim_type): if example.models.simulation.name not in names: _create_example(example)
def create_examples(): """Adds missing app examples to all users. """ server.init() for d in pkio.sorted_glob(simulation_db.user_dir_name().join('*')): if _is_src_dir(d): continue uid = simulation_db.uid_from_dir_name(d) auth.set_user_for_utils(uid) for sim_type in feature_config.cfg().sim_types: simulation_db.verify_app_directory(sim_type) names = [ x.name for x in simulation_db.iterate_simulation_datafiles( sim_type, simulation_db.process_simulation_list, { 'simulation.isExample': True, }) ] for example in simulation_db.examples(sim_type): if example.models.simulation.name not in names: _create_example(example)
def create_examples(): """Adds missing app examples to all users""" import sirepo.auth_db import sirepo.server sirepo.server.init() for d in pkio.sorted_glob(simulation_db.user_path().join('*')): if _is_src_dir(d): continue; uid = simulation_db.uid_from_dir_name(d) with sirepo.auth_db.session_and_lock(), \ auth.set_user_outside_of_http_request(uid): for sim_type in feature_config.cfg().sim_types: simulation_db.verify_app_directory(sim_type) names = [x.name for x in simulation_db.iterate_simulation_datafiles( sim_type, simulation_db.process_simulation_list, { 'simulation.isExample': True, })] for example in simulation_db.examples(sim_type): if example.models.simulation.name not in names: _create_example(example)