Skip to content
Snippets Groups Projects
Verified Commit df29cd04 authored by Damien's avatar Damien
Browse files

FEAT #7731 Docservers percentage + checks

parent 1f3cfd41
No related branches found
No related tags found
No related merge requests found
...@@ -34,8 +34,9 @@ class DocserverController ...@@ -34,8 +34,9 @@ class DocserverController
$sortedDocservers = []; $sortedDocservers = [];
$docservers = DocserverModel::get(); $docservers = DocserverModel::get();
foreach ($docservers as $key => $docserver) { foreach ($docservers as $docserver) {
$docserver['actual_size_number'] = DocserverController::getDocserverSize(['path' => $docserver['path_template']]); $docserver['actual_size_number'] = DocserverController::getDocserverSize(['path' => $docserver['path_template']]);
$docserver['percentage'] = round($docserver['actual_size_number'] / $docserver['size_limit_number'] * 100, 2);
$sortedDocservers[$docserver['docserver_type_id']][] = $docserver; $sortedDocservers[$docserver['docserver_type_id']][] = $docserver;
} }
...@@ -125,10 +126,17 @@ class DocserverController ...@@ -125,10 +126,17 @@ class DocserverController
return $response->withStatus(400)->withJson(['errors' => _PATH_OF_DOCSERVER_UNAPPROACHABLE]); return $response->withStatus(400)->withJson(['errors' => _PATH_OF_DOCSERVER_UNAPPROACHABLE]);
} }
$data['is_readonly'] = empty($data['is_readonly']) ? 'N' : 'Y'; $updateData = [
$data['docserver_id'] = $aArgs['id']; 'docserver_id' => $aArgs['id'],
'device_label' => $data['device_label'],
'size_limit_number' => $data['size_limit_number'],
'path_template' => $data['path_template'],
'priority_number' => $data['priority_number'],
'adr_priority_number' => $data['adr_priority_number'],
'is_readonly' => empty($data['is_readonly']) ? 'N' : 'Y'
];
DocserverModel::update($data); DocserverModel::update($updateData);
HistoryController::add([ HistoryController::add([
'tableName' => 'docservers', 'tableName' => 'docservers',
'recordId' => $aArgs['id'], 'recordId' => $aArgs['id'],
...@@ -436,16 +444,22 @@ class DocserverController ...@@ -436,16 +444,22 @@ class DocserverController
$firstLayerDirectories = scandir($aArgs['path']); $firstLayerDirectories = scandir($aArgs['path']);
foreach ($firstLayerDirectories as $firstLayerDirectory) { foreach ($firstLayerDirectories as $firstLayerDirectory) {
if ($firstLayerDirectory != '.' && $firstLayerDirectory != '..') { if ($firstLayerDirectory != '.' && $firstLayerDirectory != '..') {
$secondLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}"); if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}"])) {
foreach ($secondLayerDirectories as $secondLayerDirectory) { $secondLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}");
if ($secondLayerDirectory != '.' && $secondLayerDirectory != '..') { foreach ($secondLayerDirectories as $secondLayerDirectory) {
$thirdLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}"); if ($secondLayerDirectory != '.' && $secondLayerDirectory != '..') {
foreach ($thirdLayerDirectories as $thirdLayerDirectory) { if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}"])) {
if ($thirdLayerDirectory != '.' && $thirdLayerDirectory != '..') { $thirdLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}");
$files = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}"); foreach ($thirdLayerDirectories as $thirdLayerDirectory) {
foreach ($files as $file) { if ($thirdLayerDirectory != '.' && $thirdLayerDirectory != '..') {
if ($file != '.' && $file != '..') { if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}"])) {
$size += filesize("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}/{$file}"); $files = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}");
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
$size += filesize("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}/{$file}");
}
}
}
} }
} }
} }
...@@ -467,6 +481,9 @@ class DocserverController ...@@ -467,6 +481,9 @@ class DocserverController
if (!is_dir($aArgs['path'])) { if (!is_dir($aArgs['path'])) {
return false; return false;
} }
if (!is_readable($aArgs['path'])) {
return false;
}
if (!is_writable($aArgs['path'])) { if (!is_writable($aArgs['path'])) {
return false; return false;
} }
......
...@@ -107,7 +107,8 @@ class DocserverModelAbstract ...@@ -107,7 +107,8 @@ class DocserverModelAbstract
'size_limit_number' => $aArgs['size_limit_number'], 'size_limit_number' => $aArgs['size_limit_number'],
'priority_number' => $aArgs['priority_number'], 'priority_number' => $aArgs['priority_number'],
'adr_priority_number' => $aArgs['adr_priority_number'], 'adr_priority_number' => $aArgs['adr_priority_number'],
'is_readonly' => $aArgs['is_readonly'] 'is_readonly' => $aArgs['is_readonly'],
'creation_date' => 'CURRENT_TIMESTAMP'
] ]
]); ]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment