Introduce runner creation status

With the new runner creation workflow we can't longer rely on the contacted_at as a single source of truth for the runner.

Problems to solve:

  1. Users should be able to continue runner creation if runners are never contacted, but this state is indistinguishable from all runner managers were removed

  2. If all runner managers are removed a minute ago runner can be shown as never contacted or online - both options are wrong: runner contacted us, it was just removed, and it's no longer online. That's just confusing.

Proposal

Introduce a state machine field runner_creation_status:

  • created - by default
  • contacted - when runner contacted at least once

Yes, it's like a boolean field right now, but if we add more steps to the creation workflow, we may want to enhance it. But we can consider just adding a boolean field contacted as well.

Edited by Vladimir Shushlin