MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / transition_experiment_status

Function transition_experiment_status

api/experimentation/services.py:507–527  ·  view source on GitHub ↗
(
    experiment: Experiment,
    target_status: str,
    user: FFAdminUser,
)

Source from the content-addressed store, hash-verified

505
506
507def transition_experiment_status(
508 experiment: Experiment,
509 target_status: str,
510 user: FFAdminUser,
511) -> Experiment:
512 valid_targets = VALID_STATUS_TRANSITIONS.get(experiment.status, set())
513 if target_status not in valid_targets:
514 raise ValueError(
515 f"Cannot transition from '{experiment.status}' to '{target_status}'."
516 )
517
518 experiment.status = target_status
519
520 if target_status == ExperimentStatus.RUNNING and not experiment.started_at:
521 experiment.started_at = timezone.now()
522 elif target_status == ExperimentStatus.COMPLETED:
523 experiment.ended_at = timezone.now()
524
525 experiment.save()
526 create_experiment_audit_log(experiment, user, action=target_status)
527 return experiment
528
529
530def _create_rollout_segment(

Callers 1

_transition_statusMethod · 0.90

Calls 4

setFunction · 0.50
getMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…