From 5684202fcbbea2238deaa58c0a6d9382bbda4da2 Mon Sep 17 00:00:00 2001 From: Terranom674 Date: Mon, 17 Aug 2026 11:36:44 +0200 Subject: [PATCH] Show next NC Connector run and legacy cleanup --- template/nc_connector_admin.tpl | 80 +++++++++++++-------------------- 1 file changed, 32 insertions(+), 48 deletions(-) diff --git a/template/nc_connector_admin.tpl b/template/nc_connector_admin.tpl index 4a9c854..610f5f7 100644 --- a/template/nc_connector_admin.tpl +++ b/template/nc_connector_admin.tpl @@ -1,42 +1,37 @@

NC Connector

-

Bratonien Tools übernimmt die bestehende Nextcloud-Anbindung schrittweise in eine eigene Connection-Verwaltung. Bis zum kontrollierten Cutover bleibt der produktive Legacy-Sync unverändert aktiv.

+

Bratonien Tools verwaltet die Nextcloud-Anbindung und den regelmäßigen Piwigo-Abgleich.

-

Migrationsstatus

+

Connector-Status

Phase{$NC_CONNECTOR.phase|escape:html} - Legacy-Verbindung vorhanden{if $NC_CONNECTOR.legacy_present}Ja{else}Nein{/if} - Legacy-Konfiguration für PHP lesbar{if $NC_CONNECTOR.config_readable}Ja{else}Nein{/if} Connector-Verbindungen{$NC_CONNECTOR.connection_count|escape:html} - Davon verifiziert{$NC_CONNECTOR.verified_count|escape:html} - Migrationspaket bereit{if $NC_CONNECTOR.migration_bundle_available}Ja{else}Nein{/if} + Timer aktiv{if $NC_CONNECTOR.system.timer_active}Ja{else}Nein{/if} + Timer aktiviert{if $NC_CONNECTOR.system.timer_enabled}Ja{else}Nein{/if} + Nächster Lauf{$NC_CONNECTOR.system.next_run_label|escape:html}
- - {if $NC_CONNECTOR.legacy_present && !$NC_CONNECTOR.config_readable} -

Die bestehende Konfiguration ist absichtlich nur für root lesbar. Sie wird nicht für den Webserver geöffnet.

- {/if}
-

Bestehende Verbindung übernehmen

- {if $NC_CONNECTOR.connection_count == 0} -

Führe im Piwigo-LXC einmalig folgenden Befehl als root aus:

-

{$NC_CONNECTOR.migration_command|escape:html}

-

Der Helfer liest die bisherige /etc/piwigo-sync/piwigo.conf, die zugehörige Passwortdatei und storages.tsv. Er verändert weder Nextcloud noch den laufenden Sync-Dienst oder den Shadow Tree.

- - {if $NC_CONNECTOR.migration_bundle_available} -
- - -
-

Der Import legt die Verbindung nur im NC Connector an. Sie bleibt deaktiviert; der bisherige Sync bleibt Produktionsverbindung.

- {else} -

Noch kein Migrationspaket vorhanden. Nach Ausführen des Befehls diese Seite neu laden.

- {/if} +

Legacy-Bestand

+
+ /opt/piwigo-sync{if $NC_CONNECTOR.system.legacy_runtime_exists}Vorhanden{else}Entfernt{/if} + /etc/piwigo-sync{if $NC_CONNECTOR.system.legacy_config_exists}Vorhanden{else}Entfernt{/if} + Legacy-Service{if $NC_CONNECTOR.system.legacy_service_exists}Vorhanden{else}Entfernt{/if} + Legacy-Timer{if $NC_CONNECTOR.system.legacy_timer_exists}Vorhanden{else}Entfernt{/if} +
+ {if $NC_CONNECTOR.system.legacy_runtime_exists || $NC_CONNECTOR.system.legacy_config_exists || $NC_CONNECTOR.system.legacy_service_exists || $NC_CONNECTOR.system.legacy_timer_exists} +

Die Verbindung läuft bereits mit der Plugin-eigenen Runtime. Die verbliebenen Legacy-Dateien können jetzt entfernt werden.

+ {foreach from=$NC_CONNECTOR.connections item=cleanup_connection} + {if $cleanup_connection.takeover_state == 'active' && $cleanup_connection.enabled && isset($cleanup_connection.config.takeover.runtime) && $cleanup_connection.config.takeover.runtime == 'plugin-runtime'} +

Einmalig im Piwigo-LXC als root:

+

php /var/www/piwigo/plugins/bratonien_tools/nc-connector-legacy-cleanup.php {$cleanup_connection.id|escape:html}

+ {/if} + {/foreach} {else} -

