STEP_046N state file dryrun

=== STEP_046N RESULT ===
step=STEP_046N_VM100_LOCAL_CONTROLLER_STATE_FILE_DRYRUN
decision=PASS_STEP_046N_VM100_LOCAL_CONTROLLER_STATE_FILE_DRYRUN
all_ok=True

summary:
  script=/usr/local/sbin/router-wgpay-egress-local.sh
  rollback=/root/rollback-step046n-vm100-controller-v4-20260710-110427.sh
  state_file=/var/lib/router-wgpay-egress/state.kv
  script_sha256=8f28d1fba765124674ad75c582304e630d2c2bbd15582cc4edeeb04c2eea2281
  live_state_preview_summary={'rows': 5, 'active_count': 0, 'idle_count': 5, 'min_class': 'cs1', 'min_count': 1, 'max_class': 'cs1', 'max_count': 1, 'blocked': False, 'block_reason': '', 'action_count': 0, 'noop': True, 'action_reason': 'already_balanced', 'selector_file_would_change': False, 'selector_apply_would_run': False, 'state_file_would_write': False}
  live_state_preview={'state_file': '/var/lib/router-wgpay-egress/state.kv', 'would_write_state_file': False, 'state_preview_sha256': '3d4ac01695384b38ae59f6249de0e603d2b93530b86b41fd4d5e6a39212126b8', 'format': 'key_value_v1'}
  synthetic_state_preview_summary={'rows': 5, 'active_count': 0, 'idle_count': 5, 'min_class': 'cs2', 'min_count': 0, 'max_class': 'cs1', 'max_count': 2, 'blocked': False, 'block_reason': '', 'action_count': 1, 'noop': False, 'action_reason': 'idle_rebalance_most_loaded_to_least_loaded', 'selector_file_would_change': True, 'selector_apply_would_run': True, 'state_file_would_write': True}
  synthetic_state_preview={'state_file': '/var/lib/router-wgpay-egress/state.kv', 'would_write_state_file': True, 'state_preview_sha256': '237f90694c6ae915e56fbcc86e963cead2752f6d86f8f78faf73fbc4a79ae8a4', 'format': 'key_value_v1'}
  synthetic_action={'tunnel_ip': '10.253.1.10', 'from_class': 'cs1', 'from_target_id': 'canary_vpn3', 'to_class': 'cs2', 'to_target_id': 'canary_vpn4', 'reason': 'idle_rebalance_most_loaded_to_least_loaded'}
  synthetic_transaction_preview={'would_update_selector_rows': 1, 'would_run_selector_apply': True, 'would_write_state_file': True}
  apply_refusal_rc=78
  line_10_final=10.253.1.10 cs1 canary_vpn3
  line_12_final=10.253.1.12 cs3 canary_vpn5
  peer_count_final=5
  allowed_ip_count_final=5
  uci_peer_sections_final=0
  state_file_exists_pre=false
  state_file_sha_pre=none
  state_file_exists_final=false
  state_file_sha_final=none

success_checks:
  vm100_046n_rc_zero=True
  script_executable=True
  service_disabled=True
  service_not_running=True
  live_state_preview_rc_zero=True
  live_rows_five=True
  live_action_count_zero=True
  live_state_preview_has_sha=True
  live_state_no_write=True
  synthetic_state_preview_rc_zero=True
  synthetic_action_one=True
  synthetic_action_to_cs2=True
  synthetic_state_preview_has_sha=True
  synthetic_would_write_state=True
  apply_refused=True
  selector_rows_final_five=True
  line_10_final_ok=True
  line_12_final_ok=True
  peer_count_final_five=True
  allowed_ip_count_final_five=True
  uci_peer_sections_zero=True
  state_file_not_written=True

expected_absence:
  selector_changed=False
  wg_runtime_changed=False
  service_enabled=False
  state_file_written=False

next_step=STEP_046O_VM100_LOCAL_CONTROLLER_STATE_FILE_ONE_WRITE_RESTORE
TRYCF_REPORT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-110427_step046n_vm100_local_controller_state_file_dryrun/
REPORT_TXT=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-110427_step046n_vm100_local_controller_state_file_dryrun/report.txt
FACTS_JSON=https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-110427_step046n_vm100_local_controller_state_file_dryrun/facts.json