. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * * @copyright 2008-2009, KnowledgeTree Inc. * @license GNU General Public License version 3 * @author KnowledgeTree Team * @package Migrater * @version Version 0.1 */ class services extends Step { /** * List of errors encountered * * @author KnowledgeTree Team * @access protected * @var array */ protected $error = array(); /** * Flag if step needs to be migrated * * @author KnowledgeTree Team * @access protected * @var array */ protected $runMigrate = true; /** * List of services to be migrated * * @author KnowledgeTree Team * @access private * @var array */ private $services = array('Lucene', 'Scheduler', 'OpenOffice'); /** * Reference to utility object * * @author KnowledgeTree Team * @access protected * @var string */ protected $util; /** * Flag if services are already Stopped * * @author KnowledgeTree Team * @access private * @var mixed */ private $alreadyStopped = false; /** * Flag if services are already Stopped * * @author KnowledgeTree Team * @access private * @var mixed */ private $luceneStopped = false; /** * Flag if services are already Stopped * * @author KnowledgeTree Team * @access private * @var mixed */ private $schedulerStopped = false; /** * Flag if services are already Stopped * * @author KnowledgeTree Team * @access private * @var mixed */ private $openOfficeStopped = false; /** * Service Migrateed * * @author KnowledgeTree Team * @access private * @var array */ private $serviceCheck = 'tick'; /** * Flag to store class information in session * * @author KnowledgeTree Team * @access public * @var boolean */ protected $storeInSession = true; /** * List of variables to be loaded to template * * @author KnowledgeTree Team * @access public * @var array */ protected $temp_variables; /** * Flag if step needs to run silently * * @author KnowledgeTree Team * @access public * @var array */ protected $silent = true; /** * Constructs services object * * @author KnowledgeTree Team * @access public * @param none */ public function __construct() { $this->temp_variables = array("step_name"=>"services", "silent"=>$this->silent); $this->util = new MigrateUtil(); } /** * Main control of services setup * * @author KnowledgeTree Team * @param none * @access public * @return string */ public function doStep() { $this->doRun(); $this->storeSilent(); if(!$this->inStep("services")) { return 'landing'; } if($this->next()) { return 'next'; } else if($this->previous()) { return 'previous'; } return 'landing'; } /** * Get service names * * @author KnowledgeTree Team * @param none * @access public * @return array */ public function getServices() { return $this->services; } /** * Run step * * @author KnowledgeTree Team * @param none * @access private * @return boolean */ private function doRun() { $this->checkServiceStatus(); return true; } /** * A final check to see if services are still running, * incase they switched on and turned off. * * @author KnowledgeTree Team * @param none * @access private * @return void */ private function checkServiceStatus() { $serverDetails = $this->getServices(); foreach ($serverDetails as $serviceName) { $this->temp_variables['services'][] = array('class'=>'tick', 'msg'=>$serviceName." has been shut down"); } } /** * Checks if all services have been started already, * incase the user lands on service page multiple times * * @author KnowledgeTree Team * @param none * @access public * @return boolean */ public function alreadyStopped() { $migrated = true; $serverDetails = $this->getServices(); foreach ($serverDetails as $serviceName) { $className = OS.$serviceName; $service = new $className(); $status = $this->serviceStatus($service); if(!$status) { return false; } } return true; } /** * Returns services errors * * @author KnowledgeTree Team * @access public * @params none * @return array */ public function getErrors() { return $this->error; } /** * Returns services warnings * * @author KnowledgeTree Team * @access public * @params none * @return array */ public function getWarnings() { return $this->warnings; } /** * Get the variables to be passed to the template * * @author KnowledgeTree Team * @access public * @return array */ public function getStepVars() { return $this->temp_variables; } /** * Set all silent mode varibles * * @author KnowledgeTree Team * @param none * @access private * @return void */ private function storeSilent() { $this->temp_variables['alreadyStopped'] = $this->alreadyStopped; $this->temp_variables['luceneStopped'] = $this->luceneStopped; $this->temp_variables['schedulerStopped'] = $this->schedulerStopped; $this->temp_variables['openOfficeStopped'] = $this->openOfficeStopped; $this->temp_variables['serviceCheck'] = $this->serviceCheck; } } ?>