def api_copyNonSessionSimulation(): req = http_request.parse_json() sim_type = req['simulationType'] src = py.path.local( simulation_db.find_global_simulation( sim_type, req['simulationId'], checked=True, )) data = simulation_db.open_json_file( sim_type, src.join(simulation_db.SIMULATION_DATA_FILE), ) if 'report' in data: del data['report'] data['models']['simulation']['isExample'] = False data['models']['simulation']['outOfSessionSimulationId'] = req[ 'simulationId'] res = _save_new_and_reply(data) target = simulation_db.simulation_dir(sim_type, simulation_db.parse_sid(data)) template_common.copy_lib_files( data, simulation_db.lib_dir_from_sim_dir(src), simulation_db.lib_dir_from_sim_dir(target), ) template = sirepo.template.import_module(data) if hasattr(template, 'copy_related_files'): template.copy_related_files(data, str(src), str(target)) return res
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