def stop_group_experiments(experiment_group_id, pending, message=None): try: experiment_group = ExperimentGroup.objects.get(id=experiment_group_id) except ExperimentGroup.DoesNotExist: logger.info('ExperimentGroup `{}` was not found.'.format(experiment_group_id)) return if pending: for experiment in experiment_group.pending_experiments: # Update experiment status to show that its stopped experiment.set_status(status=ExperimentLifeCycle.STOPPED, message=message) else: for experiment in experiment_group.experiments.exclude( experiment_status__status__in=ExperimentLifeCycle.DONE_STATUS).distinct(): if experiment.is_running: stop_experiment.delay(experiment_id=experiment.id) else: # Update experiment status to show that its stopped experiment.set_status(status=ExperimentLifeCycle.STOPPED, message=message)
def post(self, request, *args, **kwargs): obj = self.get_object() stop_experiment.delay(experiment_id=obj.id) return Response(status=status.HTTP_200_OK)