Die bestehende Verbindung wurde bereits in die Connector-Verwaltung übernommen. Verifizierte Verbindungen können kontrolliert an den Connector übergeben werden.

+

Der alte Script-Bestand ist vollständig entfernt. Der NC Connector arbeitet ausschließlich mit seiner Plugin-eigenen Runtime.

{/if}
@@ -106,19 +101,19 @@

Die Verbindung ist technisch verifiziert und für die kontrollierte Übergabe bereit. Der Connector ist noch deaktiviert und der Legacy-Sync bleibt Produktionsverbindung.

Cutover im Piwigo-LXC als root:

php /var/www/piwigo/plugins/bratonien_tools/nc-connector-cutover-v2.php {$connection.id|escape:html}

-

Ablauf: Legacy-Timer stoppen → laufenden Legacy-Sync auslaufen lassen → erster Connector-Lauf → bei Erfolg Connector-Timer aktivieren und Legacy-Timer deaktivieren. Sowohl „Änderungen verarbeitet“ als auch „keine Änderungen gefunden“ gelten als Erfolg. Nur ein technischer Fehler löst den Rückfall aus.

{elseif $connection.takeover_state == 'active'} -

Connector aktiv. Der Legacy-Timer wurde beim Cutover deaktiviert und der Connector-Timer übernimmt die regelmäßige Prüfung.

+

Connector aktiv. Der Connector-Timer übernimmt die regelmäßige Prüfung.

+

Nächster geplanter Lauf: {$NC_CONNECTOR.system.next_run_label|escape:html}

{if isset($connection.config.takeover.first_run.result)}

Erster Connector-Lauf: {$connection.config.takeover.first_run.result|escape:html}{if isset($connection.config.takeover.first_run.checked_at)} · {$connection.config.takeover.first_run.checked_at|escape:html}{/if}

{/if} - {if isset($connection.config.takeover.runtime) && $connection.config.takeover.runtime == 'legacy-runtime-transition'} -

Übergangszustand: Die Zeitsteuerung gehört bereits dem NC Connector, die eigentliche Sync-Runtime wird in diesem Schritt noch aus /opt/piwigo-sync verwendet. Diese Runtime wird im nächsten Migrationsschritt in den Connector übernommen.

+ {if isset($connection.config.takeover.runtime) && $connection.config.takeover.runtime == 'plugin-runtime'} +

Runtime: Bratonien Tools

{/if} {elseif $connection.verified_ok} -

Die Connector-Kopie ist technisch verifiziert. Sie bleibt deaktiviert; der Legacy-Sync ist weiterhin die Produktionsverbindung.

+

Die Connector-Kopie ist technisch verifiziert. Sie bleibt deaktiviert.

{else} -

Die Verifikation ist noch nicht vollständig erfolgreich. Es wurde nichts umgeschaltet oder verändert.

+

Die Verifikation ist noch nicht vollständig erfolgreich.

{/if} @@ -132,27 +127,16 @@
-

Legacy-Sync

+

Sync-Zustand

- Konfiguration{if $NC_CONNECTOR.config_readable}Lesbar{elseif $NC_CONNECTOR.config_exists}Vorhanden, root-geschützt{else}Nicht gefunden{/if} - Piwigo-Sync laut lesbarer Konfiguration{if $NC_CONNECTOR.config_readable}{if $NC_CONNECTOR.sync_enabled}Ja{else}Nein{/if}{else}Nicht auslesbar{/if} - Letzter Status{if $NC_CONNECTOR.sync_status.available}{$NC_CONNECTOR.sync_status.state|escape:html}{else}Nicht verfügbar{/if} + Connector-Timer{if $NC_CONNECTOR.system.timer_active}Aktiv{else}Nicht aktiv{/if} + Nächster Lauf{$NC_CONNECTOR.system.next_run_label|escape:html}
- {if $NC_CONNECTOR.sync_status.message} -

{$NC_CONNECTOR.sync_status.message|escape:html}

- {/if}
-

Migrationsschutz

-
    -
  • vor dem Cutover keine Änderung am bestehenden piwigo-sync
  • -
  • keine Änderung an PostgreSQL, Views, pg_hba.conf oder Reader-Rechten
  • -
  • keine Änderung an bestehenden Mounts
  • -
  • der Cutover wartet einen bereits laufenden Legacy-Sync ab, statt ihn abzubrechen
  • -
  • nur ein technischer Fehler reaktiviert automatisch den Legacy-Timer
  • -
  • no_changes ist ausdrücklich ein erfolgreicher erster Connector-Lauf
  • -
+

Laufzeitdaten

+

/var/lib/piwigo-sync bleibt aktuell bestehen. Dort liegen keine alten Scripts oder Zugangsdaten, sondern die vom aktiven Connector benötigte Name-Map, Activity-State, Manifest- und Statusdaten.