Ver código fonte

merge from master

changed handling for upgrade to utilize the session event details if
detect_switch is missing
Matthew Vale 9 anos atrás
pai
commit
bd9b4317ca

+ 8 - 10
core/install/install_first_time.php

@@ -17,7 +17,7 @@
 
 	The Initial Developer of the Original Code is
 	Mark J Crane <[email protected]>
-	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	Portions created by the Initial Developer are Copyright (C) 2008-2015
 	the Initial Developer. All Rights Reserved.
 
 	Contributor(s):
@@ -28,7 +28,7 @@ require_once "root.php";
 require_once "resources/functions.php";
 require_once "resources/classes/text.php";
 
-//initialize varibles we are going to use
+//initialize variables we are going to use
 	$event_host = '';
 	$event_port = '';
 	$event_password = '';
@@ -130,7 +130,7 @@ if(!$install_step) { $install_step = 'select_language'; }
 	if (isset($_SESSION['domain']['template']['name']) and strlen($_SESSION['domain']['template']['name']) != 0) {
 		$default_template = $_SESSION['domain']['template']['name'];
 	}
-	
+
 //set a default enviroment if first_time
 	if($first_time_install){
 	//initialize some varibles to cut down on warnings
@@ -147,7 +147,7 @@ if(!$install_step) { $install_step = 'select_language'; }
 //buffer the content
 	ob_end_clean(); //clean the buffer
 	ob_start();
-	
+
 	$messages = array();
 	if (!extension_loaded('PDO')) {
 		$messages[] = "<b>PHP PDO was not detected</b>. Please install it before proceeding";
@@ -168,7 +168,7 @@ if(!$install_step) { $install_step = 'select_language'; }
 				"<sm>You can use the following to find what ports are allowed<pre>semanage port -l | grep '^http_port_t'</pre></sm>";
 			}
 		}
-	
+
 	//action code
 	if($return_install_step == 'config_detail'){
 	//check for all required data
@@ -185,11 +185,8 @@ if(!$install_step) { $install_step = 'select_language'; }
 		
 		//set the max execution time to 1 hour
 		ini_set('max_execution_time',3600);
-
 	}
-	
 
-	
 	//display messages
 	if (count($messages)>0) {
 		echo "<br />\n";
@@ -272,7 +269,7 @@ if(!$install_step) { $install_step = 'select_language'; }
 		try {
 			$switch_detect->detect();
 		} catch(Exception $e){
-			echo "<p>Failed to detect confgiuration detect_switch reported: " . $e->getMessage() . "</p>\n";
+			echo "<p>Failed to detect configuration detect_switch reported: " . $e->getMessage() . "</p>\n";
 			$detect_ok = false;
 		}
 		if($detect_ok){
@@ -309,7 +306,7 @@ if(!$install_step) { $install_step = 'select_language'; }
 					}
 				}
 				$fusionPBX->install();
-		
+
 				require_once "resources/classes/install_switch.php";
 				$switch = new install_switch($domain_name, $domain_uuid, $switch_detect);
 				//$switch->debug = true;
@@ -355,6 +352,7 @@ if($first_time_install){
 		$_SESSION['permissions'][]['permission_name'] = 'superadmin';
 		$_SESSION['menu'] = '';
 }
+
 // add the content to the template and then send output
 	$body = ob_get_contents(); //get the output from the buffer
 	ob_end_clean(); //clean the buffer

+ 22 - 10
core/install/resources/classes/install_switch.php

@@ -35,7 +35,14 @@ include "root.php";
 		public $debug = false;
 
 		function __construct($domain_name, $domain_uuid, $detect_switch) {
-			if(!is_a($detect_switch, 'detect_switch')){
+			if($detect_switch == null){
+				if(strlen($_SESSION['event_socket_ip_address']) == 0 or strlen($_SESSION['event_socket_port']) == 0 or strlen($_SESSION['event_socket_password']) == 0 ){
+					throw new Exception('The parameter $detect_switch was empty and i could not find the event socket details from the session');
+				}
+				$detect_switch = new detect_switch($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+				$domain_name = $_SESSION['domain_name'];
+				$domain_uuid = $_SESSION['domain_uuid'];
+			}elseif(!is_a($detect_switch, 'detect_switch')){
 				throw new Exception('The parameter $detect_switch must be a detect_switch object (or a subclass of)');
 			}
 			$this->domain_uuid = $domain_uuid;
@@ -166,11 +173,10 @@ include "root.php";
 			}
 		}
 
-
 		function install() {
 			$this->copy_conf();
 			$this->copy_scripts();
-		//tell freeswitch to restart
+			//tell freeswitch to restart
 			$this->write_progress("Restarting switch");
 			$this->detect_switch->restart_switch();
 		}
@@ -182,10 +188,10 @@ include "root.php";
 		function copy_conf() {
 			$this->write_progress("Copying Config");
 			//make a backup of the config
-			if (file_exists($this->detect_switch->conf_dir())) {
-				$this->backup_dir($this->detect_switch->conf_dir(), 'fusionpbx_switch_config');
-				$this->recursive_delete($this->detect_switch->conf_dir());
-			}
+				if (file_exists($this->detect_switch->conf_dir())) {
+					$this->backup_dir($this->detect_switch->conf_dir(), 'fusionpbx_switch_config');
+					$this->recursive_delete($this->detect_switch->conf_dir());
+				}
 			//make sure the conf directory exists
 				if (!is_dir($this->detect_switch->conf_dir())) {
 					if (!mkdir($this->detect_switch->conf_dir(), 0774, true)) {
@@ -236,15 +242,21 @@ include "root.php";
 
 		function copy_scripts() {
 			$this->write_progress("Copying Scripts");
-			if (file_exists($this->detect_switch->script_dir())) {
+			if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
+				$script_dir = $_SESSION['switch']['scripts']['dir'];
+			}
+			else {
+				$script_dir = $this->detect_switch->script_dir();
+			}
+			if (file_exists($script_dir)) {
 				if (file_exists('/usr/share/examples/fusionpbx/resources/install/scripts')){
 					$src_dir = '/usr/share/examples/fusionpbx/resources/install/scripts';
 				}
 				else {
 					$src_dir = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/install/scripts';
 				}
-				$dst_dir = $this->detect_switch->script_dir();
-				if (is_readable($this->detect_switch->script_dir())) {
+				$dst_dir = $script_dir;
+				if (is_readable($script_dir)) {
 					$this->recursive_copy($src_dir, $dst_dir, $_SESSION['scripts']['options']['text']);
 					unset($src_dir, $dst_dir);
 				}