|
|
@@ -31,13 +31,15 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
|
|
|
private function defaultAction_WMS_LAYERS($ID_WMS_LAYERS) {
|
|
|
try {
|
|
|
- $LAYER_TYPE=DB::getPDO()->fetchall("select LAYER_TYPE from WMS_LAYERS where ID='".$ID_WMS_LAYERS."'");
|
|
|
- if (!$LAYER_TYPE) throw new Exception('Błąd - nie ma takiej warstwy!');
|
|
|
+ $layer=DB::getPDO()->fetchall("select LAYER_TYPE,FILE_STATUS from WMS_LAYERS where ID='".$ID_WMS_LAYERS."'");
|
|
|
+ if (!$layer) throw new Exception('Błąd - nie ma takiej warstwy!');
|
|
|
+
|
|
|
+ if ($layer[0]['FILE_STATUS']=="IN_PROGRESS") throw new Exception('Błąd - plik w trakcie przetwarzania!');
|
|
|
|
|
|
$destFolderPath = $this->getDirectory($ID_WMS_LAYERS);
|
|
|
$files=array();
|
|
|
|
|
|
- if ($LAYER_TYPE[0]['LAYER_TYPE']=='GeoTIFF') {
|
|
|
+ if ($layer[0]['LAYER_TYPE']=='GeoTIFF') {
|
|
|
|
|
|
foreach (glob($destFolderPath."/*.tif",GLOB_BRACE) as $node) {
|
|
|
if (is_file($node)) $files[]=basename($node);
|
|
|
@@ -50,7 +52,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
if (!$validateGeoTif) throw new Exception('Znaleziony plik '.$files[0].' nie jest poprawnym plikiem tif!');
|
|
|
if (!$validateGeoTif->coordinateSystem->wkt) throw new Exception('Znaleziony plik '.$files[0].' nie jest poprawnym plikiem GeoTif!');
|
|
|
|
|
|
- } elseif ($LAYER_TYPE[0]['LAYER_TYPE']=='QGIS') {
|
|
|
+ } elseif ($layer[0]['LAYER_TYPE']=='QGIS') {
|
|
|
|
|
|
foreach (glob($destFolderPath."/*.qgs",GLOB_BRACE) as $node) {
|
|
|
if (is_file($node)) $files[]=basename($node);
|
|
|
@@ -87,7 +89,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
$sqlObj->FILE_STATUS='TO_GENERATE';
|
|
|
$sqlObj->FILE_STATUS_INFO='Plik oczekuje na przetworzenie';
|
|
|
$sqlObj->FILE_NAME=$files[0];
|
|
|
- $sqlObj->OLD_LAYER_TYPE=$LAYER_TYPE[0]['LAYER_TYPE'];
|
|
|
+ $sqlObj->OLD_LAYER_TYPE=$layer[0]['LAYER_TYPE'];
|
|
|
$affected = DB::getDB()->UPDATE_OBJ('WMS_LAYERS', $sqlObj);
|
|
|
if ($affected) SE_Layout::alert('success','Oznaczono plik '.$files[0].' do przetworzenia.');
|
|
|
else SE_Layout::alert('warning','Plik '.$files[0].' został już wcześniej oznaczony do przetworzenia.');
|
|
|
@@ -493,6 +495,7 @@ fi
|
|
|
|
|
|
$layers=DB::getPDO()->fetchall("select ID,FILE_NAME from WMS_LAYERS where LAYER_TYPE='GeoTIFF' and FILE_STATUS='TO_GENERATE'");
|
|
|
foreach ($layers as $layer) {
|
|
|
+echo $layer['ID']."\n";
|
|
|
$destFolderPath = $this->getDirectory($layer['ID']);
|
|
|
if(!is_file($destFolderPath.'/'.$layer['FILE_NAME'])) {
|
|
|
DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$layer['ID'],'FILE_STATUS'=>'ERROR','FILE_STATUS_INFO'=>'Wystąpił błąd pliku tif'));
|
|
|
@@ -508,7 +511,7 @@ fi
|
|
|
$replace = array($layer['ID'],$destFolderPath,$layer['FILE_NAME']);
|
|
|
$bash = str_replace($search,$replace,$bashSchema);
|
|
|
file_put_contents('/tmp/generate_wms-'.$layer['ID'].'.sh',$bash);
|
|
|
- shell_exec('su - root -c "nohup /bin/sh /tmp/generate_wms-'.$layer['ID'].'.sh >> /tmp/generate_wms-'.$layer['ID'].'.log"');
|
|
|
+ shell_exec('su - root -c "/bin/sh /tmp/generate_wms-'.$layer['ID'].'.sh > /tmp/generate_wms-'.$layer['ID'].'.log 2>&1 &"');
|
|
|
}
|
|
|
|
|
|
} catch (Exception $e) {
|