/** * Фабрикует класс, обрабатывающий сообщение * @param array $m Сообщение на вход * @return object Класс, ответственный за данный тип сообщения */ public static function parseInput($m) { if (empty($m['message_id'])) { return NULL; } if (!empty($m['text'])) { $command = Command::create($m); return $command ? $command : TextMessage::create($m); } elseif (!empty($m['location'])) { return Location::create($m); } }
public function run() { DB::table('commands')->delete(); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'notify-host-by-email', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '/usr/bin/printf "%b" "***** Nagios *****\\n\\nNotification Type: $NOTIFICATIONTYPE$\\nHost: $HOSTNAME$\\nState: $HOSTSTATE$\\nAddress: $HOSTADDRESS$\\nInfo: $HOSTOUTPUT$\\n\\nDate/Time: $LONGDATETIME$\\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'notify-service-by-email', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '/usr/bin/printf "%b" "***** Nagios *****\\n\\nNotification Type: $NOTIFICATIONTYPE$\\n\\nService: $SERVICEDESC$\\nHost: $HOSTALIAS$\\nAddress: $HOSTADDRESS$\\nState: $SERVICESTATE$\\n\\nDate/Time: $LONGDATETIME$\\n\\nAdditional Info:\\n\\n$SERVICEOUTPUT$\\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check-host-alive', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_disk', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_load', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_load -w $ARG1$ -c $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_procs', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_users', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_users -w $ARG1$ -c $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_swap', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_swap -w $ARG1$ -c $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_local_mrtgtraf', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_ftp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_hpjd', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_snmp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_http', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_http -I $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_ssh', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_ssh $ARG1$ $HOSTADDRESS$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_dhcp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_dhcp $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_ping', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_pop', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_pop -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_imap', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_imap -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_smtp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_tcp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_udp', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'check_nt', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'process-host-perfdata', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '/usr/bin/printf "%b" "$LASTHOSTCHECK$\\t$HOSTNAME$\\t$HOSTSTATE$\\t$HOSTATTEMPT$\\t$HOSTSTATETYPE$\\t$HOSTEXECUTIONTIME$\\t$HOSTOUTPUT$\\t$HOSTPERFDATA$\\n" >> /var/log/nagios/host-perfdata.out']); $uuid = UUID::v4(); Object::create(['uuid' => $uuid, 'object_type' => '12', 'first_name' => 'process-service-perfdata', 'second_name' => '', 'is_active' => '1']); Command::create(['object_uuid' => $uuid, 'command_line' => '/usr/bin/printf "%b" "$LASTSERVICECHECK$\\t$HOSTNAME$\\t$SERVICEDESC$\\t$SERVICESTATE$\\t$SERVICEATTEMPT$\\t$SERVICESTATETYPE$\\t$SERVICEEXECUTIONTIME$\\t$SERVICELATENCY$\\t$SERVICEOUTPUT$\\t$SERVICEPERFDATA$\\n" >> /var/log/nagios/service-perfdata.out']); }
public static function register($panel, $group = 'Doctrine') { $panel->addCommand($group, Command::create('Create Schema', function ($container) { $em = $container->entityManager; $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); $metadatas = $em->getMetadataFactory()->getAllMetadata(); $schemaTool->createSchema($metadatas); })); $panel->addCommand($group, Command::create('Update Schema', function ($container) { $em = $container->entityManager; $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); $metadatas = $em->getMetadataFactory()->getAllMetadata(); $schemaTool->updateSchema($metadatas); })); $panel->addCommand($group, Command::create('Drop Schema', function ($container) { $em = $container->entityManager; $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); $metadatas = $em->getMetadataFactory()->getAllMetadata(); $schemaTool->dropSchema($metadatas); })); }
protected function display() { if (Tools::isConnectedUser()) { if (0 == $this->teamid || $this->session_user->isTeamCustomer($this->teamid)) { $this->smartyHelper->assign('isEditGranted', FALSE); } else { // only managers can edit the SC $isManager = $this->session_user->isTeamManager($this->teamid); if (!$isManager) { return; } $this->smartyHelper->assign('isEditGranted', true); // -------- CHECK -------- // this will check all existing commands (from all teams !) and remove issues that have been deleted from mantis Command::checkCommands(); // use the cmdid set in the form, if not defined (first page call) use session cmdid $cmdid = 0; if (isset($_POST['cmdid'])) { $cmdid = $_POST['cmdid']; $_SESSION['cmdid'] = $cmdid; } else { if (isset($_GET['cmdid'])) { $cmdid = $_GET['cmdid']; $_SESSION['cmdid'] = $cmdid; } else { if (isset($_SESSION['cmdid'])) { $cmdid = $_SESSION['cmdid']; } } } // use the commandsetid set in the form, if not defined (first page call) use session commandsetid // Note: It is used for createEnv but will be overridden by the displayed command's commandsetid. $commandsetid = 0; if (isset($_POST['commandsetid'])) { $commandsetid = $_POST['commandsetid']; $_SESSION['commandsetid'] = $commandsetid; } else { if (isset($_SESSION['commandsetid'])) { $commandsetid = $_SESSION['commandsetid']; } } $action = isset($_POST['action']) ? $_POST['action'] : ''; if (0 == $cmdid) { // -------- CREATE CMD ------- if ("createCmd" == $action) { //$this->teamid = Tools::getSecurePOSTIntValue('teamid'); //$_SESSION['teamid'] = $this->teamid; if (self::$logger->isDebugEnabled()) { self::$logger->debug("create new Command for team {$this->teamid}<br>"); } $cmdName = Tools::getSecurePOSTStringValue('cmdName'); // TODO UGLY WORKAROUND: command name cannot contain commas (,) because it is used as field separator in FilterManager $cmdName = str_replace(",", ' ', $cmdName); try { $cmdid = Command::create($cmdName, $this->teamid); $this->smartyHelper->assign('commandid', $cmdid); $cmd = CommandCache::getInstance()->getCommand($cmdid); } catch (Exception $e) { // Smartify echo "Can't create the command because the command name is already used"; } } // ------ Display Empty Command Form // Note: this will be overridden by the 'update' section if the 'createCmd' action has been called. $this->smartyHelper->assign('cmdInfoFormBtText', T_('Create')); $this->smartyHelper->assign('cmdInfoFormAction', 'createCmd'); $this->smartyHelper->assign('cmdStateList', CommandTools::getCommandStateList()); $this->smartyHelper->assign('commandsetid', $commandsetid); $this->smartyHelper->assign('commandsets', CommandSetTools::getCommandSets($this->teamid, $commandsetid)); } if (0 != $cmdid) { // -------- UPDATE CMD ------- $cmd = CommandCache::getInstance()->getCommand($cmdid); // Actions if ("addCmdIssue" == $action) { $bugid = Tools::getSecurePOSTIntValue('bugid'); if (self::$logger->isDebugEnabled()) { self::$logger->debug("add Issue {$bugid} on Command {$cmdid} team {$this->teamid}"); } $cmd->addIssue($bugid, true); // DBonly } else { if ("addCmdIssueList" == $action) { $bugid_list = $_POST['bugid_list']; if (self::$logger->isDebugEnabled()) { self::$logger->debug("add Issues ({$bugid_list}) on Command {$cmdid} team {$this->teamid}"); } $bugids = explode(',', $bugid_list); //$cmd->addIssueList($bugids, true); // DBonly foreach ($bugids as $id) { if (is_numeric(trim($id))) { $cmd->addIssue(intval($id), true); // DBonly } else { self::$logger->error('Attempt to set non_numeric value (' . $id . ')'); die("<span style='color:red'>ERROR: Please contact your CodevTT administrator</span>"); } } } else { if ("removeCmdIssue" == $action) { $cmd->removeIssue($_POST['bugid']); } else { if ("addToCmdSet" == $action) { $commandsetid = $_POST['commandsetid']; if (self::$logger->isDebugEnabled()) { self::$logger->debug("add Command {$cmdid} to CommandSet {$commandsetid}"); } $cmdset = CommandSetCache::getInstance()->getCommandSet($commandsetid); $cmdset->addCommand($cmdid, Command::type_general); } else { if ("removeFromCmdSet" == $action) { $commandsetid = $_POST['commandsetid']; if (self::$logger->isDebugEnabled()) { self::$logger->debug("remove Command {$cmdid} from CommandSet {$commandsetid}"); } $cmdset = CommandSetCache::getInstance()->getCommandSet($commandsetid); $cmdset->removeCommand($cmdid); } else { if ("updateCmdInfo" == $action) { $this->updateCmdInfo($cmd); header('Location:command_info.php'); } else { if ("deleteCommand" == $action) { if (self::$logger->isDebugEnabled()) { self::$logger->debug("delete Command {$cmdid}"); } Command::delete($cmdid); unset($_SESSION['cmdid']); header('Location:command_info.php'); } else { if ("addProvision" == $action) { # TODO check injections $prov_date = $_POST['date']; $prov_type = $_POST['type']; $prov_budget = $_POST['budget']; $prov_budgetDays = $_POST['budgetDays']; $prov_averageDailyRate = $_POST['averageDailyRate']; $prov_summary = $_POST['summary']; $isInCheckBudget = 0 == Tools::getSecurePOSTIntValue("isInCheckBudget") ? false : true; $timestamp = Tools::date2timestamp($prov_date); CommandProvision::create($cmd->getId(), $timestamp, $prov_type, $prov_summary, $prov_budgetDays, $prov_budget, $prov_averageDailyRate, $isInCheckBudget); } else { if ("deleteProvision" == $action) { # TODO check injections $provid = $_POST['provid']; $cmd->deleteProvision($provid); } } } } } } } } } // Display Command $this->smartyHelper->assign('commandid', $cmdid); $this->smartyHelper->assign('cmdInfoFormBtText', T_('Save')); $this->smartyHelper->assign('cmdInfoFormAction', 'updateCmdInfo'); $this->smartyHelper->assign('isAddIssueForm', true); $parentCmdSets = $this->getParentCmdSetCandidates($this->session_user); $this->smartyHelper->assign('parentCmdSetCandidates', $parentCmdSets); $this->smartyHelper->assign('isAddCmdSetForm', true); $isManager = $this->session_user->isTeamManager($cmd->getTeamid()); CommandTools::displayCommand($this->smartyHelper, $cmd, $isManager); $this->smartyHelper->assign('cmdProvisionType', SmartyTools::getSmartyArray(CommandProvision::$provisionNames, 1)); // WBS $this->smartyHelper->assign('wbsRootId', $cmd->getWbsid()); // multiple selection dialogBox $availableIssueList = $this->getChildIssuesCandidates($this->teamid); $this->smartyHelper->assign('availableIssueList', $availableIssueList); $this->smartyHelper->assign('sendSelectIssuesActionName', "addCmdIssueList"); $this->smartyHelper->assign('selectIssuesBoxTitle', T_('Add tasks to Command') . ' \'' . $cmd->getName() . '\''); $this->smartyHelper->assign('openDialogLabel', T_("Add multiple tasks")); $this->smartyHelper->assign('selectIssuesDoneBtText', T_("Add selection")); $this->smartyHelper->assign('selectIssuesBoxDesc', T_("Note: Tasks already assigned to a Command are not displayed.")); $this->smartyHelper->assign('selectIssuesConfirmMsg', T_("Add the selected issues to the Command ?")); } // you can create a command OR move cmd only to managed teams $mTeamList = $this->session_user->getManagedTeamList(); $this->smartyHelper->assign('grantedTeams', SmartyTools::getSmartyArray($mTeamList, $this->teamid)); } } }