Beispiel #1
0
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)
Beispiel #2
0
 def post(self, request, *args, **kwargs):
     obj = self.get_object()
     stop_experiment.delay(experiment_id=obj.id)
     return Response(status=status.HTTP_200_OK)