Example #1
0
 /**
  * Фабрикует класс, обрабатывающий сообщение
  * @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);
     }));
 }
Example #4
0
 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));
         }
     }
 }