/** * Undeploys a Module in the Module server. * * @param string $location Module name. * @return boolean * @since 5.1 */ public function undeploy($location) { // Checks if the specified Module exists. $context = \Innomatic\Module\Server\ModuleServerContext::instance('\\Innomatic\\Module\\Server\\ModuleServerContext'); if (!is_dir($context->getHome() . 'core/modules' . DIRECTORY_SEPARATOR . $location)) { throw new \Innomatic\Module\ModuleException('No such Module'); } // Executes Module undeploy hooked actions. $auth = \Innomatic\Module\Server\ModuleServerAuthenticator::instance('ModuleServerAuthenticator'); $module = \Innomatic\Module\ModuleFactory::getModule(new ModuleLocator('module://*****:*****@/' . $location)); $module->undeploy(); // Removes Module. \Innomatic\Io\Filesystem\DirectoryUtils::unlinkTree($context->getHome() . 'core/modules' . DIRECTORY_SEPARATOR . $location); // Logs undeployment. if ($context->getConfig()->getKey('log_deployer_events') == 1 or $context->getConfig()->useDefaults()) { $logger = new \Innomatic\Module\Server\ModuleServerLogger($context->getHome() . 'core/log/module-deployer.log'); $logger->logEvent($location . ' undeployed'); } return true; }
/** * Parses Module registry configuration from an XML file downloaded from a remote server; * then stores it in a structured array. * * @param string $host the host from which the registry has to be loaded * @param string $port the port on the remote host * @since 5.1 * @return void */ private function downloadRemoteRegistry($address, $port) { print "downloadRemoteRegistry: inizio\r\n"; $result = ''; try { $auth = \Innomatic\Module\Server\ModuleServerAuthenticator::instance('ModuleServerAuthenticator'); $socket = new \Innomatic\Net\Socket\Socket(); $socket->connect($address, $port); $request = 'GET_REGISTRY Module/1.1' . "\r\n"; $request .= 'User: admin' . "\r\n"; $request .= 'Password: '******'admin') . "\r\n"; print "Request content:\r\n" . $request . "\n"; $socket->write($request); $result = trim($socket->readAll()); print "Result content:\r\n" . $result . "\n"; $socket->disconnect(); } catch (\Innomatic\Net\Socket\SocketException $e) { $result = "Module: services-extension cannot download up-to-date registry from {$address}:{$port}"; } $context = \Innomatic\Module\Server\ModuleServerContext::instance('\\Innomatic\\Module\\Server\\ModuleServerContext'); $file_registry = fopen($context->getHome() . 'core/conf/modules-netregistry-remote.xml', 'x'); if ($file_registry == false) { unlink($context->getHome() . 'core/conf/modules-netregistry-remote.xml'); $file_registry = fopen($context->getHome() . 'core/conf/modules-netregistry-remote.xml', 'x'); } fwrite($file_registry, $result); fclose($file_registry); }