Преглед на файлове

added install check web action to instalator

Piotr Labudda преди 10 години
родител
ревизия
f1b2c66d0e
променени са 7 файла, в които са добавени 209 реда и са изтрити 126 реда
  1. 71 0
      SE/bash_install_check.php
  2. 3 2
      SE/bash_sync_perms.php
  3. 16 0
      SE/se-lib/Route/Cron.php
  4. 1 1
      SE/se-lib/Route/Msgs.php
  5. 7 15
      SE/se-lib/Route/Notify.php
  6. 107 107
      SE/superedit-DB_PROCEDURES_CREATE.php
  7. 4 1
      SE/superedit-INSTALL_SES_PROCESY_A.php

+ 71 - 0
SE/bash_install_check.php

@@ -0,0 +1,71 @@
+<?php
+/**
+ * 2016-04-06 by plabudda
+ *
+ */
+
+ini_set('max_execution_time', 300);
+ini_set('memory_limit', '512M');
+
+define('DS', DIRECTORY_SEPARATOR);
+define('APP_PATH_ROOT', dirname(__FILE__));
+define('APP_PATH_WWW', dirname(__FILE__));
+define('APP_PATH_CONFIG', APP_PATH_ROOT . DS . 'config');
+
+// set ini to log errors into error log file
+ini_set('display_startup_errors', '0');
+ini_set('log_errors', '1');
+ini_set('error_log', '/var/log/apache2/error_log');// TODO: php.ini ?
+
+require_once APP_PATH_ROOT . DS . 'se-lib' . DS . 'Lib.php';
+Lib::loadClass('V');
+Lib::loadClass('Config');
+Lib::loadClass('DB');
+Lib::loadClass('User');
+
+if (isset($_SERVER["argv"][1])) {
+	$_SERVER['SERVER_NAME'] = $_SERVER["argv"][1];
+}
+else if (empty($_SERVER["argv"]) && V::get('task', '', $_GET) == 'info') {
+	$info = array();
+	$info['max_execution_time'] = ini_get('max_execution_time');
+	$info['memory_limit'] = ini_get('memory_limit');
+	echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">info (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($info);echo'</pre>';
+
+	ini_set('max_execution_time', 300);
+	ini_set('memory_limit', '512M');
+	$info = array();
+	$info['max_execution_time'] = ini_get('max_execution_time');
+	$info['memory_limit'] = ini_get('memory_limit');
+	echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">info (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($info);echo'</pre>';
+}
+else {
+	die("\n The second argument should be server domain - e.g. biuro.biall-net.pl \n");
+}
+
+// TODO: check install
+Lib::loadClass('Router');
+$cronTaskName = 'checkInstall';
+$keyToken = 'bach_install_check';
+$token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
+$baseUrl = "https://{$_SERVER['SERVER_NAME']}/SE";
+if ('biuro.biall-net.pl' == $_SERVER['SERVER_NAME']) $baseUrl = "https://{$_SERVER['SERVER_NAME']}/SE/version-git";
+
+//file_get_contents("https://{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task=sendNofity");
+function runUrlTask($url) {
+	$ch = curl_init();
+	curl_setopt($ch, CURLOPT_VERBOSE, true);
+	curl_setopt($ch, CURLOPT_URL, $url);
+	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+	$return = curl_exec($ch);
+	curl_close($ch);
+	return $return;
+}
+$string = runUrlTask("{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task={$cronTaskName}}");
+echo "DBG: string -----------------------\n{$string}\nEOF string---------------------------------\n";
+
+die(".EOF - OK\n");
+
+?>

+ 3 - 2
SE/bash_sync_perms.php

@@ -455,8 +455,9 @@ class SyncPerms {
 
 	public static function sendNofity() {
 		Lib::loadClass('Router');
+		$cronTaskName = 'sendNofity';
 		$keyToken = 'bach_sync_perms';
-		$token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, 'sendNofity', 300 * 10);
+		$token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
 		echo "DBG: token = '{$token}'" . "\n";
 
 		$baseUrl = "https://{$_SERVER['SERVER_NAME']}/SE";
@@ -475,7 +476,7 @@ class SyncPerms {
 		  curl_close($ch);
 		  return $return;
 		}
-		$string = runUrlTask("{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task=sendNofity");
+		$string = runUrlTask("{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task={$cronTaskName}");
 		echo "DBG: string -----------------------\n{$string}\nEOF string---------------------------------\n";
 	}
 

+ 16 - 0
SE/se-lib/Route/Cron.php

@@ -158,4 +158,20 @@ class Route_Cron extends RouteBase {
 		echo "\n.EOF\n";
 	}
 
+	public function checkInstallAction() {
+		Lib::loadClass('Router');
+		$routeToReinstallList = array();
+		$routeToReinstallList[] = 'Config';
+		$routeToReinstallList[] = 'Msgs';
+		$routeToReinstallList[] = 'FixProjectPath';
+		$routeToReinstallList[] = 'FixCrmProcesInitIdx';
+		$routeToReinstallList[] = 'Notify';
+		foreach ($routeToReinstallList as $routeName) {
+			$route = Router::getRoute($routeName);
+			$route->reinstall();
+			echo " - {$routeName} checked\n";
+		}
+		echo "\n.EOF\n";
+	}
+
 }

+ 1 - 1
SE/se-lib/Route/Msgs.php

