From 9a030917ee62e5c3ca889c626657b46069b3064f Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Fri, 18 Sep 2026 21:09:03 +0000 Subject: [PATCH] runtime: publish NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102 --- ...-260918-NEWFDOM-ARTICLES205-PACK1-102.json | 38 +++++ ...I-260918-NEWFDOM-ARTICLES205-PACK1-102.txt | 36 +++++ runtime/latest.json | 28 ++-- runtime/latest.txt | 150 ++---------------- 4 files changed, 103 insertions(+), 149 deletions(-) create mode 100644 runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.json create mode 100644 runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.txt diff --git a/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.json b/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.json new file mode 100644 index 00000000..767cb163 --- /dev/null +++ b/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102", + "status": "FAIL", + "rc": 3, + "host": "pve01", + "mode": "change", + "component": "newfi-newfdom-articles205-pack1-two-articles-public-smoke-corrected", + "started_at_utc": "2026-09-18T21:08:58Z", + "finished_at_utc": "2026-09-18T21:09:02Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "52df1dc3ff6172b8b5f56dcda9503a23848dadf9b8443bc5d36b9affc45185b4", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "FAIL", + "result_contract_error": null, + "command_rc": 3, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711", + "sanitized_output_sha256": "3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "NEWFI102_BEGIN\nCOMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102\nNEWFI102_SAFE_REPORT={\"changes_made\": false, \"decision\": \"FAIL_ARTICLES205_PACK1_HOLD\", \"error\": \"RuntimeError:GUEST:RuntimeError:PERR\", \"rollback_restored\": null, \"rollback_started\": false}\nHOMELAB_RESULT_CONTRACT={\"version\": 1, \"command_id\": \"NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102\", \"status\": \"FAIL\", \"changes_made\": false, \"rollback_started\": false, \"rollback_restored\": null}\n" +} diff --git a/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.txt b/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.txt new file mode 100644 index 00000000..3c16fca0 --- /dev/null +++ b/runtime/history/NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102.txt @@ -0,0 +1,36 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102 +STATUS=FAIL +RC=3 +HOST=pve01 +MODE=change +COMPONENT=newfi-newfdom-articles205-pack1-two-articles-public-smoke-corrected +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=52df1dc3ff6172b8b5f56dcda9503a23848dadf9b8443bc5d36b9affc45185b4 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=FAIL +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=3 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711 +SANITIZED_OUTPUT_SHA256=3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711 +OUTPUT_BEGIN +NEWFI102_BEGIN +COMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102 +NEWFI102_SAFE_REPORT={"changes_made": false, "decision": "FAIL_ARTICLES205_PACK1_HOLD", "error": "RuntimeError:GUEST:RuntimeError:PERR", "rollback_restored": null, "rollback_started": false} +HOMELAB_RESULT_CONTRACT={"version": 1, "command_id": "NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102", "status": "FAIL", "changes_made": false, "rollback_started": false, "rollback_restored": null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 3ab5a4b4..767cb163 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,27 +1,27 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260918-INFRA-PVE1-MOLDOVA-CURRENT-PROD-CALLPATH-READONLY-556R2", - "status": "OK", - "rc": 0, + "command_id": "NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102", + "status": "FAIL", + "rc": 3, "host": "pve01", - "mode": "read-only", - "component": "infra-pve1-moldova-current-prod-callpath-readonly", - "started_at_utc": "2026-09-18T21:05:06Z", - "finished_at_utc": "2026-09-18T21:05:06Z", + "mode": "change", + "component": "newfi-newfdom-articles205-pack1-two-articles-public-smoke-corrected", + "started_at_utc": "2026-09-18T21:08:58Z", + "finished_at_utc": "2026-09-18T21:09:02Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "37ce436636242efdcf203b90c1a92dfa69ada981da23f62e14b4602369702589", + "command_sha256": "52df1dc3ff6172b8b5f56dcda9503a23848dadf9b8443bc5d36b9affc45185b4", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": false, + "change_declared": true, "result_contract_valid": true, - "result_contract_status": null, + "result_contract_status": "FAIL", "result_contract_error": null, - "command_rc": 0, + "command_rc": 3, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "883672d81581efc0c1d92a09229e4b23c9e7899d7bd8e2f7a4a5a768e0902898", - "sanitized_output_sha256": "0e12c81ca87dc2aca47e61e36d9079f2d2971793fe68f8a3f4c1dae3974247cb", + "raw_evidence_sha256": "3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711", + "sanitized_output_sha256": "3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nPROD_ENTRY_PRESENT=True\nPROD_ENTRY_IS_SYMLINK=False\nPROD_ENTRY_RESOLVED=/usr/local/sbin/homelab-backup-v2\nPROD_ENTRY_SIZE=1656\nPROD_ENTRY_SHA256=5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2\nPROD_CALLPATH_MATCH_LINE_COUNT=3\nPROD_CALLPATH_MATCH_LINES=3,4,24\nPROD_CALLPATH_CONTEXT_01_RANGE=1-11\nPROD_CALLPATH_CONTEXT_01_LINE_0001=#!/usr/bin/python3\nPROD_CALLPATH_CONTEXT_01_LINE_0002=from __future__ import annotations\nPROD_CALLPATH_CONTEXT_01_LINE_0003=import hashlib, importlib, os, pathlib, stat, sys\nPROD_CALLPATH_CONTEXT_01_LINE_0004=ACCEPTED=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b')\nPROD_CALLPATH_CONTEXT_01_LINE_0005=EXPECTED={'fresh_lxc_helper.py': 'dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011', 'producer_exec_helper.py': 'b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3', 'lxc_adapter.py': '3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d', 'qemu_adapter.py': '1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b', 'scheduler_adapter.py': 'a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96', 'entry504.py': 'ca6876fa9c3b1465b045344a8ad46962de16972c7da...\nPROD_CALLPATH_CONTEXT_01_LINE_0006=def sha(p):\nPROD_CALLPATH_CONTEXT_01_LINE_0007=h=hashlib.sha256()\nPROD_CALLPATH_CONTEXT_01_LINE_0008=with open(p,'rb',buffering=0) as f:\nPROD_CALLPATH_CONTEXT_01_LINE_0009=while True:\nPROD_CALLPATH_CONTEXT_01_LINE_0010=b=f.read(1048576)\nPROD_CALLPATH_CONTEXT_01_LINE_0011=if not b: break\nPROD_CALLPATH_CONTEXT_02_RANGE=20-26\nPROD_CALLPATH_CONTEXT_02_LINE_0020=p=ACCEPTED/name; s=os.lstat(p)\nPROD_CALLPATH_CONTEXT_02_LINE_0021=if not stat.S_ISREG(s.st_mode) or stat.S_ISLNK(s.st_mode) or s.st_uid!=0 or s.st_gid!=0 or stat.S_IMODE(s.st_mode)!=0o400 or sha(p)!=want: raise SystemExit('RELEASE_FILE_IDENTITY_'+name)\nPROD_CALLPATH_CONTEXT_02_LINE_0022=sys.dont_write_bytecode=True\nPROD_CALLPATH_CONTEXT_02_LINE_0023=sys.path.insert(0,str(ACCEPTED))\nPROD_CALLPATH_CONTEXT_02_LINE_0024=e=importlib.import_module('entry504')\nPROD_CALLPATH_CONTEXT_02_LINE_0025=return int(e.main())\nPROD_CALLPATH_CONTEXT_02_LINE_0026=if __name__=='__main__': raise SystemExit(main())\nPROD_RELEVANT_FUNCTION_COUNT=0\nPROD_IMPORT_COUNT=7\nPROD_IMPORT_01_LINE=2\nPROD_IMPORT_01_NAME=__future__.annotations\nPROD_IMPORT_02_LINE=3\nPROD_IMPORT_02_NAME=hashlib\nPROD_IMPORT_03_LINE=3\nPROD_IMPORT_03_NAME=importlib\nPROD_IMPORT_04_LINE=3\nPROD_IMPORT_04_NAME=os\nPROD_IMPORT_05_LINE=3\nPROD_IMPORT_05_NAME=pathlib\nPROD_IMPORT_06_LINE=3\nPROD_IMPORT_06_NAME=stat\nPROD_IMPORT_07_LINE=3\nPROD_IMPORT_07_NAME=sys\nPROD_EXEC_CALL_COUNT=0\nPROD_REFERENCED_PATH_COUNT=1\nPROD_REF_01_PATH=/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b\nPROD_REF_01_EXISTS=True\nPROD_REF_01_IS_FILE=False\nPROD_TRANSPORT_SIGNATURE_COUNT=0\nACCEPTED_TRANSPORT_SIGNATURE_COUNT=34\nACCEPTED_TRANSPORT_SIG_01_LINE=16\nACCEPTED_TRANSPORT_SIG_01_TEXT=OPERATOR_KEY=pathlib.Path('[SENSITIVE_PATH]\nACCEPTED_TRANSPORT_SIG_02_LINE=17\nACCEPTED_TRANSPORT_SIG_02_TEXT=VPS_KNOWN_HOSTS=CONFIG_ROOT/'vps_known_hosts'\nACCEPTED_TRANSPORT_SIG_03_LINE=24\nACCEPTED_TRANSPORT_SIG_03_TEXT=OPERATOR_KEY_FINGERPRINT='SHA256:wipXiBB3cpAwyWap9LcB185WjEEmDxtRJsI/UuMVAp0'\nACCEPTED_TRANSPORT_SIG_04_LINE=413\nACCEPTED_TRANSPORT_SIG_04_TEXT=return run([SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,cmd],input=input,timeout=timeout,check=check)\nACCEPTED_TRANSPORT_SIG_05_LINE=492\nACCEPTED_TRANSPORT_SIG_05_TEXT=cmd=[SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,remote]\nACCEPTED_TRANSPORT_SIG_06_LINE=537\nACCEPTED_TRANSPORT_SIG_06_TEXT=else: run([SCP,'-q','-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node+':'+src,str(local)],timeout=7200)\nACCEPTED_TRANSPORT_SIG_07_LINE=543\nACCEPTED_TRANSPORT_SIG_07_TEXT=def operator_key_fingerprint():\nACCEPTED_TRANSPORT_SIG_08_LINE=544\nACCEPTED_TRANSPORT_SIG_08_TEXT=if not OPERATOR_KEY.is_file() or OPERATOR_KEY.is_symlink(): raise BackupError('OPERATOR_KEY_MISSING')\nACCEPTED_TRANSPORT_SIG_09_LINE=545\nACCEPTED_TRANSPORT_SIG_09_TEXT=p=run(['ssh-keygen','-lf',str(OPERATOR_KEY),'-E','sha256'],timeout=30)\nACCEPTED_TRANSPORT_SIG_10_LINE=548\nACCEPTED_TRANSPORT_SIG_10_TEXT=if not m or m.group(1)!=OPERATOR_KEY_FINGERPRINT: raise BackupError('OPERATOR_KEY_FINGERPRINT_MISMATCH')\nACCEPTED_TRANSPORT_SIG_11_LINE=565\nACCEPTED_TRANSPORT_SIG_11_TEXT=def ensure_vps_known_hosts(targets):\nACCEPTED_TRANSPORT_SIG_12_LINE=570\nACCEPTED_TRANSPORT_SIG_12_TEXT=atomic_write(VPS_KNOWN_HOSTS,('\\n'.join(lines)+'\\n').encode(),0o600)\nACCEPTED_TRANSPORT_SIG_13_LINE=572\nACCEPTED_TRANSPORT_SIG_13_TEXT=def vps_ssh_argv(t, *, use_agent=False):\nACCEPTED_TRANSPORT_SIG_14_LINE=573\nACCEPTED_TRANSPORT_SIG_14_TEXT=a=[SSH,'-p',str(t['port']),'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','-o','UserKnownHostsFile='+str(VPS_KNOWN_HOSTS),'-o','ConnectTimeout=15']\nACCEPTED_TRANSPORT_SIG_15_LINE=575\nACCEPTED_TRANSPORT_SIG_15_TEXT=a += ['-o','IdentitiesOnly=no']\nACCEPTED_TRANSPORT_SIG_16_LINE=577\nACCEPTED_TRANSPORT_SIG_16_TEXT=a += ['-i',str(OPERATOR_KEY),'-o','IdentitiesOnly=yes','-o','IdentityAgent=none']\nACCEPTED_TRANSPORT_SIG_17_LINE=581\nACCEPTED_TRANSPORT_SIG_17_TEXT=def vps_run(t, remote_argv, *, input=None, timeout=300, use_agent=False, check=True):\nACCEPTED_TRANSPORT_SIG_18_LINE=583\nACCEPTED_TRANSPORT_SIG_18_TEXT=return run(vps_ssh_argv(t,use_agent=use_agent)+[remote],input=input,timeout=timeout,check=check)\nACCEPTED_TRANSPORT_SIG_19_LINE=586\nACCEPTED_TRANSPORT_SIG_19_TEXT=operator_key_fingerprint()\nACCEPTED_TRANSPORT_SIG_20_LINE=587\nACCEPTED_TRANSPORT_SIG_20_TEXT=ensure_vps_known_hosts(targets)\nACCEPTED_TRANSPORT_SIG_21_LINE=588\nACCEPTED_TRANSPORT_SIG_21_TEXT=pub=run(['ssh-keygen','-y','-f',str(OPERATOR_KEY)],timeout=30).stdout.strip()+b'\\n'\nACCEPTED_TRANSPORT_SIG_22_LINE=592\nACCEPTED_TRANSPORT_SIG_22_TEXT=probe=vps_run(t,['true'],timeout=30,use_agent=False,check=False)\nACCEPTED_TRANSPORT_SIG_23_LINE=594\nACCEPTED_TRANSPORT_SIG_23_TEXT=results[t['logical_id']]='ALREADY_OPERATOR_KEY'; continue\nACCEPTED_TRANSPORT_SIG_24_LINE=600\nACCEPTED_TRANSPORT_SIG_24_TEXT=vps_run(t,['true'],timeout=30,use_agent=False)\nACCEPTED_TRANSPORT_SIG_25_LINE=604\nACCEPTED_TRANSPORT_SIG_25_TEXT=vps_run(us,['true'],timeout=30,use_agent=False)\nACCEPTED_TRANSPORT_SIG_26_LINE=605\nACCEPTED_TRANSPORT_SIG_26_TEXT=results[us['logical_id']]='ALREADY_US_OPERATOR_KEY'\nACCEPTED_TRANSPORT_SIG_27_LINE=609\nACCEPTED_TRANSPORT_SIG_27_TEXT=p=vps_run(t,['sh','-c',command],timeout=120,use_agent=False)\nACCEPTED_TRANSPORT_SIG_28_LINE=617\nACCEPTED_TRANSPORT_SIG_28_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote]\nACCEPTED_TRANSPORT_SIG_29_LINE=627\nACCEPTED_TRANSPORT_SIG_29_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote]\nACCEPTED_TRANSPORT_SIG_30_LINE=664\nACCEPTED_TRANSPORT_SIG_30_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote]\nACCEPTED_TRANSPORT_SIG_31_LINE=851\nACCEPTED_TRANSPORT_SIG_31_TEXT=if OPERATOR_KEY.exists(): p.append('root/.ssh/id_ed25519_netbird_operator')\nACCEPTED_TRANSPORT_SIG_32_LINE=852\nACCEPTED_TRANSPORT_SIG_32_TEXT=if pathlib.Path(str(OPERATOR_KEY)+'.pub').exists(): p.append('root/.ssh/id_ed25519_netbird_operator.pub')\nACCEPTED_TRANSPORT_SIG_33_LINE=868\nACCEPTED_TRANSPORT_SIG_33_TEXT=pipe_to_zstd([SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,remote],payload,timeout=600)\nACCEPTED_TRANSPORT_SIG_34_LINE=933\nACCEPTED_TRANSPORT_SIG_34_TEXT=print('VPS_OPERATOR_KEY_BOOTSTRAP='+json.dumps(boots,sort_keys=True,separators=(',',':')))\nVPS556R2_DECISION=CURRENT_PROD_ENTRY_DELEGATES_TO_LOCAL_COMPONENT\nVPS556R2_NEXT_GATE=READ_CURRENT_DELEGATED_COMPONENT\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260918-INFRA-PVE1-MOLDOVA-CURRENT-PROD-CALLPATH-READONLY-556R2\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "NEWFI102_BEGIN\nCOMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102\nNEWFI102_SAFE_REPORT={\"changes_made\": false, \"decision\": \"FAIL_ARTICLES205_PACK1_HOLD\", \"error\": \"RuntimeError:GUEST:RuntimeError:PERR\", \"rollback_restored\": null, \"rollback_started\": false}\nHOMELAB_RESULT_CONTRACT={\"version\": 1, \"command_id\": \"NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102\", \"status\": \"FAIL\", \"changes_made\": false, \"rollback_started\": false, \"rollback_restored\": null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index af40638f..3c16fca0 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260918-INFRA-PVE1-MOLDOVA-CURRENT-PROD-CALLPATH-READONLY-556R2 -STATUS=OK -RC=0 +COMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102 +STATUS=FAIL +RC=3 HOST=pve01 -MODE=read-only -COMPONENT=infra-pve1-moldova-current-prod-callpath-readonly +MODE=change +COMPONENT=newfi-newfdom-articles205-pack1-two-articles-public-smoke-corrected REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=37ce436636242efdcf203b90c1a92dfa69ada981da23f62e14b4602369702589 +COMMAND_SHA256=52df1dc3ff6172b8b5f56dcda9503a23848dadf9b8443bc5d36b9affc45185b4 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true -CHANGE_DECLARED=false +CHANGE_DECLARED=true RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_STATUS=FAIL RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=0 +COMMAND_RC=3 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,133 +24,13 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=883672d81581efc0c1d92a09229e4b23c9e7899d7bd8e2f7a4a5a768e0902898 -SANITIZED_OUTPUT_SHA256=0e12c81ca87dc2aca47e61e36d9079f2d2971793fe68f8a3f4c1dae3974247cb +RAW_EVIDENCE_SHA256=3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711 +SANITIZED_OUTPUT_SHA256=3b326b94cda2adf7220a7666df72b149dced195c3f8243e4edd1318e63484711 OUTPUT_BEGIN -ERROR_REGISTER_CHECK=OK -REFERENCE_CHECK=OK -AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED -PROD_ENTRY_PRESENT=True -PROD_ENTRY_IS_SYMLINK=False -PROD_ENTRY_RESOLVED=/usr/local/sbin/homelab-backup-v2 -PROD_ENTRY_SIZE=1656 -PROD_ENTRY_SHA256=5077444065c732451cb84898680f62361b21a24ef9eb4f191253e82ead524ea2 -PROD_CALLPATH_MATCH_LINE_COUNT=3 -PROD_CALLPATH_MATCH_LINES=3,4,24 -PROD_CALLPATH_CONTEXT_01_RANGE=1-11 -PROD_CALLPATH_CONTEXT_01_LINE_0001=#!/usr/bin/python3 -PROD_CALLPATH_CONTEXT_01_LINE_0002=from __future__ import annotations -PROD_CALLPATH_CONTEXT_01_LINE_0003=import hashlib, importlib, os, pathlib, stat, sys -PROD_CALLPATH_CONTEXT_01_LINE_0004=ACCEPTED=pathlib.Path('/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b') -PROD_CALLPATH_CONTEXT_01_LINE_0005=EXPECTED={'fresh_lxc_helper.py': 'dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011', 'producer_exec_helper.py': 'b3b97099bcd7126670f866e81faae6a42a96d869d9989e6a67f6ea6c871c90b3', 'lxc_adapter.py': '3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d', 'qemu_adapter.py': '1906db42bd34bbe85eb46fd9797b3572d46e0a41c29d1c29be5f9df5e448f15b', 'scheduler_adapter.py': 'a6f67159a64067773323f028126e3109e15cf17a8142cea5e6129970f1d4da96', 'entry504.py': 'ca6876fa9c3b1465b045344a8ad46962de16972c7da... -PROD_CALLPATH_CONTEXT_01_LINE_0006=def sha(p): -PROD_CALLPATH_CONTEXT_01_LINE_0007=h=hashlib.sha256() -PROD_CALLPATH_CONTEXT_01_LINE_0008=with open(p,'rb',buffering=0) as f: -PROD_CALLPATH_CONTEXT_01_LINE_0009=while True: -PROD_CALLPATH_CONTEXT_01_LINE_0010=b=f.read(1048576) -PROD_CALLPATH_CONTEXT_01_LINE_0011=if not b: break -PROD_CALLPATH_CONTEXT_02_RANGE=20-26 -PROD_CALLPATH_CONTEXT_02_LINE_0020=p=ACCEPTED/name; s=os.lstat(p) -PROD_CALLPATH_CONTEXT_02_LINE_0021=if not stat.S_ISREG(s.st_mode) or stat.S_ISLNK(s.st_mode) or s.st_uid!=0 or s.st_gid!=0 or stat.S_IMODE(s.st_mode)!=0o400 or sha(p)!=want: raise SystemExit('RELEASE_FILE_IDENTITY_'+name) -PROD_CALLPATH_CONTEXT_02_LINE_0022=sys.dont_write_bytecode=True -PROD_CALLPATH_CONTEXT_02_LINE_0023=sys.path.insert(0,str(ACCEPTED)) -PROD_CALLPATH_CONTEXT_02_LINE_0024=e=importlib.import_module('entry504') -PROD_CALLPATH_CONTEXT_02_LINE_0025=return int(e.main()) -PROD_CALLPATH_CONTEXT_02_LINE_0026=if __name__=='__main__': raise SystemExit(main()) -PROD_RELEVANT_FUNCTION_COUNT=0 -PROD_IMPORT_COUNT=7 -PROD_IMPORT_01_LINE=2 -PROD_IMPORT_01_NAME=__future__.annotations -PROD_IMPORT_02_LINE=3 -PROD_IMPORT_02_NAME=hashlib -PROD_IMPORT_03_LINE=3 -PROD_IMPORT_03_NAME=importlib -PROD_IMPORT_04_LINE=3 -PROD_IMPORT_04_NAME=os -PROD_IMPORT_05_LINE=3 -PROD_IMPORT_05_NAME=pathlib -PROD_IMPORT_06_LINE=3 -PROD_IMPORT_06_NAME=stat -PROD_IMPORT_07_LINE=3 -PROD_IMPORT_07_NAME=sys -PROD_EXEC_CALL_COUNT=0 -PROD_REFERENCED_PATH_COUNT=1 -PROD_REF_01_PATH=/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b -PROD_REF_01_EXISTS=True -PROD_REF_01_IS_FILE=False -PROD_TRANSPORT_SIGNATURE_COUNT=0 -ACCEPTED_TRANSPORT_SIGNATURE_COUNT=34 -ACCEPTED_TRANSPORT_SIG_01_LINE=16 -ACCEPTED_TRANSPORT_SIG_01_TEXT=OPERATOR_KEY=pathlib.Path('[SENSITIVE_PATH] -ACCEPTED_TRANSPORT_SIG_02_LINE=17 -ACCEPTED_TRANSPORT_SIG_02_TEXT=VPS_KNOWN_HOSTS=CONFIG_ROOT/'vps_known_hosts' -ACCEPTED_TRANSPORT_SIG_03_LINE=24 -ACCEPTED_TRANSPORT_SIG_03_TEXT=OPERATOR_KEY_FINGERPRINT='SHA256:wipXiBB3cpAwyWap9LcB185WjEEmDxtRJsI/UuMVAp0' -ACCEPTED_TRANSPORT_SIG_04_LINE=413 -ACCEPTED_TRANSPORT_SIG_04_TEXT=return run([SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,cmd],input=input,timeout=timeout,check=check) -ACCEPTED_TRANSPORT_SIG_05_LINE=492 -ACCEPTED_TRANSPORT_SIG_05_TEXT=cmd=[SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,remote] -ACCEPTED_TRANSPORT_SIG_06_LINE=537 -ACCEPTED_TRANSPORT_SIG_06_TEXT=else: run([SCP,'-q','-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node+':'+src,str(local)],timeout=7200) -ACCEPTED_TRANSPORT_SIG_07_LINE=543 -ACCEPTED_TRANSPORT_SIG_07_TEXT=def operator_key_fingerprint(): -ACCEPTED_TRANSPORT_SIG_08_LINE=544 -ACCEPTED_TRANSPORT_SIG_08_TEXT=if not OPERATOR_KEY.is_file() or OPERATOR_KEY.is_symlink(): raise BackupError('OPERATOR_KEY_MISSING') -ACCEPTED_TRANSPORT_SIG_09_LINE=545 -ACCEPTED_TRANSPORT_SIG_09_TEXT=p=run(['ssh-keygen','-lf',str(OPERATOR_KEY),'-E','sha256'],timeout=30) -ACCEPTED_TRANSPORT_SIG_10_LINE=548 -ACCEPTED_TRANSPORT_SIG_10_TEXT=if not m or m.group(1)!=OPERATOR_KEY_FINGERPRINT: raise BackupError('OPERATOR_KEY_FINGERPRINT_MISMATCH') -ACCEPTED_TRANSPORT_SIG_11_LINE=565 -ACCEPTED_TRANSPORT_SIG_11_TEXT=def ensure_vps_known_hosts(targets): -ACCEPTED_TRANSPORT_SIG_12_LINE=570 -ACCEPTED_TRANSPORT_SIG_12_TEXT=atomic_write(VPS_KNOWN_HOSTS,('\n'.join(lines)+'\n').encode(),0o600) -ACCEPTED_TRANSPORT_SIG_13_LINE=572 -ACCEPTED_TRANSPORT_SIG_13_TEXT=def vps_ssh_argv(t, *, use_agent=False): -ACCEPTED_TRANSPORT_SIG_14_LINE=573 -ACCEPTED_TRANSPORT_SIG_14_TEXT=a=[SSH,'-p',str(t['port']),'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','-o','UserKnownHostsFile='+str(VPS_KNOWN_HOSTS),'-o','ConnectTimeout=15'] -ACCEPTED_TRANSPORT_SIG_15_LINE=575 -ACCEPTED_TRANSPORT_SIG_15_TEXT=a += ['-o','IdentitiesOnly=no'] -ACCEPTED_TRANSPORT_SIG_16_LINE=577 -ACCEPTED_TRANSPORT_SIG_16_TEXT=a += ['-i',str(OPERATOR_KEY),'-o','IdentitiesOnly=yes','-o','IdentityAgent=none'] -ACCEPTED_TRANSPORT_SIG_17_LINE=581 -ACCEPTED_TRANSPORT_SIG_17_TEXT=def vps_run(t, remote_argv, *, input=None, timeout=300, use_agent=False, check=True): -ACCEPTED_TRANSPORT_SIG_18_LINE=583 -ACCEPTED_TRANSPORT_SIG_18_TEXT=return run(vps_ssh_argv(t,use_agent=use_agent)+[remote],input=input,timeout=timeout,check=check) -ACCEPTED_TRANSPORT_SIG_19_LINE=586 -ACCEPTED_TRANSPORT_SIG_19_TEXT=operator_key_fingerprint() -ACCEPTED_TRANSPORT_SIG_20_LINE=587 -ACCEPTED_TRANSPORT_SIG_20_TEXT=ensure_vps_known_hosts(targets) -ACCEPTED_TRANSPORT_SIG_21_LINE=588 -ACCEPTED_TRANSPORT_SIG_21_TEXT=pub=run(['ssh-keygen','-y','-f',str(OPERATOR_KEY)],timeout=30).stdout.strip()+b'\n' -ACCEPTED_TRANSPORT_SIG_22_LINE=592 -ACCEPTED_TRANSPORT_SIG_22_TEXT=probe=vps_run(t,['true'],timeout=30,use_agent=False,check=False) -ACCEPTED_TRANSPORT_SIG_23_LINE=594 -ACCEPTED_TRANSPORT_SIG_23_TEXT=results[t['logical_id']]='ALREADY_OPERATOR_KEY'; continue -ACCEPTED_TRANSPORT_SIG_24_LINE=600 -ACCEPTED_TRANSPORT_SIG_24_TEXT=vps_run(t,['true'],timeout=30,use_agent=False) -ACCEPTED_TRANSPORT_SIG_25_LINE=604 -ACCEPTED_TRANSPORT_SIG_25_TEXT=vps_run(us,['true'],timeout=30,use_agent=False) -ACCEPTED_TRANSPORT_SIG_26_LINE=605 -ACCEPTED_TRANSPORT_SIG_26_TEXT=results[us['logical_id']]='ALREADY_US_OPERATOR_KEY' -ACCEPTED_TRANSPORT_SIG_27_LINE=609 -ACCEPTED_TRANSPORT_SIG_27_TEXT=p=vps_run(t,['sh','-c',command],timeout=120,use_agent=False) -ACCEPTED_TRANSPORT_SIG_28_LINE=617 -ACCEPTED_TRANSPORT_SIG_28_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote] -ACCEPTED_TRANSPORT_SIG_29_LINE=627 -ACCEPTED_TRANSPORT_SIG_29_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote] -ACCEPTED_TRANSPORT_SIG_30_LINE=664 -ACCEPTED_TRANSPORT_SIG_30_TEXT=argv=vps_ssh_argv(t,use_agent=False)+[remote] -ACCEPTED_TRANSPORT_SIG_31_LINE=851 -ACCEPTED_TRANSPORT_SIG_31_TEXT=if OPERATOR_KEY.exists(): p.append('root/.ssh/id_ed25519_netbird_operator') -ACCEPTED_TRANSPORT_SIG_32_LINE=852 -ACCEPTED_TRANSPORT_SIG_32_TEXT=if pathlib.Path(str(OPERATOR_KEY)+'.pub').exists(): p.append('root/.ssh/id_ed25519_netbird_operator.pub') -ACCEPTED_TRANSPORT_SIG_33_LINE=868 -ACCEPTED_TRANSPORT_SIG_33_TEXT=pipe_to_zstd([SSH,'-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','root@'+node,remote],payload,timeout=600) -ACCEPTED_TRANSPORT_SIG_34_LINE=933 -ACCEPTED_TRANSPORT_SIG_34_TEXT=print('VPS_OPERATOR_KEY_BOOTSTRAP='+json.dumps(boots,sort_keys=True,separators=(',',':'))) -VPS556R2_DECISION=CURRENT_PROD_ENTRY_DELEGATES_TO_LOCAL_COMPONENT -VPS556R2_NEXT_GATE=READ_CURRENT_DELEGATED_COMPONENT -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260918-INFRA-PVE1-MOLDOVA-CURRENT-PROD-CALLPATH-READONLY-556R2","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +NEWFI102_BEGIN +COMMAND_ID=NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102 +NEWFI102_SAFE_REPORT={"changes_made": false, "decision": "FAIL_ARTICLES205_PACK1_HOLD", "error": "RuntimeError:GUEST:RuntimeError:PERR", "rollback_restored": null, "rollback_started": false} +HOMELAB_RESULT_CONTRACT={"version": 1, "command_id": "NEWFI-260918-NEWFDOM-ARTICLES205-PACK1-102", "status": "FAIL", "changes_made": false, "rollback_started": false, "rollback_restored": null} OUTPUT_END CHAT_OUTPUT_END