def start_expr(self, context): """To start a new Experiment asynchronously :type context: Context :param context: the execution context. """ expr = Experiment(status=EStatus.INIT, template=context.template, user=context.user, virtual_environments=[], hackathon=context.hackathon) expr.save() template_content = self.template_library.load_template(context.template) expr.status = EStatus.STARTING expr.save() # context contains complex object, we need create another serializable one with only simple fields new_context = Context(template_content=template_content, template_name=context.template.name, hackathon_id=context.hackathon.id, experiment_id=expr.id) if context.get("user", None): new_context.user_id = context.user.id self._internal_start_expr(new_context) new_context.experiment = expr return new_context
def start_expr(self, context): """To start a new Experiment asynchronously :type context: Context :param context: the execution context. """ expr = Experiment(status=EStatus.INIT, template=context.template, user=context.user, virtual_environments=[], hackathon=context.hackathon) expr.save() template_content = self.template_library.load_template( context.template) expr.status = EStatus.STARTING expr.save() # context contains complex object, we need create another serializable one with only simple fields new_context = Context(template_content=template_content, template_name=context.template.name, hackathon_id=context.hackathon.id, experiment_id=expr.id) if context.get("user", None): new_context.user_id = context.user.id self._internal_start_expr(new_context) new_context.experiment = expr return new_context