@@ -75,7 +75,7 @@ class Route_Msgs extends RouteBase {
 
 	public function reinstallFunctions() {
 		$sqlList = array();
-		$sqlList['RemoveTable_CRM_UI_MSGS__EXEC_LOG'] = "DROP TABLE IF EXISTS `CRM_UI_MSGS__EXEC_LOG`";
+		//$sqlList['RemoveTable_CRM_UI_MSGS__EXEC_LOG'] = "DROP TABLE IF EXISTS `CRM_UI_MSGS__EXEC_LOG`";
 		$sqlList['CreateTable_CRM_UI_MSGS__EXEC_LOG'] = "
 			CREATE TABLE IF NOT EXISTS `CRM_UI_MSGS__EXEC_LOG` (
 				`ID` int(11) NOT NULL AUTO_INCREMENT

+ 7 - 15
SE/se-lib/Route/Notify.php

@@ -8,7 +8,9 @@ Lib::loadClass('TypespecialVariable');
 Lib::loadClass('Route_UserMsgs');
 
 /*
-# Nofitication system:
+# Nofitication System:
+
+## INSTALL - Nofitication System: index.php?_route=Notify&_task=reinstall&_force=true
 
 Sends mail by settings `CRM_NOTIFY`:
 - who - user login
@@ -1124,20 +1126,10 @@ EOF_SQL_CREATE;
 				- what - action type
 				- last_exec_time
 		*/
-		if($force){
-			$pdo->exec("DROP TABLE IF EXISTS CRM_NOTIFY");
-			$pdo->exec("
-					CREATE TABLE IF NOT EXISTS CRM_NOTIFY (
-						`who` varchar(20) NOT NULL
-						, `when` varchar(255) NOT NULL
-						, `what` varchar(255) NOT NULL DEFAULT ''
-						, `last_exec_time` datetime
-						, KEY `key_who` (`who`)
-						, UNIQUE KEY `uniq_key_1` (`who`,`when`,`what`)
-					) ENGINE=MyISAM DEFAULT CHARSET=latin2
-			");
-		}
-		{// assertTableStruct CRM_NOTIFY
+		if ($force) $pdo->exec("DROP TABLE IF EXISTS CRM_NOTIFY");
+		$pdo->exec($sqlCreate);
+
+		if(0){// TODO: assertTableStruct CRM_NOTIFY
 			$expectedStruct = array();
 			$expectedStruct['who'] = array('type'=>'varchar', 'max_length'=>20, 'is_nullable'=>false);// `who` varchar(20) -- TODO:  NOT NULL
 			$expectedStruct['when'] = array('type'=>'varchar', 'max_length'=>255, 'is_nullable'=>false);// `when` varchar(255) NOT NULL

Файловите разлики са ограничени, защото са твърде много
+ 107 - 107
SE/superedit-DB_PROCEDURES_CREATE.php


+ 4 - 1
SE/superedit-INSTALL_SES_PROCESY_A.php

@@ -1188,6 +1188,8 @@ function INSTALL_GETCOMMANDS_SE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNA
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy','/Library/Server/Web/Data/Sites/Default/SE/');
     $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php || echo PASSED';
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_sync_perms.php','/Library/Server/Web/Data/Sites/Default/SE/');
+	$cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php || echo PASSED';
+  $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_install_check.php','/Library/Server/Web/Data/Sites/Default/SE/');
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/VERSION','/Library/Server/Web/Data/Sites/Default/SE/');
 
 
@@ -1222,6 +1224,8 @@ function INSTALL_GETCOMMANDS_SE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNA
 $cmd[]['rsh']=' php /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php '.$SERVER_ADDRESS.' addToLaunchctl';
 $cmd[]['rsh']=' launchctl load /Library/LaunchDaemons/pl.biallnet.sync_perms.'.$SERVER_ADDRESS.'.php.plist';
 
+$cmd[]['rsh']=' php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS;
+
 if($SERVER_VERSION=='10.10Yosemite' or $SERVER_VERSION=='10.11-ElCapitan') $cmd[]['rsh']='dseditgroup -o read com.apple.access_mail || dseditgroup -o create com.apple.access_mail';
 if($SERVER_VERSION=='10.10Yosemite' or $SERVER_VERSION=='10.11-ElCapitan') $cmd[]['rsh']='dseditgroup -o read com.apple.access_addressbook || dseditgroup -o create com.apple.access_addressbook';
 if($SERVER_VERSION=='10.10Yosemite' or $SERVER_VERSION=='10.11-ElCapitan') $cmd[]['rsh']='dseditgroup -o read com.apple.access_smb || dseditgroup -o create com.apple.access_smb';
@@ -1906,7 +1910,6 @@ function MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$installer_tmp,
 
 
 function INSTALL_SES_PROCESY_A() {
-  $INSTALL_ROOT='/Users/plabudda/se-dev-pl/SE'; //glowny katalog ze zrodlem SE
   $INSTALL_ROOT='/Library/Server/Web/Data/Sites/SE-production-git/SE'; //glowny katalog ze zrodlem SE
   $OPTIONS->SE_config='/Library/Server/Web/Data/Sites/SE-config'; //glowny katalog z konfigami
 //DB::query('update SES_PROCESY5_A set INSTALL_COMPLETE_POINT=0 ');

Някои файлове не бяха показани, защото твърде много файлове са промени