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
$sortedDocservers = [];
$docservers = DocserverModel::get();
foreach ($docservers as $key => $docserver) {
foreach ($docservers as $docserver) {
$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;
}
......@@ -125,10 +126,17 @@ class DocserverController
return $response->withStatus(400)->withJson(['errors' => _PATH_OF_DOCSERVER_UNAPPROACHABLE]);
}
$data['is_readonly'] = empty($data['is_readonly']) ? 'N' : 'Y';
$data['docserver_id'] = $aArgs['id'];
$updateData = [
'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([
'tableName' => 'docservers',
'recordId' => $aArgs['id'],
......@@ -436,16 +444,22 @@ class DocserverController
$firstLayerDirectories = scandir($aArgs['path']);
foreach ($firstLayerDirectories as $firstLayerDirectory) {
if ($firstLayerDirectory != '.' && $firstLayerDirectory != '..') {
$secondLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}");
foreach ($secondLayerDirectories as $secondLayerDirectory) {
if ($secondLayerDirectory != '.' && $secondLayerDirectory != '..') {
$thirdLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}");
foreach ($thirdLayerDirectories as $thirdLayerDirectory) {
if ($thirdLayerDirectory != '.' && $thirdLayerDirectory != '..') {
$files = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}");
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
$size += filesize("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}/{$file}");
if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}"])) {
$secondLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}");
foreach ($secondLayerDirectories as $secondLayerDirectory) {
if ($secondLayerDirectory != '.' && $secondLayerDirectory != '..') {
if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}"])) {
$thirdLayerDirectories = scandir("{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}");
foreach ($thirdLayerDirectories as $thirdLayerDirectory) {
if ($thirdLayerDirectory != '.' && $thirdLayerDirectory != '..') {
if (DocserverController::isPathAvailable(['path' => "{$aArgs['path']}{$firstLayerDirectory}/{$secondLayerDirectory}/{$thirdLayerDirectory}"])) {
$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
if (!is_dir($aArgs['path'])) {
return false;
}
if (!is_readable($aArgs['path'])) {
return false;
}
if (!is_writable($aArgs['path'])) {
return false;
}
......
......@@ -107,7 +107,8 @@ class DocserverModelAbstract
'size_limit_number' => $aArgs['size_limit_number'],
'priority_number' => $aArgs['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