runtime: publish SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1
This commit is contained in:
+38
File diff suppressed because one or more lines are too long
+143
@@ -0,0 +1,143 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
MODE=read-only
|
||||
COMPONENT=homelab-backup-ct110-controlled-helper-replay
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
||||
COMMAND_SHA256=32a5e6c027972640a0f44b6bdd014c002fc0caf8a527b7c84e7ecbf8799f0239
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGE_DECLARED=false
|
||||
RESULT_CONTRACT_VALID=true
|
||||
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
|
||||
RESULT_CONTRACT_ERROR=NONE
|
||||
COMMAND_RC=0
|
||||
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=78769cfe154169eb8d04145ec7c1d4c210deff8c7af9abdada3e9206ec9c2ea5
|
||||
SANITIZED_OUTPUT_SHA256=78769cfe154169eb8d04145ec7c1d4c210deff8c7af9abdada3e9206ec9c2ea5
|
||||
OUTPUT_BEGIN
|
||||
BACKUP_CT110_CONTROLLED_HELPER_REPLAY_BEGIN=true
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1
|
||||
MODE=read-only
|
||||
COMPONENT=homelab-backup-ct110-controlled-helper-replay
|
||||
MUTATION_BOUNDARY=TEMP_SCRATCH_UNDER_RUN_PLUS_READ_ONLY_PVESH_PCT_SYSTEMCTL_PS_AND_EXECUTE_ONLY_STATIC_PROVEN_PLANNING_HELPER;NO_CAPTURE_PVE_GUEST;NO_VZDUMP_EXECUTION;NO_BACKUP_UPLOAD;NO_RETENTION;NO_AUDIT_RUN;NO_SYSTEMD_ACTION;NO_LOCK_BREAK;NO_MAIL;NO_GIT_WRITE;NO_NETBIRD_SKLADCHIK_CHANGE
|
||||
HOST=pve01
|
||||
CLUSTER_QUORATE=Yes
|
||||
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
|
||||
SOURCE_1225_STATUS=OK
|
||||
SOURCE_1225_DECISION=PASS_HELPER_REPLAY_STATIC_SAFETY_PROVEN
|
||||
SOURCE_1225_NEXT_GATE=CONTROLLED_CT110_HELPER_REPLAY_ONLY
|
||||
=== SOURCE_IDENTITY ===
|
||||
LXC_SHA256=3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d
|
||||
HELPER_SHA256=dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011
|
||||
LXC_SHA_MATCH=true
|
||||
HELPER_SHA_MATCH=true
|
||||
=== CONTROLLED_REPLAY ===
|
||||
DIAG_SCRATCH=/run/workers2-1226-gg5z91zs
|
||||
LXC_ENV_AST={'PATH': '/usr/sbin:/usr/bin:/sbin:/bin', 'LC_ALL': 'C', 'LANG': 'C', 'HOME': '/root', 'PYTHONDONTWRITEBYTECODE': '1'}
|
||||
LXC_PVESH_SHA_EXPECTED=9ed13d4c2d82e7864ff0192c428da7669af263f81dfcc84d5a981ca98fee8439
|
||||
LXC_VZDUMP_SHA_EXPECTED=21339d009afd55cb7ec613b64c1f493b2a7dbd18b85b4d712909ef6d6710f4ea
|
||||
LXC_HELPER_CONST=None
|
||||
ENV_RESOLUTION=PASS
|
||||
ENV_KEYS=HOME,LANG,LC_ALL,PATH,PYTHONDONTWRITEBYTECODE
|
||||
ENV_SHA256=456f8e8fc9ebad1ab3986b95605b59ddc935705e06dc61932168f9570df76c90
|
||||
LIVE_PVESH_SHA=9ed13d4c2d82e7864ff0192c428da7669af263f81dfcc84d5a981ca98fee8439
|
||||
LIVE_VZDUMP_SHA=21339d009afd55cb7ec613b64c1f493b2a7dbd18b85b4d712909ef6d6710f4ea
|
||||
PVESH_IDENTITY_MATCH=true
|
||||
VZDUMP_IDENTITY_MATCH=true
|
||||
TOOL_IDENTITY_GATE=PASS
|
||||
CT110_UNPRIVILEGED=true
|
||||
CT110_CONFIG_GATE=PASS
|
||||
BACKUP_SERVICE_STATE_RAW=failed/failed
|
||||
ACTIVE_VZDUMP_PROCESS_COUNT=0
|
||||
CONCURRENCY_GATE=PASS
|
||||
RUN1_INPUT_BYTES=186216
|
||||
RUN1_INPUT_SHA256=430372537fe5a38c3de0ea08d2f30b165177d16fe6b3fe55a90bc823e8265fbf
|
||||
RUN1_ROW_COUNT=15
|
||||
RUN1_CONFIG_COUNT=8
|
||||
RUN1_TASK_COUNT=749
|
||||
RUN1_STAGING_FREE=285682868224
|
||||
RUN1_RC=1
|
||||
RUN1_STDOUT_BYTES=0
|
||||
RUN1_STDOUT_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
RUN1_STDOUT_BEGIN
|
||||
|
||||
RUN1_STDOUT_END
|
||||
RUN1_STDERR_BYTES=898
|
||||
RUN1_STDERR_SHA256=ee3d762267c6d073c4a78f5f96ce6d98ce9b395fecb645ed23853cba7305f9a9
|
||||
RUN1_STDERR_BEGIN
|
||||
Traceback (most recent call last):
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 45, in <module>
|
||||
raise SystemExit(main())
|
||||
~~~~^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 34, in main
|
||||
pve265.validate_job(job,now)
|
||||
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 126, in validate_job
|
||||
need(job.get('coverage_eligible') is True and job.get('blockers')==[],'JOB_BLOCKED')
|
||||
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 32, in need
|
||||
if not ok:raise PVEError(reason)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
pve265.PVEError: JOB_BLOCKED
|
||||
|
||||
RUN1_STDERR_END
|
||||
RUN1_FAILURE_MODE=NONZERO_RC
|
||||
RUN2_INPUT_BYTES=186199
|
||||
RUN2_INPUT_SHA256=09cd393d63f56e95700a678037ebd0099c118036dc7b6fb497482a562473b92f
|
||||
RUN2_ROW_COUNT=15
|
||||
RUN2_CONFIG_COUNT=8
|
||||
RUN2_TASK_COUNT=749
|
||||
RUN2_STAGING_FREE=285682868224
|
||||
RUN2_RC=1
|
||||
RUN2_STDOUT_BYTES=0
|
||||
RUN2_STDOUT_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
RUN2_STDOUT_BEGIN
|
||||
|
||||
RUN2_STDOUT_END
|
||||
RUN2_STDERR_BYTES=898
|
||||
RUN2_STDERR_SHA256=ee3d762267c6d073c4a78f5f96ce6d98ce9b395fecb645ed23853cba7305f9a9
|
||||
RUN2_STDERR_BEGIN
|
||||
Traceback (most recent call last):
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 45, in <module>
|
||||
raise SystemExit(main())
|
||||
~~~~^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 34, in main
|
||||
pve265.validate_job(job,now)
|
||||
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 126, in validate_job
|
||||
need(job.get('coverage_eligible') is True and job.get('blockers')==[],'JOB_BLOCKED')
|
||||
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 32, in need
|
||||
if not ok:raise PVEError(reason)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
pve265.PVEError: JOB_BLOCKED
|
||||
|
||||
RUN2_STDERR_END
|
||||
RUN2_FAILURE_MODE=NONZERO_RC
|
||||
RUN_MODE_STABLE=true
|
||||
RUN_RC_STABLE=true
|
||||
RUN_STDERR_SHA_STABLE=true
|
||||
RUN_JOB_SHA_STABLE=true
|
||||
RUN_ARGV_SHA_STABLE=true
|
||||
REPLAY_PRIMARY_FAILURE_MODE=NONZERO_RC
|
||||
DIAG_SCRATCH_REMOVED=true
|
||||
CONTROLLED_REPLAY_DIAG_RC=0
|
||||
TASK_RESULT=PASS_CT110_CONTROLLED_HELPER_REPLAY_COLLECTED
|
||||
DECISION=PASS_CT110_CONTROLLED_HELPER_REPLAY_COLLECTED
|
||||
NEXT_GATE=READ_EXACT_1226_AND_FIX_ONLY_PROVEN_HELPER_FAILURE_MODE
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
+8
-8
File diff suppressed because one or more lines are too long
+112
-132
@@ -1,15 +1,15 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-HELPER-TRANSITIVE-STATIC-RCA-1225R1
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
MODE=read-only
|
||||
COMPONENT=homelab-backup-ct110-helper-transitive-static-rca
|
||||
COMPONENT=homelab-backup-ct110-controlled-helper-replay
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
||||
COMMAND_SHA256=6d64e36c947c6baf0c7e53d2c17497d65666c040e09535e4223e53e5c8dbfa19
|
||||
COMMAND_SHA256=32a5e6c027972640a0f44b6bdd014c002fc0caf8a527b7c84e7ecbf8799f0239
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGE_DECLARED=false
|
||||
@@ -24,140 +24,120 @@ MUTATION_OUTCOME=NO_MUTATION
|
||||
SANITIZED=yes
|
||||
SECRETS_INCLUDED=no
|
||||
PRIVATE_ADDRESSES_INCLUDED=no
|
||||
RAW_EVIDENCE_SHA256=6d6b105d469ee853c1554e02708bf1d9d5be7c963d4a5f9e7ac8024b6ed2c41b
|
||||
SANITIZED_OUTPUT_SHA256=6d6b105d469ee853c1554e02708bf1d9d5be7c963d4a5f9e7ac8024b6ed2c41b
|
||||
RAW_EVIDENCE_SHA256=78769cfe154169eb8d04145ec7c1d4c210deff8c7af9abdada3e9206ec9c2ea5
|
||||
SANITIZED_OUTPUT_SHA256=78769cfe154169eb8d04145ec7c1d4c210deff8c7af9abdada3e9206ec9c2ea5
|
||||
OUTPUT_BEGIN
|
||||
BACKUP_CT110_HELPER_TRANSITIVE_STATIC_RCA_BEGIN=true
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-HELPER-TRANSITIVE-STATIC-RCA-1225R1
|
||||
BACKUP_CT110_CONTROLLED_HELPER_REPLAY_BEGIN=true
|
||||
COMMAND_ID=SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1
|
||||
MODE=read-only
|
||||
COMPONENT=homelab-backup-ct110-helper-transitive-static-rca
|
||||
MUTATION_BOUNDARY=PURE_STATIC_AST_ONLY_NO_PROJECT_IMPORT_NO_HELPER_EXECUTION_NO_VZDUMP_NO_SYSTEMD_ACTION_NO_BACKUP_NO_AUDIT_NO_FILE_MUTATION_NO_LOCK_BREAK_NO_GIT_WRITE_NO_NETBIRD_SKLADCHIK_CHANGE
|
||||
COMPONENT=homelab-backup-ct110-controlled-helper-replay
|
||||
MUTATION_BOUNDARY=TEMP_SCRATCH_UNDER_RUN_PLUS_READ_ONLY_PVESH_PCT_SYSTEMCTL_PS_AND_EXECUTE_ONLY_STATIC_PROVEN_PLANNING_HELPER;NO_CAPTURE_PVE_GUEST;NO_VZDUMP_EXECUTION;NO_BACKUP_UPLOAD;NO_RETENTION;NO_AUDIT_RUN;NO_SYSTEMD_ACTION;NO_LOCK_BREAK;NO_MAIL;NO_GIT_WRITE;NO_NETBIRD_SKLADCHIK_CHANGE
|
||||
HOST=pve01
|
||||
CLUSTER_QUORATE=Yes
|
||||
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
|
||||
SOURCE_1224_STATUS=OK
|
||||
SOURCE_1224_DECISION=PASS_CT110_HELPER_STATIC_RCA_COLLECTED
|
||||
SOURCE_1224_NEXT_GATE=READ_EXACT_1224_AND_DECIDE_SAFE_HELPER_REPLAY_OR_SOURCE_FIX
|
||||
=== TRANSITIVE_STATIC_AST ===
|
||||
C411_PY_COUNT=17
|
||||
C411_FILE=adapter|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/adapter.py|SHA256=18eb29cef165371b48bcb78e1a456e1939e6eff253787218133162cc89ab9fa3|BYTES=2989
|
||||
C411_FILE=guest266|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/guest266.py|SHA256=86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868|BYTES=7385
|
||||
C411_FILE=large264|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/large264.py|SHA256=5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a|BYTES=16514
|
||||
C411_FILE=nodeplan263|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/nodeplan263.py|SHA256=db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060|BYTES=4603
|
||||
C411_FILE=pve265|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py|SHA256=cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be|BYTES=12888
|
||||
C411_FILE=pve270|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve270.py|SHA256=97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef|BYTES=19595
|
||||
C411_FILE=pve282|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve282.py|SHA256=73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012|BYTES=6195
|
||||
C411_FILE=restore262|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/restore262.py|SHA256=56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1|BYTES=14701
|
||||
C411_FILE=stream263|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/stream263.py|SHA256=a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16|BYTES=8831
|
||||
C411_FILE=test_guest266|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_guest266.py|SHA256=460b950924a475ce0a28dc759512e7dbe2323ae2cc42f7ef4c6181710a2a13da|BYTES=10752
|
||||
C411_FILE=test_perl270|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_perl270.py|SHA256=50fc10865078a7b9b255dc627059824184441a47c4ede52e23f24c1186e3512f|BYTES=5441
|
||||
C411_FILE=test_producer282|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_producer282.py|SHA256=a67d927cc428935791f9eecc3acf571d089f80761162f4589b7d684fba6b8af7|BYTES=12215
|
||||
C411_FILE=test_pve265|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_pve265.py|SHA256=16a9407d01bf73db687ef38684c59205fc2e6a9223cd9cee6ec6e8dde9d38707|BYTES=11781
|
||||
C411_FILE=test_pve270|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_pve270.py|SHA256=9fccd20b490613fdd5b14b4105cf0d9fd744f204e1ed1d6893e54c9f69bf6fb4|BYTES=12077
|
||||
C411_FILE=test_pve282|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/test_pve282.py|SHA256=1056407aab76e17181b05e043cb42c086058545a8e0027689ab4e03eee6531c4|BYTES=5785
|
||||
C411_FILE=transport261|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/transport261.py|SHA256=b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688|BYTES=15364
|
||||
C411_FILE=v2core|PATH=/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/v2core.py|SHA256=e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2|BYTES=11755
|
||||
=== ADAPTER_FULL_SOURCE_BEGIN ===
|
||||
0001:#!/usr/bin/python3
|
||||
0002:import hashlib,inspect,json,pathlib,sys
|
||||
0003:BASE=pathlib.Path(__file__).resolve().parent
|
||||
0004:EXPECTED={
|
||||
0005:'v2core.py':'e285bf9a5678d07dcbb90261f9f93e7826ff524e04cfec780bf5a3c4b0dc29f2',
|
||||
0006:'transport261.py':'b9b92f957bf441cb5d1702f4881897328e6c0338f8c3f6d41d27d9a349b37688',
|
||||
0007:'restore262.py':'56d1b961c8d5654d5e2ee2755268db46bd2202bca11e69788febf991cfaa79f1',
|
||||
0008:'stream263.py':'a83d03a86b93a855716658652dd073fcb281cd387fc6200fe4bc2a922f39ea16',
|
||||
0009:'nodeplan263.py':'db5c16ee24d25aa1694530332d3190ab7cc5d4f8eb69067d025e27ad5c995060',
|
||||
0010:'large264.py':'5cc4641fc35e4dd554495a36146da7dbbb7f142d1450e04cc5d3c89678b8497a',
|
||||
0011:'pve265.py':'cd2f634414a8e38a3789015aeca5a9b47821f77d7d1fa61dcdbdc866172963be',
|
||||
0012:'guest266.py':'86433bc424d5fa5017c20f7a237c82874b02357a3283660d8a6b0039ef2bc868',
|
||||
0013:'pve270.py':'97015277a4f3f8129c0fd11eb70c06293026366f1f8232a97feeed513a2dbcef',
|
||||
0014:'pve282.py':'73c6cb7773eb8e82d1e7ed5ab4733b4afb88f74ae69c09125d0378d6e480e012'}
|
||||
0015:def sha(p):
|
||||
0016: h=hashlib.sha256()
|
||||
0017: with open(p,'rb') as f:
|
||||
0018: for b in iter(lambda:f.read(1048576),b''):h.update(b)
|
||||
0019: return h.hexdigest()
|
||||
0020:def verify_sources():
|
||||
0021: for name,want in EXPECTED.items():
|
||||
0022: p=BASE/name
|
||||
0023: if not p.is_file() or p.is_symlink() or sha(p)!=want:raise RuntimeError('SOURCE_IDENTITY_'+name)
|
||||
0024:def load_graph():
|
||||
0025: import guest266,pve265,pve270,pve282
|
||||
0026: if hasattr(guest266,'dump_argv'):raise RuntimeError('GUEST266_UNEXPECTED_DUMP_ARGV')
|
||||
0027: if not hasattr(pve265,'dump_argv'):raise RuntimeError('PVE265_DUMP_ARGV_MISSING')
|
||||
0028: if getattr(pve270,'old',None) is not pve265:raise RuntimeError('PVE270_OLD_NOT_PVE265')
|
||||
0029: if getattr(pve282,'old',None) is not pve265:raise RuntimeError('PVE282_OLD_NOT_PVE265')
|
||||
0030: if getattr(pve282,'proven',None) is not pve270:raise RuntimeError('PVE282_PROVEN_NOT_PVE270')
|
||||
0031: for n in ('MappedScratch','capture_archive','validate_mapping'):
|
||||
0032: if not hasattr(pve270,n):raise RuntimeError('PVE270_'+n.upper()+'_MISSING')
|
||||
0033: if getattr(pve282,n,None) is not getattr(pve270,n):raise RuntimeError('PVE282_ALIAS_'+n.upper()+'_MISMATCH')
|
||||
0034: return guest266,pve265,pve270,pve282
|
||||
0035:def describe():
|
||||
0036: _,p265,p270,p282=load_graph()
|
||||
0037: funcs={'pve265.dump_argv':p265.dump_argv,'pve265.validate_job':p265.validate_job,'pve265.make_plan':p265.make_plan,'pve270.validate_mapping':p270.validate_mapping,'pve270.capture_archive':p270.capture_archive,'pve270.produce':p270.produce,'pve282.select112':p282.select112,'pve282.produce':p282.produce}
|
||||
0038: return {'schema':1,'bundle':'pve-lxc-adapter-411r1','source_sha256':EXPECTED,'signatures':{k:str(inspect.signature(v)) for k,v in funcs.items()},'owner':{'dump_argv':'pve265','MappedScratch':'pve270','capture_archive':'pve270','validate_mapping':'pve270','pve282.old':'pve265','pve282.proven':'pve270'}}
|
||||
0039:def main():
|
||||
0040: verify_sources(); mode=sys.argv[1] if len(sys.argv)>1 else 'selftest'; d=describe()
|
||||
0041: if mode not in ('selftest','describe'):raise SystemExit(2)
|
||||
0042: print(json.dumps(d,sort_keys=True,separators=(',',':')))
|
||||
0043: if mode=='selftest':print('ADAPTER_SELFTEST=PASS')
|
||||
0044:if __name__=='__main__':main()
|
||||
=== ADAPTER_FULL_SOURCE_END ===
|
||||
=== ADAPTER_FUNC_verify_sources_BEGIN ===
|
||||
0001:def verify_sources():
|
||||
0002: for name,want in EXPECTED.items():
|
||||
0003: p=BASE/name
|
||||
0004: if not p.is_file() or p.is_symlink() or sha(p)!=want:raise RuntimeError('SOURCE_IDENTITY_'+name)
|
||||
=== ADAPTER_FUNC_verify_sources_END ===
|
||||
=== ADAPTER_FUNC_load_graph_BEGIN ===
|
||||
0001:def load_graph():
|
||||
0002: import guest266,pve265,pve270,pve282
|
||||
0003: if hasattr(guest266,'dump_argv'):raise RuntimeError('GUEST266_UNEXPECTED_DUMP_ARGV')
|
||||
0004: if not hasattr(pve265,'dump_argv'):raise RuntimeError('PVE265_DUMP_ARGV_MISSING')
|
||||
0005: if getattr(pve270,'old',None) is not pve265:raise RuntimeError('PVE270_OLD_NOT_PVE265')
|
||||
0006: if getattr(pve282,'old',None) is not pve265:raise RuntimeError('PVE282_OLD_NOT_PVE265')
|
||||
0007: if getattr(pve282,'proven',None) is not pve270:raise RuntimeError('PVE282_PROVEN_NOT_PVE270')
|
||||
0008: for n in ('MappedScratch','capture_archive','validate_mapping'):
|
||||
0009: if not hasattr(pve270,n):raise RuntimeError('PVE270_'+n.upper()+'_MISSING')
|
||||
0010: if getattr(pve282,n,None) is not getattr(pve270,n):raise RuntimeError('PVE282_ALIAS_'+n.upper()+'_MISMATCH')
|
||||
0011: return guest266,pve265,pve270,pve282
|
||||
=== ADAPTER_FUNC_load_graph_END ===
|
||||
ADAPTER_REACHABLE_FUNCTIONS=load_graph,sha,verify_sources
|
||||
ADAPTER_REACHABLE_EDGES=[["verify_sources","sha"]]
|
||||
ADAPTER_REACHABLE_CALLS=[{"args":["guest266","'dump_argv'"],"func":"hasattr","kw":[],"lineno":26,"owner":"load_graph"},{"args":["'GUEST266_UNEXPECTED_DUMP_ARGV'"],"func":"RuntimeError","kw":[],"lineno":26,"owner":"load_graph"},{"args":["pve265","'dump_argv'"],"func":"hasattr","kw":[],"lineno":27,"owner":"load_graph"},{"args":["'PVE265_DUMP_ARGV_MISSING'"],"func":"RuntimeError","kw":[],"lineno":27,"owner":"load_graph"},{"args":["pve270","'old'","None"],"func":"getattr","kw":[],"lineno":28,"owner":"load_graph"},{"args":["'PVE270_OLD_NOT_PVE265'"],"func":"RuntimeError","kw":[],"lineno":28,"owner":"load_graph"},{"args":["pve282","'old'","None"],"func":"getattr","kw":[],"lineno":29,"owner":"load_graph"},{"args":["'PVE282_OLD_NOT_PVE265'"],"func":"RuntimeError","kw":[],"lineno":29,"owner":"load_graph"},{"args":["pve282","'proven'","None"],"func":"getattr","kw":[],"lineno":30,"owner":"load_graph"},{"args":["'PVE282_PROVEN_NOT_PVE270'"],"func":"RuntimeError","kw":[],"lineno":30,"owner":"load_graph"},{"args":["pve270","n"],"func":"hasattr","kw":[],"lineno":32,"owner":"load_graph"},{"args":["'PVE270_' + n.upper() + '_MISSING'"],"func":"RuntimeError","kw":[],"lineno":32,"owner":"load_graph"},{"args":["pve282","n","None"],"func":"getattr","kw":[],"lineno":33,"owner":"load_graph"},{"args":["pve270","n"],"func":"getattr","kw":[],"lineno":33,"owner":"load_graph"},{"args":["'PVE282_ALIAS_' + n.upper() + '_MISMATCH'"],"func":"RuntimeError","kw":[],"lineno":33,"owner":"load_graph"},{"args":[],"func":"n.upper","kw":[],"lineno":32,"owner":"load_graph"},{"args":[],"func":"n.upper","kw":[],"lineno":33,"owner":"load_graph"},{"args":[],"func":"hashlib.sha256","kw":[],"lineno":16,"owner":"sha"},{"args":[],"func":"h.hexdigest","kw":[],"lineno":19,"owner":"sha"},{"args":["p","'rb'"],"func":"open","kw":[],"lineno":17,"owner":"sha"},{"args":["lambda: f.read(1048576)","b''"],"func":"iter","kw":[],"lineno":18,"owner":"sha"},{"args":["b"],"func":"h.update","kw":[],"lineno":18,"owner":"sha"},{"args":["1048576"],"func":"f.read","kw":[],"lineno":18,"owner":"sha"},{"args":[],"func":"EXPECTED.items","kw":[],"lineno":21,"owner":"verify_sources"},{"args":[],"func":"p.is_symlink","kw":[],"lineno":23,"owner":"verify_sources"},{"args":["'SOURCE_IDENTITY_' + name"],"func":"RuntimeError","kw":[],"lineno":23,"owner":"verify_sources"},{"args":[],"func":"p.is_file","kw":[],"lineno":23,"owner":"verify_sources"},{"args":["p"],"func":"sha","kw":[],"lineno":23,"owner":"verify_sources"}]
|
||||
ADAPTER_REACHABLE_SIDE_EFFECT_CALLS=[]
|
||||
ADAPTER_REACHABLE_SIDE_EFFECT_CALL_COUNT=0
|
||||
LOCAL_IMPORT_GRAPH={"adapter":[]}
|
||||
LOCAL_IMPORT_GRAPH_MODULES=adapter
|
||||
MODULE_adapter_TOPLEVEL_CALLS=[{"args":[],"func":"resolve","kw":[],"lineno":3},{"args":["__file__"],"func":"pathlib.Path","kw":[],"lineno":3},{"args":[],"func":"main","kw":[],"lineno":44}]
|
||||
MODULE_adapter_TOPLEVEL_SIDE_EFFECT_CALLS=[]
|
||||
LOCAL_IMPORT_TOPLEVEL_SIDE_EFFECT_CALLS=[]
|
||||
LOCAL_IMPORT_TOPLEVEL_SIDE_EFFECT_COUNT=0
|
||||
GUEST266_FOUND=true
|
||||
=== GUEST266_NO_ACTIVE_TASKS_BEGIN ===
|
||||
0001:def no_active_tasks(rows,vmid):
|
||||
0002: t.need(type(rows) is list and len(rows)<1000,'ACTIVE_TASKS_TRUNCATED_OR_INVALID')
|
||||
0003: for task in rows:
|
||||
0004: t.need(type(task) is dict and type(task.get('type')) is str,'ACTIVE_TASK_SCHEMA')
|
||||
0005: # The active index includes completed, not-yet-archived tasks.
|
||||
0006: if type(task.get('endtime')) is int and task.get('status') not in (None,'RUNNING'):continue
|
||||
0007: kind=task['type'];target=str(task.get('id',''))
|
||||
0008: if kind in ('vncshell','vncterm','vncproxy','spiceproxy'):continue
|
||||
0009: t.need(target!=str(vmid) and not any(x in kind.lower() for x in ('dump','restore','migrat','snapshot','clone','move_disk','resize')),'COMPETING_PVE_TASK')
|
||||
=== GUEST266_NO_ACTIVE_TASKS_END ===
|
||||
GUEST266_REACHABLE_FUNCTIONS=no_active_tasks
|
||||
GUEST266_REACHABLE_EDGES=[]
|
||||
GUEST266_REACHABLE_CALLS=[{"args":["type(rows) is list and len(rows) < 1000","'ACTIVE_TASKS_TRUNCATED_OR_INVALID'"],"func":"t.need","kw":[],"lineno":60,"owner":"no_active_tasks"},{"args":["type(task) is dict and type(task.get('type')) is str","'ACTIVE_TASK_SCHEMA'"],"func":"t.need","kw":[],"lineno":62,"owner":"no_active_tasks"},{"args":["task.get('id', '')"],"func":"str","kw":[],"lineno":65,"owner":"no_active_tasks"},{"args":["target != str(vmid) and (not any((x in kind.lower() for x in ('dump', 'restore', 'migrat', 'snapshot', 'clone', 'move_disk', 'resize'))))","'COMPETING_PVE_TASK'"],"func":"t.need","kw":[],"lineno":67,"owner":"no_active_tasks"},{"args":["'id'","''"],"func":"task.get","kw":[],"lineno":65,"owner":"no_active_tasks"},{"args":["rows"],"func":"type","kw":[],"lineno":60,"owner":"no_active_tasks"},{"args":["rows"],"func":"len","kw":[],"lineno":60,"owner":"no_active_tasks"},{"args":["task.get('endtime')"],"func":"type","kw":[],"lineno":64,"owner":"no_active_tasks"},{"args":["'status'"],"func":"task.get","kw":[],"lineno":64,"owner":"no_active_tasks"},{"args":["task"],"func":"type","kw":[],"lineno":62,"owner":"no_active_tasks"},{"args":["task.get('type')"],"func":"type","kw":[],"lineno":62,"owner":"no_active_tasks"},{"args":["'endtime'"],"func":"task.get","kw":[],"lineno":64,"owner":"no_active_tasks"},{"args":["vmid"],"func":"str","kw":[],"lineno":67,"owner":"no_active_tasks"},{"args":["(x in kind.lower() for x in ('dump', 'restore', 'migrat', 'snapshot', 'clone', 'move_disk', 'resize'))"],"func":"any","kw":[],"lineno":67,"owner":"no_active_tasks"},{"args":["'type'"],"func":"task.get","kw":[],"lineno":62,"owner":"no_active_tasks"},{"args":[],"func":"kind.lower","kw":[],"lineno":67,"owner":"no_active_tasks"}]
|
||||
GUEST266_REACHABLE_SIDE_EFFECT_CALLS=[]
|
||||
GUEST266_REACHABLE_SIDE_EFFECT_CALL_COUNT=0
|
||||
TRANSITIVE_STATIC_REPLAY_SAFE=true
|
||||
STATIC_TRANSITIVE_ANALYSIS_COMPLETE=true
|
||||
STATIC_TRANSITIVE_RC=0
|
||||
TRANSITIVE_STATIC_REPLAY_SAFE_SUMMARY=true
|
||||
TASK_RESULT=PASS_CT110_HELPER_TRANSITIVE_STATIC_SAFE
|
||||
DECISION=PASS_HELPER_REPLAY_STATIC_SAFETY_PROVEN
|
||||
NEXT_GATE=CONTROLLED_CT110_HELPER_REPLAY_ONLY
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260927-HOMELAB-BACKUP-CT110-HELPER-TRANSITIVE-STATIC-RCA-1225R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
SOURCE_1225_STATUS=OK
|
||||
SOURCE_1225_DECISION=PASS_HELPER_REPLAY_STATIC_SAFETY_PROVEN
|
||||
SOURCE_1225_NEXT_GATE=CONTROLLED_CT110_HELPER_REPLAY_ONLY
|
||||
=== SOURCE_IDENTITY ===
|
||||
LXC_SHA256=3fa7d194010d76f7c8bc95035ae8876262e9337903e310f45f45df88c266dc8d
|
||||
HELPER_SHA256=dbb3e6dbb71b10797df736431d9501a752a0f8c439163c9a0bddb7f76747f011
|
||||
LXC_SHA_MATCH=true
|
||||
HELPER_SHA_MATCH=true
|
||||
=== CONTROLLED_REPLAY ===
|
||||
DIAG_SCRATCH=/run/workers2-1226-gg5z91zs
|
||||
LXC_ENV_AST={'PATH': '/usr/sbin:/usr/bin:/sbin:/bin', 'LC_ALL': 'C', 'LANG': 'C', 'HOME': '/root', 'PYTHONDONTWRITEBYTECODE': '1'}
|
||||
LXC_PVESH_SHA_EXPECTED=9ed13d4c2d82e7864ff0192c428da7669af263f81dfcc84d5a981ca98fee8439
|
||||
LXC_VZDUMP_SHA_EXPECTED=21339d009afd55cb7ec613b64c1f493b2a7dbd18b85b4d712909ef6d6710f4ea
|
||||
LXC_HELPER_CONST=None
|
||||
ENV_RESOLUTION=PASS
|
||||
ENV_KEYS=HOME,LANG,LC_ALL,PATH,PYTHONDONTWRITEBYTECODE
|
||||
ENV_SHA256=456f8e8fc9ebad1ab3986b95605b59ddc935705e06dc61932168f9570df76c90
|
||||
LIVE_PVESH_SHA=9ed13d4c2d82e7864ff0192c428da7669af263f81dfcc84d5a981ca98fee8439
|
||||
LIVE_VZDUMP_SHA=21339d009afd55cb7ec613b64c1f493b2a7dbd18b85b4d712909ef6d6710f4ea
|
||||
PVESH_IDENTITY_MATCH=true
|
||||
VZDUMP_IDENTITY_MATCH=true
|
||||
TOOL_IDENTITY_GATE=PASS
|
||||
CT110_UNPRIVILEGED=true
|
||||
CT110_CONFIG_GATE=PASS
|
||||
BACKUP_SERVICE_STATE_RAW=failed/failed
|
||||
ACTIVE_VZDUMP_PROCESS_COUNT=0
|
||||
CONCURRENCY_GATE=PASS
|
||||
RUN1_INPUT_BYTES=186216
|
||||
RUN1_INPUT_SHA256=430372537fe5a38c3de0ea08d2f30b165177d16fe6b3fe55a90bc823e8265fbf
|
||||
RUN1_ROW_COUNT=15
|
||||
RUN1_CONFIG_COUNT=8
|
||||
RUN1_TASK_COUNT=749
|
||||
RUN1_STAGING_FREE=285682868224
|
||||
RUN1_RC=1
|
||||
RUN1_STDOUT_BYTES=0
|
||||
RUN1_STDOUT_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
RUN1_STDOUT_BEGIN
|
||||
|
||||
RUN1_STDOUT_END
|
||||
RUN1_STDERR_BYTES=898
|
||||
RUN1_STDERR_SHA256=ee3d762267c6d073c4a78f5f96ce6d98ce9b395fecb645ed23853cba7305f9a9
|
||||
RUN1_STDERR_BEGIN
|
||||
Traceback (most recent call last):
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 45, in <module>
|
||||
raise SystemExit(main())
|
||||
~~~~^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 34, in main
|
||||
pve265.validate_job(job,now)
|
||||
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 126, in validate_job
|
||||
need(job.get('coverage_eligible') is True and job.get('blockers')==[],'JOB_BLOCKED')
|
||||
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 32, in need
|
||||
if not ok:raise PVEError(reason)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
pve265.PVEError: JOB_BLOCKED
|
||||
|
||||
RUN1_STDERR_END
|
||||
RUN1_FAILURE_MODE=NONZERO_RC
|
||||
RUN2_INPUT_BYTES=186199
|
||||
RUN2_INPUT_SHA256=09cd393d63f56e95700a678037ebd0099c118036dc7b6fb497482a562473b92f
|
||||
RUN2_ROW_COUNT=15
|
||||
RUN2_CONFIG_COUNT=8
|
||||
RUN2_TASK_COUNT=749
|
||||
RUN2_STAGING_FREE=285682868224
|
||||
RUN2_RC=1
|
||||
RUN2_STDOUT_BYTES=0
|
||||
RUN2_STDOUT_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
RUN2_STDOUT_BEGIN
|
||||
|
||||
RUN2_STDOUT_END
|
||||
RUN2_STDERR_BYTES=898
|
||||
RUN2_STDERR_SHA256=ee3d762267c6d073c4a78f5f96ce6d98ce9b395fecb645ed23853cba7305f9a9
|
||||
RUN2_STDERR_BEGIN
|
||||
Traceback (most recent call last):
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 45, in <module>
|
||||
raise SystemExit(main())
|
||||
~~~~^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-overlay-504r1-ca6876fa9c3b/fresh_lxc_helper.py", line 34, in main
|
||||
pve265.validate_job(job,now)
|
||||
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 126, in validate_job
|
||||
need(job.get('coverage_eligible') is True and job.get('blockers')==[],'JOB_BLOCKED')
|
||||
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/opt/homelab-backup-v2/releases/backup-v2-accepted-486r1/candidate411/pve265.py", line 32, in need
|
||||
if not ok:raise PVEError(reason)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
pve265.PVEError: JOB_BLOCKED
|
||||
|
||||
RUN2_STDERR_END
|
||||
RUN2_FAILURE_MODE=NONZERO_RC
|
||||
RUN_MODE_STABLE=true
|
||||
RUN_RC_STABLE=true
|
||||
RUN_STDERR_SHA_STABLE=true
|
||||
RUN_JOB_SHA_STABLE=true
|
||||
RUN_ARGV_SHA_STABLE=true
|
||||
REPLAY_PRIMARY_FAILURE_MODE=NONZERO_RC
|
||||
DIAG_SCRATCH_REMOVED=true
|
||||
CONTROLLED_REPLAY_DIAG_RC=0
|
||||
TASK_RESULT=PASS_CT110_CONTROLLED_HELPER_REPLAY_COLLECTED
|
||||
DECISION=PASS_CT110_CONTROLLED_HELPER_REPLAY_COLLECTED
|
||||
NEXT_GATE=READ_EXACT_1226_AND_FIX_ONLY_PROVEN_HELPER_FAILURE_MODE
|
||||
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260927-HOMELAB-BACKUP-CT110-CONTROLLED-HELPER-REPLAY-1226R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null}
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
|
||||
Reference in New Issue
Block a user