mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-31 11:03:22 +01:00
A MAIN whose licence lapsed queued no cache job for a node in mode 2, so the files of movies deleted meanwhile and the connection files of viewers MAIN closed stayed on it. xcvm_core's registry now has node.purge, a restrictive type whose every job removes something. ClusterRoute::cache sends the removals (CacheJobs::PURGES) first as node.purge and the rest as node.cache; an extension from before the type refuses it (RECORD:type) and the removals go as node.cache, as before. cluster:exec runs node.purge with the removal jobs only, and it lives a day like node.cache. The registry fixture and its digest follow the extension's.
154 lines
2.3 KiB
JSON
154 lines
2.3 KiB
JSON
{
|
|
"version": 1,
|
|
"tag": "cmd",
|
|
"envelope": [
|
|
"v",
|
|
"type",
|
|
"exp",
|
|
"iat",
|
|
"cmd_id",
|
|
"seq",
|
|
"node_uuid",
|
|
"gen",
|
|
"dedupe_key",
|
|
"args"
|
|
],
|
|
"action_key": "action",
|
|
"max_ttl_sec": 86400,
|
|
"types": {
|
|
"conn.drop": {
|
|
"class": "R",
|
|
"args": [
|
|
"uuid",
|
|
"uuids",
|
|
"reason"
|
|
]
|
|
},
|
|
"conn.drop_line": {
|
|
"class": "R",
|
|
"args": [
|
|
"line_id",
|
|
"reason"
|
|
]
|
|
},
|
|
"conn.kill_worker": {
|
|
"class": "R",
|
|
"args": [
|
|
"pid",
|
|
"uuid",
|
|
"rtmp"
|
|
]
|
|
},
|
|
"conn.close": {
|
|
"class": "R",
|
|
"args": [
|
|
"uuid",
|
|
"remove"
|
|
]
|
|
},
|
|
"stream.stop": {
|
|
"class": "R",
|
|
"args": [
|
|
"stream_id"
|
|
]
|
|
},
|
|
"vod.stop": {
|
|
"class": "R",
|
|
"args": [
|
|
"stream_id"
|
|
]
|
|
},
|
|
"token.rotate_now": {
|
|
"class": "R",
|
|
"args": []
|
|
},
|
|
"node.quarantine": {
|
|
"class": "R",
|
|
"args": [
|
|
"reason"
|
|
]
|
|
},
|
|
"node.fence": {
|
|
"class": "R",
|
|
"args": [
|
|
"reason",
|
|
"drain_min"
|
|
]
|
|
},
|
|
"resync": {
|
|
"class": "R",
|
|
"args": [
|
|
"sections"
|
|
]
|
|
},
|
|
"config.changed": {
|
|
"class": "R",
|
|
"args": [
|
|
"sections",
|
|
"etag"
|
|
]
|
|
},
|
|
"node.purge": {
|
|
"class": "R",
|
|
"args": [
|
|
"jobs"
|
|
],
|
|
"job_types": [
|
|
"delete_con",
|
|
"drop_con",
|
|
"delete_vod",
|
|
"delete_vods"
|
|
],
|
|
"job_keys": [
|
|
"type",
|
|
"id",
|
|
"uuid"
|
|
]
|
|
},
|
|
"conn.overlay": {
|
|
"class": "G"
|
|
},
|
|
"stream.start": {
|
|
"class": "G"
|
|
},
|
|
"stream.assign": {
|
|
"class": "G"
|
|
},
|
|
"vod.start": {
|
|
"class": "G"
|
|
},
|
|
"recording.start": {
|
|
"class": "G"
|
|
},
|
|
"queue.poke": {
|
|
"class": "G"
|
|
},
|
|
"node.rpc": {
|
|
"class": "G",
|
|
"action": true
|
|
},
|
|
"node.root": {
|
|
"class": "G",
|
|
"action": true,
|
|
"restrictive_actions": {
|
|
"fence": [
|
|
"reason",
|
|
"drain_min"
|
|
]
|
|
}
|
|
},
|
|
"node.cache": {
|
|
"class": "G"
|
|
},
|
|
"node.unfence": {
|
|
"class": "G"
|
|
},
|
|
"policy.update": {
|
|
"class": "G"
|
|
},
|
|
"artefact.fetch": {
|
|
"class": "G"
|
|
}
|
|
}
|
|
}
|