mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 10:34:30 +00:00
Compare commits
3 Commits
345ece63f3
...
59792988da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59792988da | ||
|
|
5222d12a5f | ||
|
|
65316043d8 |
@@ -60,8 +60,15 @@ function bratonien_tools_run_webdav_scan_diagnostic()
|
||||
$parts[] = 'WebDAV #'.$id.': FEHLER: '.(string)$report['fatal'].' (Exit '.(int)$report['exit_code'].')';
|
||||
continue;
|
||||
}
|
||||
|
||||
$lock_state = (string)($report['worker_lock_state'] ?? 'unknown');
|
||||
if ($lock_state === 'free') $lock_text = 'Worker-Lock frei';
|
||||
elseif ($lock_state === 'busy') $lock_text = 'Worker-Lock BELEGT';
|
||||
elseif ($lock_state === 'open_failed') $lock_text = 'Worker-Lock NICHT OEFFENBAR';
|
||||
else $lock_text = 'Worker-Lock unbekannt';
|
||||
|
||||
$parts[] = sprintf(
|
||||
'WebDAV #%d: Mapping %d Dateien, Shadow %d Links, %d passend, %d defekt, %d ohne Mapping, %d doppelt (Exit %d).',
|
||||
'WebDAV #%d: Mapping %d Dateien, Shadow %d Links, %d passend, %d defekt, %d ohne Mapping, %d doppelt; %s%s (Exit %d).',
|
||||
$id,
|
||||
(int)($report['mapping_files'] ?? 0),
|
||||
(int)($report['shadow_links'] ?? 0),
|
||||
@@ -69,11 +76,13 @@ function bratonien_tools_run_webdav_scan_diagnostic()
|
||||
(int)($report['broken'] ?? 0),
|
||||
(int)($report['unmapped'] ?? 0),
|
||||
(int)($report['duplicates'] ?? 0),
|
||||
$lock_text,
|
||||
!empty($report['worker_lock_detail']) ? ' - '.(string)$report['worker_lock_detail'] : '',
|
||||
(int)$report['exit_code']
|
||||
);
|
||||
}
|
||||
|
||||
return array(
|
||||
'message'=>($failed ? 'Scan-Test fehlgeschlagen. ' : 'Scan-Test erfolgreich. ').implode(' ', $parts),
|
||||
'message'=>($failed ? 'Scan-/Lock-Test auffaellig. ' : 'Scan-/Lock-Test erfolgreich. ').implode(' ', $parts),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: Bratonien Tools
|
||||
Version: 0.9.7.1.20
|
||||
Version: 0.9.7.1.21
|
||||
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
||||
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
||||
Author: Bratonien
|
||||
|
||||
@@ -35,7 +35,7 @@ $_SERVER['REQUEST_URI'] = '/';
|
||||
$_SERVER['SCRIPT_NAME'] = '/plugins/bratonien_tools/runtime/lib/webdav-scan-diagnostic.php';
|
||||
$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'];
|
||||
$_SERVER['QUERY_STRING'] = '';
|
||||
$_SERVER['HTTP_USER_AGENT'] = 'Bratonien-WebDAV-Scan-Diagnostic/0.9.7.1.20';
|
||||
$_SERVER['HTTP_USER_AGENT'] = 'Bratonien-WebDAV-Scan-Diagnostic/0.9.7.1.21';
|
||||
$_SERVER['HTTPS'] = 'off';
|
||||
|
||||
try
|
||||
@@ -54,6 +54,29 @@ try
|
||||
if ($state_dir === '') throw new RuntimeException('Connector-State-Verzeichnis fehlt.');
|
||||
if ($gallery_root === '') throw new RuntimeException('Shadow-Tree-Pfad fehlt in der Connector-Konfiguration.');
|
||||
|
||||
$lock_file = $state_dir.'/webdav-cache-warmup.lock';
|
||||
$worker_lock_state = 'open_failed';
|
||||
$worker_lock_detail = '';
|
||||
$lock_handle = @fopen($lock_file, 'c');
|
||||
if (is_resource($lock_handle))
|
||||
{
|
||||
if (@flock($lock_handle, LOCK_EX | LOCK_NB))
|
||||
{
|
||||
$worker_lock_state = 'free';
|
||||
@flock($lock_handle, LOCK_UN);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worker_lock_state = 'busy';
|
||||
$worker_lock_detail = 'Ein anderer Prozess haelt den WebDAV-Worker-Lock.';
|
||||
}
|
||||
fclose($lock_handle);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worker_lock_detail = 'Worker-Lock-Datei konnte nicht geoeffnet werden.';
|
||||
}
|
||||
|
||||
$mapping_file = $state_dir.'/webdav-map.json';
|
||||
if (!is_file($mapping_file) || !is_readable($mapping_file)) throw new RuntimeException('WebDAV-Mapping fehlt oder ist nicht lesbar: '.$mapping_file);
|
||||
$mapping = json_decode((string)file_get_contents($mapping_file), true);
|
||||
@@ -124,12 +147,17 @@ try
|
||||
}
|
||||
}
|
||||
|
||||
$scan_ok = ($shadow_links > 0 && $matched === $shadow_links && $broken === 0 && $unmapped === 0 && $duplicates === 0);
|
||||
$payload = array(
|
||||
'ok'=>($shadow_links > 0 && $matched === $shadow_links && $broken === 0 && $unmapped === 0 && $duplicates === 0),
|
||||
'ok'=>$scan_ok && $worker_lock_state !== 'open_failed',
|
||||
'scan_ok'=>$scan_ok,
|
||||
'connection_id'=>$connection_id,
|
||||
'state_dir'=>$state_dir,
|
||||
'gallery_root'=>$gallery_root,
|
||||
'mapping_file'=>$mapping_file,
|
||||
'worker_lock_file'=>$lock_file,
|
||||
'worker_lock_state'=>$worker_lock_state,
|
||||
'worker_lock_detail'=>$worker_lock_detail,
|
||||
'mapping_files'=>count($mapped_files),
|
||||
'shadow_links'=>$shadow_links,
|
||||
'matched'=>$matched,
|
||||
|
||||
Reference in New Issue
Block a user