Register: R-1022, R-1116, R-977 closed; R-1123..R-1128 filed; R-994 narrowed; duplicate ids fixed
b9c4f73b (the cc-creds session) committed this session's uncommitted register edits together with its own
R-1118..R-1122, so main carried two rows each for R-1118..R-1122. This session's five move to R-1124..R-1128
(R-1123 stays); the CLOSED-ITEMS section for the three closed rows lands here. Evidence:
audits/tester1-limits-filebrowser-2026-10-17/.
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
1 parent
b9c4f73bfa
commit
fae8064557
31 files changed
+523
-6
No files matched your search
@@ -0,0 +1,12 @@
|
||||
10:59:59 POST /api/sync -> 200 {'ok': True, 'data': {'ok': True, 'message': 'Sablonok naprakészek — nincs változás'}, 'message': 'Sablonok naprakészek — nincs változás'}
|
||||
11:00:09 == paperless-ngx before:
|
||||
compose: command: redis-server --appendonly no| command: redis-server --appendonly no|
|
||||
container: 2026-10-17T02:33:00.206620166Z ["redis-server","--appendonly","yes"] Up 6 hours (healthy)
|
||||
dbsize: 2 rdb_last_bgsave_status:ok aof_enabled:1
|
||||
/data: appendonlydir dump.rdb
|
||||
11:00:27 POST /api/stacks/paperless-ngx/restart -> 200 {'ok': True, 'data': {'state': 'starting'}, 'message': 'Stack paperless-ngx restart requested — state now: starting'}
|
||||
11:01:26 == paperless-ngx after (state=running hold=None):
|
||||
compose: command: redis-server --appendonly no| command: redis-server --appendonly no|
|
||||
container: 2026-10-17T09:00:09.719659658Z ["redis-server","--appendonly","no"] Up About a minute (healthy)
|
||||
dbsize: 4 rdb_last_bgsave_status:ok aof_enabled:0
|
||||
/data: appendonlydir dump.rdb
|
||||
@@ -0,0 +1,19 @@
|
||||
deployed apps: [('bookstack', 'running'), ('jellyfin', 'running'), ('paperless-ngx', 'running'), ('plex', 'running'), ('privatebin', 'running'), ('prowlarr', 'running'), ('qbittorrent', 'running'), ('radarr', 'running'), ('sonarr', 'running'), ('transmission', 'running')]
|
||||
storage paths: 404 {"_raw": "404 page not found\n"}
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.325.0
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.325.0 Up 30 minutes (healthy)
|
||||
24: repo_url: file:///opt/docker/felhom-controller/drill-catalog.git
|
||||
-rw------- 1 root root 3042 Oct 14 14:04 controller.yaml
|
||||
-rw------- 1 root root 3044 Oct 4 19:41 controller.yaml.pre-media-2026-10-14
|
||||
drwxr-xr-x 7 root root 4096 Oct 15 07:59 drill-catalog.git
|
||||
NAME SIZE MOUNTPOINT
|
||||
sda 200G
|
||||
|-sda1 1007K
|
||||
|-sda2 1G
|
||||
`-sda3 199G
|
||||
sdb 50G /mnt/felhom-drives/adatlemez
|
||||
sdc 100G /mnt/felhom-drives/media_a
|
||||
sdd 100G /mnt/felhom-drives/media_b
|
||||
sde 50G /mnt/felhom-drives/media_c
|
||||
sdf 20G /mnt/felhom-drives/media_d
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
== qm config 341 (before) 2026-10-17T08:50:52Z
|
||||
bios: ovmf
|
||||
boot: order=scsi0
|
||||
cores: 4
|
||||
cpu: host
|
||||
efidisk0: nvme-scratch:341/vm-341-disk-0.raw,efitype=4m,pre-enrolled-keys=0,size=528K
|
||||
machine: q35
|
||||
memory: 8192
|
||||
meta: creation-qemu=11.0.0,ctime=1791141969
|
||||
name: night1004-tester1
|
||||
net0: virtio=BC:24:11:AC:E3:F9,bridge=vmbr0
|
||||
onboot: 1
|
||||
ostype: l26
|
||||
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
|
||||
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
|
||||
scsi2: nvme-scratch:341/vm-341-disk-3.raw,backup=0,size=100G
|
||||
scsi3: nvme-scratch:341/vm-341-disk-4.raw,backup=0,size=100G
|
||||
scsi4: nvme-scratch:341/vm-341-disk-5.raw,backup=0,size=50G
|
||||
scsi5: nvme-scratch:341/vm-341-disk-6.raw,backup=0,size=20G
|
||||
scsihw: virtio-scsi-single
|
||||
smbios1: uuid=451c8d94-abf2-46e4-a278-b579a9f315b5
|
||||
vga: std
|
||||
vmgenid: acdf89db-a810-445c-9d88-7bccd688d3c1
|
||||
== pvesm list nvme-scratch (before)
|
||||
Volid Format Type Size VMID
|
||||
nvme-scratch:341/vm-341-disk-0.raw raw images 540672 341
|
||||
nvme-scratch:341/vm-341-disk-1.raw raw images 214748364800 341
|
||||
nvme-scratch:341/vm-341-disk-2.raw raw images 53687091200 341
|
||||
nvme-scratch:341/vm-341-disk-3.raw raw images 107374182400 341
|
||||
nvme-scratch:341/vm-341-disk-4.raw raw images 107374182400 341
|
||||
nvme-scratch:341/vm-341-disk-5.raw raw images 53687091200 341
|
||||
nvme-scratch:341/vm-341-disk-6.raw raw images 21474836480 341
|
||||
nvme-scratch:9202/vm-9202-disk-2.raw raw rootdir 34359738368 9202
|
||||
nvme-scratch:9202/vm-9202-disk-3.raw raw rootdir 75161927680 9202
|
||||
nvme-scratch:9401/vm-9401-disk-0.raw raw rootdir 64424509440 9401
|
||||
@@ -0,0 +1,5 @@
|
||||
--- saved
|
||||
+++ current
|
||||
@@ -24 +24 @@
|
||||
- repo_url (repo_url value: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git)
|
||||
+ repo_url (repo_url value: file:///opt/docker/felhom-controller/drill-catalog.git)
|
||||
@@ -0,0 +1,22 @@
|
||||
RESTORED-IDENTICAL
|
||||
24: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
|
||||
2026/10/17 08:57:35 [INFO] [sync] Updated vikunja/.felhom.yml
|
||||
2026/10/17 08:57:35 [INFO] [sync] Updated wanderer/.felhom.yml
|
||||
2026/10/17 08:57:35 [INFO] [sync] Updated wger/.felhom.yml
|
||||
2026/10/17 08:57:35 [INFO] [sync] Updated wishlist/.felhom.yml
|
||||
2026/10/17 08:57:35 [INFO] [sync] Updated zipline/.felhom.yml
|
||||
2026/10/17 08:57:35 [INFO] [sync] catalog moved 6589376258d9 -> 5d9450b0660a (0 new, 64 stack dir(s) changed)
|
||||
2026/10/17 08:57:35 [INFO] [sync] Catalog sync complete
|
||||
2026/10/17 08:57:35 [INFO] [sync] Initial sync: Sablonok frissítve — frissítve: actualbudget, adventurelog, audiobookshelf, bentopdf, bookstack, calcom, calibre-web, claper, code-server, crafty-controller, dawarich, docmost, ghost, gitea, glance, gokapi, grafana, gramps-web, grimmory, grocy, home-assistant, homebox, homepage, immich, jellyfin, karakeep, kimai, komga, lubelogger, mealie, metube, n8n, navidrome, nextcloud, nzbget, onlyoffice, opengist, outline, paperless-ngx, papra, plant-it, plex, privatebin, prowlarr, qbittorrent, radarr, radicale, rallly, recipe-importer, romm, sabnzbd, seerr, sonarr, sparkyfitness, tandoor, termix, transmission, uptime-kuma, vaultwarden, vikunja, wanderer, wger, wishlist, zipline
|
||||
|
||||
24: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
25: sync_interval: 15m
|
||||
-rw------- 1 root root 3044 Oct 4 19:41 /var/lib/docker/volumes/felhom-controller-data/_data/controller.yaml.pre-media-2026-10-14
|
||||
mirror main 65893762 DRILL media build: the seven media templates = live + the media_library marker (per-drive binds by the controller, no literal drive paths); Plex: no code at install, accept-JSON probe, ADVERTISE_IP; Transmission incomplete folder off at start — drill catalog only (Tester 1 proof, Part G)
|
||||
cache HEAD 5d9450b Redis snapshots, not append-only, on five apps (R-1096); gate redis-persistence
|
||||
https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
|
||||
11M /var/lib/docker/volumes/felhom-controller-data/_data/drill-catalog.git
|
||||
ls: cannot access '/var/lib/docker/volumes/felhom-controller-data/_data/drill-catalog.git': No such file or directory
|
||||
no-drill-left
|
||||
@@ -0,0 +1,16 @@
|
||||
== inside Tester 1: clean unmount of the four test mounts 2026-10-17T08:58:51Z
|
||||
stopped mnt-media_a.mount
|
||||
stopped mnt-media_b.mount
|
||||
stopped mnt-media_c.mount
|
||||
stopped mnt-media_d.mount
|
||||
no /mnt/media_* mounted
|
||||
== demo-hp: qm set 341 --delete scsi2,scsi3,scsi4,scsi5
|
||||
update VM 341: -delete scsi2,scsi3,scsi4,scsi5
|
||||
rc=0
|
||||
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
|
||||
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
|
||||
scsihw: virtio-scsi-single
|
||||
unused0: nvme-scratch:341/vm-341-disk-3.raw
|
||||
unused1: nvme-scratch:341/vm-341-disk-4.raw
|
||||
unused2: nvme-scratch:341/vm-341-disk-5.raw
|
||||
unused3: nvme-scratch:341/vm-341-disk-6.raw
|
||||
@@ -0,0 +1,56 @@
|
||||
pvesm free nvme-scratch:341/vm-341-disk-3.raw
|
||||
Removed volume 'nvme-scratch:341/vm-341-disk-3.raw'
|
||||
rc=0
|
||||
pvesm free nvme-scratch:341/vm-341-disk-4.raw
|
||||
Removed volume 'nvme-scratch:341/vm-341-disk-4.raw'
|
||||
rc=0
|
||||
pvesm free nvme-scratch:341/vm-341-disk-5.raw
|
||||
Removed volume 'nvme-scratch:341/vm-341-disk-5.raw'
|
||||
rc=0
|
||||
pvesm free nvme-scratch:341/vm-341-disk-6.raw
|
||||
Removed volume 'nvme-scratch:341/vm-341-disk-6.raw'
|
||||
rc=0
|
||||
== qm config 341 (after free)
|
||||
bios: ovmf
|
||||
boot: order=scsi0
|
||||
cores: 4
|
||||
cpu: host
|
||||
efidisk0: nvme-scratch:341/vm-341-disk-0.raw,efitype=4m,pre-enrolled-keys=0,size=528K
|
||||
machine: q35
|
||||
memory: 8192
|
||||
meta: creation-qemu=11.0.0,ctime=1791141969
|
||||
name: night1004-tester1
|
||||
net0: virtio=BC:24:11:AC:E3:F9,bridge=vmbr0
|
||||
onboot: 1
|
||||
ostype: l26
|
||||
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
|
||||
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
|
||||
scsihw: virtio-scsi-single
|
||||
smbios1: uuid=451c8d94-abf2-46e4-a278-b579a9f315b5
|
||||
unused0: nvme-scratch:341/vm-341-disk-3.raw
|
||||
unused1: nvme-scratch:341/vm-341-disk-4.raw
|
||||
unused2: nvme-scratch:341/vm-341-disk-5.raw
|
||||
unused3: nvme-scratch:341/vm-341-disk-6.raw
|
||||
vga: std
|
||||
vmgenid: acdf89db-a810-445c-9d88-7bccd688d3c1
|
||||
== pvesm list nvme-scratch (after)
|
||||
Volid Format Type Size VMID
|
||||
nvme-scratch:341/vm-341-disk-0.raw raw images 540672 341
|
||||
nvme-scratch:341/vm-341-disk-1.raw raw images 214748364800 341
|
||||
nvme-scratch:341/vm-341-disk-2.raw raw images 53687091200 341
|
||||
nvme-scratch:9202/vm-9202-disk-2.raw raw rootdir 34359738368 9202
|
||||
nvme-scratch:9202/vm-9202-disk-3.raw raw rootdir 75161927680 9202
|
||||
nvme-scratch:9401/vm-9401-disk-0.raw raw rootdir 64424509440 9401
|
||||
update VM 341: -delete unused0,unused1,unused2,unused3
|
||||
disk image '/mnt/hdd_1/images/341/vm-341-disk-3.raw' does not exist
|
||||
disk image '/mnt/hdd_1/images/341/vm-341-disk-4.raw' does not exist
|
||||
disk image '/mnt/hdd_1/images/341/vm-341-disk-5.raw' does not exist
|
||||
disk image '/mnt/hdd_1/images/341/vm-341-disk-6.raw' does not exist
|
||||
rc=0
|
||||
== qm config 341 (final)
|
||||
efidisk0: nvme-scratch:341/vm-341-disk-0.raw,efitype=4m,pre-enrolled-keys=0,size=528K
|
||||
memory: 8192
|
||||
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
|
||||
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
|
||||
scsihw: virtio-scsi-single
|
||||
status: running
|
||||
@@ -0,0 +1,38 @@
|
||||
NAME SIZE SERIAL MOUNTPOINTS
|
||||
sda 200G drive-scsi0
|
||||
|-sda1 1007K
|
||||
|-sda2 1G /boot/efi
|
||||
`-sda3 199G
|
||||
|-pve-swap 7.7G [SWAP]
|
||||
|-pve-root 59.8G /mnt/felhom-drives
|
||||
| /
|
||||
|-pve-data_tmeta 1.2G
|
||||
| `-pve-data-tpool 113.2G
|
||||
| |-pve-data 113.2G
|
||||
| |-pve-vm--9201--disk--0 32G
|
||||
| `-pve-vm--9201--disk--1 70G
|
||||
`-pve-data_tdata 113.2G
|
||||
`-pve-data-tpool 113.2G
|
||||
|-pve-data 113.2G
|
||||
|-pve-vm--9201--disk--0 32G
|
||||
`-pve-vm--9201--disk--1 70G
|
||||
sdb 50G drive-scsi1 /mnt/felhom-drives/adatlemez
|
||||
/mnt/adatlemez
|
||||
sdc 100G drive-scsi2 /mnt/media_a
|
||||
sdd 100G drive-scsi3 /mnt/media_b
|
||||
sde 50G drive-scsi4 /mnt/media_c
|
||||
sdf 20G drive-scsi5 /mnt/media_d
|
||||
/mnt/media_c /dev/sde
|
||||
/mnt/media_a /dev/sdc
|
||||
/mnt/media_d /dev/sdf
|
||||
/mnt/adatlemez /dev/sdb
|
||||
/mnt/media_b /dev/sdd
|
||||
/mnt/felhom-drives /dev/mapper/pve-root[/mnt/felhom-drives]
|
||||
/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data]
|
||||
Name Type Status Total (KiB) Used (KiB) Available (KiB) %
|
||||
felhom-pbs pbs active 0 0 0 0.00%
|
||||
local dir active 61429556 19311648 38965012 31.44%
|
||||
local-lvm lvmthin active 118673408 15273267 103400140 12.87%
|
||||
mp0: local-lvm:vm-9201-disk-1,mp=/var/lib/felhom,backup=1,size=70G
|
||||
mp8: /mnt/felhom-drives,mp=/mnt/felhom-drives
|
||||
mp9: /var/lib/felhom-agent/guests/9201/bootstrap,mp=/etc/felhom-bootstrap,ro=1
|
||||
@@ -0,0 +1 @@
|
||||
6723057 DRILL: tree = live main 5d9450b — R-1022 teardown; no box follows the drill (2026-10-17)
|
||||
@@ -0,0 +1,4 @@
|
||||
hp guest 9201: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
hp guest 9202: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
felhom-pve guest 9201: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
-J hp root@192.168.0.154 guest 9201: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
@@ -0,0 +1,10 @@
|
||||
== guest 9201
|
||||
containers: 10 not healthy/running: none
|
||||
bookstack bookstack-db cloudflared felhom-controller filebrowser paperless-postgres paperless-redis paperless-webserver privatebin traefik
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.325.0
|
||||
== host: failed units, agent warnings since the detach
|
||||
Oct 17 10:58:56 felhom felhom-agent[1278]: time=2026-10-17T10:58:56.627+02:00 level=WARN msg="storage: watchdog detected target state change" target=4ebfd36d-87d3-4b63-839e-a5a710fc799a from=attached to=disconnected
|
||||
Oct 17 10:58:56 felhom felhom-agent[1278]: time=2026-10-17T10:58:56.627+02:00 level=WARN msg="storage: watchdog detected target state change" target=e15652d5-0aa7-4eb8-93a1-afb2839d527c from=attached to=disconnected
|
||||
Oct 17 10:58:56 felhom felhom-agent[1278]: time=2026-10-17T10:58:56.627+02:00 level=WARN msg="storage: watchdog detected target state change" target=86f33f9c-1022-43d8-95eb-f9a6ec9eb923 from=attached to=disconnected
|
||||
Oct 17 10:58:56 felhom felhom-agent[1278]: time=2026-10-17T10:58:56.627+02:00 level=WARN msg="storage: watchdog detected target state change" target=8a31a462-ff15-4be2-9aeb-9620b99c7f77 from=attached to=disconnected
|
||||
dashboard /login: 200
|
||||
@@ -0,0 +1,54 @@
|
||||
10:52:02 deployed apps: ['bookstack', 'jellyfin', 'paperless-ngx', 'plex', 'privatebin', 'prowlarr', 'qbittorrent', 'radarr', 'sonarr', 'transmission']
|
||||
10:52:06 gitea.dooplex.hu/admin/felhom-controller:0.325.0
|
||||
24: repo_url: file:///opt/docker/felhom-controller/drill-catalog.git
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives/media_a
|
||||
/mnt/felhom-drives/media_a
|
||||
/mnt/felhom-drives/adatlemez
|
||||
/mnt/felhom-drives/adatlemez
|
||||
/mnt/felhom-drives/media_c
|
||||
/mnt/felhom-drives/media_c
|
||||
/mnt/felhom-drives/media_d
|
||||
/mnt/felhom-drives/media_d
|
||||
/mnt/felhom-drives/media_b
|
||||
/mnt/felhom-drives/media_b
|
||||
storage paths: [('/mnt/felhom-drives/adatlemez', 'live'), ('/mnt/felhom-drives/media_a', 'live'), ('/mnt/felhom-drives/media_b', 'live'), ('/mnt/felhom-drives/media_c', 'live'), ('/mnt/felhom-drives/media_d', 'live')]
|
||||
|
||||
10:52:46 sonarr: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "sonarr", "volumes_removed": ["sonarr_sonarr_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media (30G)"], "verified": true}, "message": "Stack sonarr remove
|
||||
10:53:24 radarr: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "radarr", "volumes_removed": ["radarr_radarr_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media (30G)"], "verified": true}, "message": "Stack radarr remove
|
||||
10:53:58 qbittorrent: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "qbittorrent", "volumes_removed": ["qbittorrent_qbittorrent_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media/torrents (19G)"], "verified": true}, "messag
|
||||
10:54:34 transmission: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "transmission", "volumes_removed": ["transmission_transmission_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media/transmission (12G)", "/mnt/felhom-drives/
|
||||
10:55:15 plex: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "plex", "volumes_removed": ["plex_plex_config", "plex_plex_transcode"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media (30G)"], "verified": true}, "message": "St
|
||||
10:55:48 jellyfin: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "jellyfin", "volumes_removed": ["jellyfin_jellyfin_cache", "jellyfin_jellyfin_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": ["/mnt/felhom-drives/media_a/userdata/media (30G)"], "verified": true}
|
||||
10:56:26 prowlarr: stop -> 200; remove (keep data, keep backups) -> 200 {"ok": true, "data": {"removed": "prowlarr", "volumes_removed": ["prowlarr_prowlarr_config"], "hdd_paths_removed": [], "hdd_paths_preserved": [], "userdata_kept": [], "verified": true}, "message": "Stack prowlarr removed"}
|
||||
10:56:26 deployed apps: ['bookstack', 'paperless-ngx', 'privatebin']
|
||||
10:56:30 gitea.dooplex.hu/admin/felhom-controller:0.325.0
|
||||
24: repo_url: file:///opt/docker/felhom-controller/drill-catalog.git
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives/media_a
|
||||
/mnt/felhom-drives/media_a
|
||||
/mnt/felhom-drives/adatlemez
|
||||
/mnt/felhom-drives/adatlemez
|
||||
/mnt/felhom-drives/media_c
|
||||
/mnt/felhom-drives/media_c
|
||||
/mnt/felhom-drives/media_d
|
||||
/mnt/felhom-drives/media_d
|
||||
/mnt/felhom-drives/media_b
|
||||
/mnt/felhom-drives/media_b
|
||||
storage paths: [('/mnt/felhom-drives/adatlemez', 'live'), ('/mnt/felhom-drives/media_a', 'live'), ('/mnt/felhom-drives/media_b', 'live'), ('/mnt/felhom-drives/media_c', 'live'), ('/mnt/felhom-drives/media_d', 'live')]
|
||||
|
||||
10:56:38 decommission media_a -> 200 {"data": {"decommissioned": true, "stopped_apps": null, "where": "/mnt/felhom-drives/media_a"}, "ok": true}
|
||||
10:56:46 decommission media_b -> 200 {"data": {"decommissioned": true, "stopped_apps": null, "where": "/mnt/felhom-drives/media_b"}, "ok": true}
|
||||
10:56:54 decommission media_c -> 200 {"data": {"decommissioned": true, "stopped_apps": null, "where": "/mnt/felhom-drives/media_c"}, "ok": true}
|
||||
10:57:01 decommission media_d -> 200 {"data": {"decommissioned": true, "stopped_apps": null, "where": "/mnt/felhom-drives/media_d"}, "ok": true}
|
||||
10:57:06 deployed apps: ['bookstack', 'paperless-ngx', 'privatebin']
|
||||
10:57:10 gitea.dooplex.hu/admin/felhom-controller:0.325.0
|
||||
24: repo_url: file:///opt/docker/felhom-controller/drill-catalog.git
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives
|
||||
/mnt/felhom-drives/adatlemez
|
||||
/mnt/felhom-drives/adatlemez
|
||||
storage paths: [('/mnt/felhom-drives/adatlemez', 'live'), ('/mnt/felhom-drives/media_a', 'decommissioned'), ('/mnt/felhom-drives/media_b', 'decommissioned'), ('/mnt/felhom-drives/media_c', 'decommissioned'), ('/mnt/felhom-drives/media_d', 'decommissioned')]
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
--- FAIL: TestFileBrowserAdmin_R977_DefaultBackOnANewRunIsReplaced (0.00s)
|
||||
filebrowser_password_test.go:183: the default login came back on a new run and was left
|
||||
FAIL
|
||||
+1
@@ -0,0 +1 @@
|
||||
--- FAIL: TestFileBrowserAdmin_R977_NewRunIsWaitedForInTheSameTick (0.00s)
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
REFUSED: docmost: .felhom.yml mem_limit "896M" is not the sum of the compose limits 768+256+128=1152M
|
||||
mem-limit-sum: 1 of 65 template(s) refused — set .felhom.yml resources.mem_limit to the sum of the compose limits (and show the arithmetic in a comment, like paperless-ngx)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
POST /api/sync -> 429
|
||||
before: memory: 512M
|
||||
/docmost 536870912
|
||||
restart -> 200
|
||||
after: /docmost 536870912 healthy
|
||||
/docmost-postgres 268435456 healthy
|
||||
/docmost-redis 134217728 healthy state: running
|
||||
POST /api/sync -> 200 {'ok': True, 'data': {'ok': True, 'updated': ['docmost', 'grafana', 'romm', 'tandoor', 'termix', 'uptime-kuma'], 'messag
|
||||
applied: memory: 768M
|
||||
restart -> 200
|
||||
after: /docmost 805306368 healthy state: running
|
||||
@@ -0,0 +1,31 @@
|
||||
R-1119 — proposed mem_request per app (typical use from sizing-2026-10-13 catalog-check.json, rounded up:
|
||||
under 100 MB to 10, under 500 MB to 50, else to 100). NOT applied — operator: limits now, requests wait.
|
||||
|
||||
app now typical new source
|
||||
adventurelog 100MB 361MB 400MB telemetry
|
||||
bookstack 150MB 159MB 200MB telemetry
|
||||
calcom 200MB 800MB 800MB onboarding
|
||||
claper 100MB 248MB 250MB onboarding
|
||||
docmost 200MB 415MB 450MB telemetry
|
||||
grafana 100MB 220MB 250MB onboarding
|
||||
home-assistant 256MB 318MB 350MB onboarding
|
||||
homepage 50MB 82MB 90MB measured
|
||||
kimai 100MB 163MB 200MB telemetry
|
||||
komga 200MB 442MB 450MB onboarding
|
||||
mealie 200MB 273MB 300MB onboarding
|
||||
nextcloud 256MB 314MB 350MB onboarding
|
||||
outline 200MB 282MB 300MB onboarding
|
||||
paperless-ngx 500MB 568MB 600MB telemetry
|
||||
papra 256MB 266MB 300MB onboarding
|
||||
privatebin 30MB 40MB 40MB telemetry
|
||||
recipe-importer 30MB 63MB 70MB measured
|
||||
romm 300MB 528MB 600MB telemetry
|
||||
seerr 100MB 166MB 200MB measured
|
||||
tandoor 512MB 868MB 900MB onboarding
|
||||
termix 30MB 102MB 150MB measured
|
||||
uptime-kuma 50MB 103MB 150MB onboarding
|
||||
zipline 100MB 196MB 200MB onboarding
|
||||
|
||||
Effect on the smallest supported box (8 GB: guest 4,096 MiB, reserved 384 → 3,712 MB usable; stacks/deploy.go:1549):
|
||||
household set (immich, jellyfin, nextcloud, home-assistant, vaultwarden, paperless-ngx): 3,622 MB now → 3,910 MB
|
||||
whole catalog (65 apps): 15,028 MB now → 18,608 MB; the largest single new request: 900 MB (tandoor) — every app alone fits.
|
||||
@@ -0,0 +1 @@
|
||||
default login -> HTTP 401 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T06:54:56.265230678Z
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
volume before: 1
|
||||
removed filebrowser + filebrowser_filebrowser_data at 09:08:51
|
||||
+1m: default login: (filebrowser not running)
|
||||
+2m: default login: (filebrowser not running)
|
||||
+3m: default login: (filebrowser not running)
|
||||
+4m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+5m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+6m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+7m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+8m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+9m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+10m: default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
default login -> HTTP 200 | box state: generated 2026-09-15T08:16:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
controller -> 0.326.0-rc.1 at 09:19:34
|
||||
+30s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+60s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+90s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+120s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+150s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
+180s: default login -> HTTP 401 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:12:31.362830472Z
|
||||
2026/10/17 09:19:35 filebrowser_password.go:121: [WARN] [infra] filebrowser: admin/admin logs in again on a new FileBrowser run (recorded state "generated") — its data was re-created; replacing it (R-977)
|
||||
2026/10/17 09:19:35 filebrowser_password.go:178: [INFO] [infra] filebrowser: admin/admin replaced by a generated password (value never logged); verified new=200 admin=401
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
volume before: 1
|
||||
removed filebrowser + filebrowser_filebrowser_data at 09:22:44
|
||||
+1m: default login: (filebrowser not running)
|
||||
+2m: default login -> HTTP 200 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+3m: default login -> HTTP 200 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+4m: default login -> HTTP 200 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+5m: default login -> HTTP 200 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+6m: default login -> HTTP 200 | box state: generated 2026-10-17T09:19:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+7m: default login -> HTTP 401 | box state: generated 2026-10-17T09:29:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+8m: default login -> HTTP 401 | box state: generated 2026-10-17T09:29:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+9m: default login -> HTTP 401 | box state: generated 2026-10-17T09:29:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
+10m: default login -> HTTP 401 | box state: generated 2026-10-17T09:29:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
2026/10/17 09:29:35 filebrowser_password.go:121: [WARN] [infra] filebrowser: admin/admin logs in again on a new FileBrowser run (recorded state "generated") — its data was re-created; replacing it (R-977)
|
||||
2026/10/17 09:29:35 filebrowser_password.go:178: [INFO] [infra] filebrowser: admin/admin replaced by a generated password (value never logged); verified new=200 admin=401
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.326.0-rc.2 Up 40 seconds (healthy)
|
||||
default login -> HTTP 401 | box state: generated 2026-10-17T09:29:35Z | filebrowser started 2026-10-17T09:24:35.302615766Z
|
||||
volume before: 1
|
||||
removed filebrowser + filebrowser_filebrowser_data at 09:42:54
|
||||
+1m: default login: (filebrowser not running)
|
||||
+2m: default login: (filebrowser not running)
|
||||
+3m: default login: (filebrowser not running)
|
||||
+4m: default login: (filebrowser not running)
|
||||
+5m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
+6m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
+7m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
+8m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
+9m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
+10m: default login -> HTTP 401 | box state: generated 2026-10-17T09:47:15Z | filebrowser started 2026-10-17T09:47:15.109818275Z
|
||||
2026/10/17 09:47:17 filebrowser_password.go:149: [WARN] [infra] filebrowser: admin/admin logs in again on a new FileBrowser run (recorded state "generated") — its data was re-created; replacing it (R-977)
|
||||
2026/10/17 09:47:17 filebrowser_password.go:206: [INFO] [infra] filebrowser: admin/admin replaced by a generated password (value never logged); verified new=200 admin=401
|
||||
@@ -0,0 +1,15 @@
|
||||
=== hp
|
||||
containers: 24 not healthy/running: none
|
||||
2026/10/17 09:54:23 updater.go:855: [INFO] [selfupdate] Post-update startup: update successful (0.325.0 → 0.326.0)
|
||||
filebrowser state: generated
|
||||
=== felhom-pve
|
||||
containers: 9 not healthy/running: none
|
||||
2026/10/17 09:54:12 [INFO] [selfupdate] Post-update startup: update successful (0.325.0 → 0.326.0)
|
||||
filebrowser state: generated
|
||||
=== -J hp root@192.168.0.154
|
||||
containers: 10 not healthy/running: none
|
||||
2026/10/17 09:54:22 [INFO] [selfupdate] Post-update startup: update successful (0.325.0 → 0.326.0)
|
||||
filebrowser state: generated
|
||||
felhom.enkisfelhom.hu /login: 200
|
||||
felhom.demo-felhom.eu /login: 200
|
||||
felhom.enkicsifelhom.hu /login: 200
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
integrity: ok
|
||||
('min_controller_version', '0.326.0')
|
||||
('min_controller_version_declared_min_agent', '0.326.0=0.158.1')
|
||||
per-box floors still set: []
|
||||
@@ -0,0 +1,5 @@
|
||||
global floor 2026-10-17T09:55:58Z: HTTP/1.1 303 See Other Location: /configuration?flash=floor_set
|
||||
clear per-box tester-1: HTTP/1.1 303 See Other Location: /customers/tester-1?flash=floor_set
|
||||
clear per-box demo-hp: HTTP/1.1 303 See Other Location: /customers/demo-hp?flash=floor_set
|
||||
clear per-box demo-felhom: HTTP/1.1 303 See Other Location: /customers/demo-felhom?flash=floor_set
|
||||
hub /configuration page: 5 0.158.1 3 0.326.0
|
||||
@@ -0,0 +1,33 @@
|
||||
control NEGATIVE (a stub answering 200 over plain http): convicted, as it must (200 -)
|
||||
== tester-1 (enkicsifelhom.hu): 6 public name(s)
|
||||
OK control POSITIVE http://felhom.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://files.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paperless.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paperless.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paste.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkicsifelhom.hu/r1033-check?q=1
|
||||
== demo-hp (enkisfelhom.hu): 14 public name(s)
|
||||
OK http://arcade.enkisfelhom.hu/r1033-check?q=1 -> 301 https://arcade.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://books.enkisfelhom.hu/r1033-check?q=1 -> 301 https://books.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://docs.enkisfelhom.hu/r1033-check?q=1 -> 301 https://docs.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://felhom.enkisfelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkisfelhom.hu/r1033-check?q=1 -> 301 https://files.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://gist.enkisfelhom.hu/r1033-check?q=1 -> 301 https://gist.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://ha.enkisfelhom.hu/r1033-check?q=1 -> 301 https://ha.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://papir.enkisfelhom.hu/r1033-check?q=1 -> 301 https://papir.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkisfelhom.hu/r1033-check?q=1 -> 301 https://paste.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://pdf.enkisfelhom.hu/r1033-check?q=1 -> 301 https://pdf.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://plex.enkisfelhom.hu/r1033-check?q=1 -> 301 https://plex.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://travel.enkisfelhom.hu/r1033-check?q=1 -> 301 https://travel.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkisfelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkisfelhom.hu/r1033-check?q=1
|
||||
== demo-felhom (demo-felhom.eu): 8 public name(s)
|
||||
OK http://felhom.demo-felhom.eu/r1033-check?q=1 -> 301 https://felhom.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://files.demo-felhom.eu/r1033-check?q=1 -> 301 https://files.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://gist.demo-felhom.eu/r1033-check?q=1 -> 301 https://gist.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1 -> 301 https://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://prowlarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://prowlarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://radarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://radarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://sonarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://sonarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://torrent.demo-felhom.eu/r1033-check?q=1 -> 301 https://torrent.demo-felhom.eu/r1033-check?q=1
|
||||
== every public name redirects http -> https
|
||||
@@ -0,0 +1,3 @@
|
||||
per-box tester-1 2026-10-17T09:54:10Z: HTTP/1.1 303 See Other Location: /customers/tester-1?flash=floor_set
|
||||
per-box demo-hp 2026-10-17T09:54:10Z: HTTP/1.1 303 See Other Location: /customers/demo-hp?flash=floor_set
|
||||
per-box demo-felhom 2026-10-17T09:54:10Z: HTTP/1.1 303 See Other Location: /customers/demo-felhom?flash=floor_set
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# fbprobe.sh — R-977, run INSIDE a guest. Prints only HTTP status codes and the box's recorded state — never a password.
|
||||
# The default credential is FileBrowser's public default; it goes to curl on STDIN as a header, never on a command line.
|
||||
# fbprobe.sh probe the default login's status + the box's recorded state + FileBrowser's start time
|
||||
# fbprobe.sh recreate remove FileBrowser AND its data volume (what a lost volume looks like), then wait up to
|
||||
# 10 min for the box itself to bring FileBrowser back (no hand start), probing each minute
|
||||
set -u
|
||||
S=/var/lib/docker/volumes/felhom-controller-data/_data/data/settings.json
|
||||
state() { python3 -c "import json;d=json.load(open('$S'));print(d.get('filebrowser_admin_state'), d.get('filebrowser_admin_decided_at'))"; }
|
||||
probe() {
|
||||
ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' filebrowser 2>/dev/null | awk '{print $1}')
|
||||
if [ -z "$ip" ]; then echo "default login: (filebrowser not running)"; return; fi
|
||||
code=$(printf 'X-Password: admin\n' | curl -s -o /dev/null -w '%{http_code}' --max-time 10 -X POST -H @- "http://$ip:80/api/auth/login?username=admin")
|
||||
echo "default login -> HTTP $code | box state: $(state) | filebrowser started $(docker inspect -f '{{.State.StartedAt}}' filebrowser)"
|
||||
}
|
||||
case "$1" in
|
||||
probe) probe ;;
|
||||
recreate)
|
||||
echo "volume before: $(docker volume ls -q | grep -c '^filebrowser_filebrowser_data$')"
|
||||
docker stop filebrowser >/dev/null && docker rm filebrowser >/dev/null && docker volume rm filebrowser_filebrowser_data >/dev/null && echo "removed filebrowser + filebrowser_filebrowser_data at $(date -u +%T)"
|
||||
for i in $(seq 1 10); do sleep 60; echo "+${i}m: $(probe)"; done ;;
|
||||
esac
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
"""t1teardown.py — R-1022 on Tester 1 through its dashboard's own endpoints (operator word 2026-10-17 10:47).
|
||||
|
||||
Env: SC (0600 dir with .ctlpw = Tester 1's dashboard password), EV, TARGET=tester-1. Steps:
|
||||
apps stop + remove each test app WITHOUT „delete data" (remove_hdd_data=false, remove_backups=false)
|
||||
drives decommission media_a..media_d („anyway", type-to-confirm = the mount name), the dashboard's call
|
||||
state deployed apps, storage paths, the controller image and repo_url (read-only)
|
||||
"""
|
||||
import json, os, sys, time
|
||||
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
||||
import box_walk as w # noqa: E402
|
||||
EV = os.environ["EV"]
|
||||
LOG = open(os.path.join(EV, "t1-console.txt"), "a", buffering=1)
|
||||
_say = w.say
|
||||
def say(*a):
|
||||
_say(*a); LOG.write(time.strftime("%H:%M:%S ") + " ".join(str(x) for x in a) + "\n")
|
||||
w.say = say
|
||||
APPS = ["sonarr", "radarr", "qbittorrent", "transmission", "plex", "jellyfin", "prowlarr"]
|
||||
DRIVES = ["media_a", "media_b", "media_c", "media_d"]
|
||||
|
||||
def state():
|
||||
c, d = w.ctl("GET", "/api/stacks")
|
||||
dep = sorted(s.get("name") for s in (d.get("data") or []) if s.get("deployed"))
|
||||
say(f"deployed apps: {dep}")
|
||||
say(w.guest("cat /etc/felhom-controller-image; grep -n repo_url /var/lib/docker/volumes/felhom-controller-data/_data/controller.yaml; "
|
||||
"findmnt -rn -o TARGET | grep felhom-drives; python3 -c \"import json;d=json.load(open('/var/lib/docker/volumes/felhom-controller-data/_data/data/settings.json'));"
|
||||
"print('storage paths:', [(p.get('path'), 'decommissioned' if p.get('decommissioned') else 'live') for p in d.get('storage_paths') or []])\""))
|
||||
|
||||
def main():
|
||||
step = sys.argv[1]
|
||||
w.login()
|
||||
if step == "apps":
|
||||
for a in APPS:
|
||||
st = w.stack(a)
|
||||
if not st.get("deployed"):
|
||||
say(f"{a}: not deployed — skipped"); continue
|
||||
c1, d1 = w.ctl("POST", f"/api/stacks/{a}/stop")
|
||||
for _ in range(36):
|
||||
time.sleep(5)
|
||||
if w.stack(a).get("state") != "running":
|
||||
break
|
||||
c2, d2 = w.ctl("POST", f"/api/stacks/{a}/remove", {"remove_hdd_data": False, "remove_backups": False})
|
||||
say(f"{a}: stop -> {c1}; remove (keep data, keep backups) -> {c2} {json.dumps(d2, ensure_ascii=False)[:260]}")
|
||||
state()
|
||||
elif step == "drives":
|
||||
for m in DRIVES:
|
||||
c, d = w.ctl("POST", "/api/storage/decommission", {"where": f"/mnt/felhom-drives/{m}", "mode": "anyway", "mount_name": m})
|
||||
say(f"decommission {m} -> {c} {json.dumps(d, ensure_ascii=False)[:300]}")
|
||||
time.sleep(5)
|
||||
state()
|
||||
elif step == "state":
|
||||
state()
|
||||
|
||||
main()
|
||||
Reference in new issue
Block a user