Пример #1
0
 /**
  * Umožňuje měnit parametry služeb
  *
  * @param IEService $service
  * @param IEHost    $host    ObjektHostu
  */
 public function __construct($service, $host)
 {
     parent::__construct();
     $this->service = $service;
     $this->host = $host;
     $this->command = new IECommand();
     $this->command->setmyKeyColumn($this->command->nameColumn);
     $checkLocal = $this->service->getDataValue('check_command');
     //        $checkRemote = $this->service->getDataValue('check_command-remote');
     if (isset($checkLocal)) {
         $this->command->loadFromMySQL($checkLocal);
     }
     $configurator = $this->service->getDataValue('configurator');
     if ($configurator) {
         $module = 'modules/' . $configurator . '.inc.php';
         if (file_exists($module)) {
             require_once $module;
             $this->configurator = $this->addItem(new $configurator($this));
         } else {
             $this->addStatusMessage(sprintf(_('Modul %s nebyl nalezen'), $module), 'error');
         }
     } else {
         $this->configurator = $this->addItem(new IEServiceConfigurator($this));
     }
 }
 function finalize()
 {
     parent::finalize();
     $platform = $this->service->getDataValue('platform');
     $this->addItem(new EaseTWBFormGroup(_('Jméno'), new EaseHtmlInputTextTag('service_name', $this->service->getName()), $this->service->getName(), _('Název služby testu')));
     $addNewItem = new EaseHtmlInputSearchTag('check_command-remote', $this->service->getDataValue('check_command-remote'), array('class' => 'search-input', 'title' => _('vzdálený test')));
     $addNewItem->setDataSource('jsoncommand.php?maxRows=20&platform=' . $platform);
     $this->addItem(new EaseTWBFormGroup(_('Vzdálený Příkaz'), $addNewItem, _('Hledej příkazy pro: ') . $platform, _('Příkaz vykonávaný vzdáleným senzorem NRPE/NSCP.exe')));
     $this->addItem(new EaseTWBFormGroup(_('Parametry'), new EaseHtmlInputTextTag('check_command-params', $this->service->getDataValue('check_command-params')), $this->service->getDataValue('command-params'), _('Parametry vzdáleného příkazu. (Pro nrpe oddělované vykřičníkem.)')));
     $this->addItem(new EaseTWBFormGroup(_('Platforma'), new IEPlatformSelector('platform', null, $platform), _('Platforma sledovaného stroje')));
     $this->addItem(new EaseTWSubmitButton(_('Založit') . '&nbsp' . EaseTWBPart::GlyphIcon('forward'), 'success'));
     $serviceId = $this->service->getId();
     if ($serviceId) {
         $this->addItem(new EaseHtmlInputHiddenTag('service_id', $serviceId));
     }
 }
 /**
  * Editor k přidávání členů skupiny
  *
  * @param IEService|IEHost $holder
  */
 public function __construct($holder)
 {
     $contactsAssigned = array();
     parent::__construct();
     $fieldName = $this->getmyKeyColumn();
     $initialContent = new EaseTWBPanel(_('Cíle notifikací'));
     $initialContent->setTagCss(array('width' => '100%'));
     if (is_null($holder->getMyKey())) {
         $initialContent->addItem(_('Nejprve je potřeba uložit záznam'));
     } else {
         $serviceName = $holder->getName();
         $contact = new IEContact();
         $allContacts = $contact->getListing(null, true, array('alias', 'parent_id'));
         foreach ($holder->getDataValue('contacts') as $contactId => $contactName) {
             if (isset($allContacts[$contactId])) {
                 $contactsAssigned[$contactId] = $allContacts[$contactId];
             }
         }
         foreach ($allContacts as $contactID => $contactInfo) {
             if ($contactInfo['register'] != 1) {
                 unset($allContacts[$contactID]);
             }
             if (!$contactInfo['parent_id']) {
                 unset($allContacts[$contactID]);
             }
         }
         foreach ($contactsAssigned as $contactID => $contactInfo) {
             unset($allContacts[$contactID]);
         }
         if (count($allContacts)) {
             foreach ($allContacts as $contactID => $contactInfo) {
                 $initialContent->addItem(new EaseTWBButtonDropdown($contactInfo[$contact->nameColumn], 'inverse', 'xs', array(new EaseHtmlATag('contacttweak.php?contact_id=' . $contactInfo['parent_id'] . '&service_id=' . $holder->getId(), EaseTWBPart::GlyphIcon('wrench') . ' ' . _('Editace')), new EaseHtmlATag('?addcontact=' . $contactInfo[$contact->nameColumn] . '&contact_id=' . $contactID . '&' . $holder->getmyKeyColumn() . '=' . $holder->getMyKey() . '&' . $holder->nameColumn . '=' . $holder->getName(), EaseTWBPart::GlyphIcon('plus') . ' ' . _('Začít obesílat')))));
             }
         }
         if (count($contactsAssigned)) {
             $initialContent->addItem('<br/>');
             foreach ($contactsAssigned as $contactID => $contactInfo) {
                 $initialContent->addItem(new EaseTWBButtonDropdown($contactInfo[$contact->nameColumn], 'success', 'xs', array(new EaseHtmlATag('?delcontact=' . $contactInfo[$contact->nameColumn] . '&amp;contact_id=' . $contactID . '&amp;' . $holder->getmyKeyColumn() . '=' . $holder->getMyKey() . '&amp;' . $holder->nameColumn . '=' . $holder->getName(), EaseTWBPart::GlyphIcon('remove') . ' ' . _('Přestat obesílat')), new EaseHtmlATag('contacttweak.php?contact_id=' . $contactInfo['parent_id'] . '&amp;service_id=' . $holder->getId(), EaseTWBPart::GlyphIcon('wrench') . ' ' . _('Editace')))));
             }
         }
     }
     $this->addItem($initialContent);
 }
Пример #4
0
<?php

/**
 * Icinga Editor služby
 *
 * @package    IcingaEditor
 * @subpackage WebUI
 * @author     Vitex <*****@*****.**>
 * @copyright  2012 Vitex@hippy.cz (G)
 */
require_once 'includes/IEInit.php';
require_once 'classes/IEService.php';
$service = new IEService($oPage->getRequestValue('service_id', 'int'));
$oPage->addItem(new IEPageTop(_('Migrace služby') . ' ' . $service->getName()));
$oPage->addPageColumns();
$oPage->columnII->addItem(new EaseHtmlH3Tag(array(new IEPlatformIcon($service->getDataValue('platform')), $service->getName())));
$form = $oPage->columnII->addItem(new EaseTWBForm('Service', 'importer.php?class=service', 'POST'));
$form->setTagID($form->getTagName());
if (!is_null($service->getMyKey())) {
    $form->addItem(new EaseHtmlInputHiddenTag($service->getMyKeyColumn(), $service->getMyKey()));
}
$form->addItem('<br>');
foreach ($service->data as $key => $value) {
    if (is_null($value)) {
        continue;
    }
    if (is_array($value)) {
        $form->addItem(new EaseHtmlTextareaTag($key, serialize($value)));
    } else {
        $form->addItem(new EaseHtmlInputTextTag($key, $value));
    }
Пример #5
0
    $service->saveToMySql();
}
$delcnt = $oPage->getGetValue('delcontact');
if ($delcnt) {
    $service->delMember('contacts', $oPage->getGetValue('contact_id', 'int'), $delcnt);
    $service->saveToMySql();
}
$addcnt = $oPage->getGetValue('addcontact');
if ($addcnt) {
    $service->addMember('contacts', $oPage->getGetValue('contact_id', 'int'), $addcnt);
    $service->saveToMySql();
}
$oPage->addItem(new IEPageTop(_('Editace služby') . ' ' . $service->getName()));
$oPage->addPageColumns();
$serviceTweak = new IEServiceTweaker($service, $host);
$serviceName = $service->getDataValue('display_name');
if (!$serviceName) {
    $serviceName = $service->getName();
}
$oPage->columnII->addItem(new EaseHtmlH3Tag(array(new IEPlatformIcon($service->getDataValue('platform')), $serviceName)));
$oPage->columnII->addItem($serviceTweak);
$oPage->columnIII->addItem($service->deleteButton($service->getName(), 'host_id=' . $host->getId()));
$oPage->columnIII->addItem(new EaseTWBLinkButton('service.php?service_id=' . $service->getID(), _('Editace služby') . ' ' . $serviceName));
$renameForm = new EaseTWBForm('Rename', '?action=rename&amp;host_id=' . $host->getID() . '&service_id=' . $service->getId());
$renameForm->addItem(new EaseHtmlInputTextTag('newname'), $service->getName(), array('class' => 'form-control'));
$renameForm->addItem(new EaseTWSubmitButton(_('Přejmenovat'), 'success'));
$oPage->columnIII->addItem(new EaseTWBPanel(_('Přejmenování'), 'info', $renameForm));
$oPage->columnIII->addItem($service->cloneButton());
$oPage->columnI->addItem(new IEHostSelector($service));
$oPage->columnI->addItem(new IEContactSelector($service));
$oPage->columnIII->addItem(new EaseTWBLinkButton('host.php?host_id=' . $host->getId(), array(_('Zpět na') . ' ', $host, ' ', $host->getName()), 'default'));
        $data['check_command-remote'] = $remoteCmd;
    }
    if (isset($remoteCmdParam)) {
        $data['check_command-params'] = $remoteCmdParam;
    }
    $service->setData($data);
    if ($service->saveToMysql()) {
        /*
         $serviceGroup = new IEServiceGroup;
         if ($serviceGroup->loadDefault()) {
         $serviceGroup->setDataValue($serviceGroup->nameColumn, EaseShared::user()->getUserLogin());
         $serviceGroup->addMember('members', $service->getId(), $service->getName());
         $serviceGroup->saveToMySQL();
         }
        */
        if (strlen(trim($service->getDataValue('check_command-remote')))) {
            $oPage->addStatusMessage(_('Služba byla založena'), 'success');
            $oPage->redirect('service.php?service_id=' . $service->getId());
            exit;
        } else {
            $oPage->addStatusMessage(_('Není zvolen vzdálený příkaz testu'), 'warning');
        }
    }
} else {
    if ($oPage->isPosted()) {
        $oPage->addStatusMessage(_('Prosím zastejte název služby'), 'warning');
    }
}
$oPage->addItem(new IEPageTop(_('Průvodce založením pasivně sledované služby')));
$oPage->addPageColumns();
$oPage->columnI->addItem(new EaseTWBPanel(_('Pasivní checky'), 'info', _('senzor (nrpe/nscp.exe) běží na vzdáleném hostu, který je z monitorovacího serveru nedostupný (např. za NATem) ale má přístup do internetu a tak výsledky nadefinovaných testů zasílá protokolem NSCA na monitorovací server, který je přímá a zpracovává jako by se jednalo o výsledky aktivních testů.')));
 /**
  * Uloží položky
  *
  * @param array $request
  */
 public static function saveMembers($request)
 {
     $service = new IEService();
     if (isset($request[$service->myKeyColumn])) {
         if ($service->loadFromMySQL((int) $request[$service->myKeyColumn])) {
             if (isset($request['addservice']) || isset($request['delservice'])) {
                 if (isset($request['addservice'])) {
                     $service->addMember('host_name', $request['host_id'], $request['host_name']);
                     if ($service->saveToMySQL()) {
                         $service->addStatusMessage(sprintf(_('položka %s byla přidána'), $request['addservice']), 'success');
                         if ($service->getDataValue('autocfg') == '1') {
                             $service->addStatusMessage(sprintf(_('Službu %s je nutné nejprve zkonfigurovat'), $request['addservice']), 'warning');
                             EaseShared::webPage()->redirect('servicetweak.php?host_id=' . $request['host_id'] . '&service_id=' . $request[$service->myKeyColumn]);
                             exit;
                         }
                     } else {
                         $service->addStatusMessage(sprintf(_('položka %s nebyla přidána'), $request['addservice']), 'warning');
                     }
                 }
                 if (isset($request['delservice'])) {
                     $service->delMember('host_name', $request['host_id'], $request['host_name']);
                     if ($service->saveToMySQL()) {
                         $service->addStatusMessage(sprintf(_('položka %s byla odebrána'), $request['delservice']), 'success');
                     } else {
                         $service->addStatusMessage(sprintf(_('položka %s nebyla odebrána'), $request['delservice']), 'warning');
                     }
                 }
             }
         }
     }
 }
Пример #8
0
 function fixContactIDs()
 {
     $contactsOK = array();
     $contactsErr = array();
     $contact = new IEContact();
     $service = new IEService();
     $services = $service->getColumnsFromMySQL(array($service->myKeyColumn));
     foreach ($services as $serviceId => $serviceInfo) {
         $serviceId = intval(current($serviceInfo));
         $service->loadFromMySQL($serviceId);
         $contactNames = $service->getDataValue('contacts');
         if ($contactNames) {
             foreach ($contactNames as $contactId => $contactName) {
                 $contactFound = $contact->loadFromMySQL($contactName);
                 if ($contactId != $contact->getId()) {
                     if ($service->delMember('contacts', $contactId, $contactName) && $service->addMember('contacts', $contact->getId(), $contactName)) {
                         $contactsOK[] = $contactName;
                     } else {
                         $contactsErr[] = $contactName;
                     }
                 }
             }
         }
         if (count($contactsOK)) {
             if ($service->saveToMySQL()) {
                 $this->addItemSmart(sprintf(_('<strong>%s</strong> : %s'), $service->getName(), implode(',', $contactsOK)), array('class' => 'list-group-item'));
                 $this->addStatusMessage(sprintf(_('%s : %s'), $service->getName(), implode(',', $contactsOK)), 'success');
                 $contactsOK = array();
             }
         }
     }
     $host = new IEHost();
     $hosts = $host->getColumnsFromMySQL(array($host->myKeyColumn));
     foreach ($hosts as $hostInfo) {
         $hostId = intval(current($hostInfo));
         $host->loadFromMySQL($hostId);
         $contactNames = $host->getDataValue('contacts');
         if ($contactNames) {
             foreach ($contactNames as $contactId => $contactName) {
                 $contactFound = $contact->loadFromMySQL($contactName);
                 if ($contactId != $contact->getId()) {
                     if ($host->delMember('contacts', $contactId, $contactName) && $host->addMember('contacts', $contact->getId(), $contactName)) {
                         $contactsOK[] = $contactName;
                     } else {
                         $contactsErr[] = $contactName;
                     }
                 }
             }
         }
         if (count($contactsOK)) {
             if ($host->saveToMySQL()) {
                 $this->addItemSmart(sprintf(_('<strong>%s</strong> : %s'), $host->getName(), implode(',', $contactsOK)), array('class' => 'list-group-item'));
                 $this->addStatusMessage(sprintf(_('%s : %s'), $host->getName(), implode(',', $contactsOK)), 'success');
                 $contactsOK = array();
             }
         }
     }
 }
Пример #9
0
         } else {
             $oUser->addStatusMessage(_('Host nebyl přejmenován'), 'success');
         }
     }
     break;
 case 'clone':
     $service->unsetDataValue($service->getmyKeyColumn());
     $service->setDataValue($service->nameColumn, $service->getName() . ' ' . _('Cloned'));
     if ($service->saveToMySQL()) {
         $oUser->addStatusMessage(_('Služba byla zklonovana'), 'success');
     } else {
         $oUser->addStatusMessage(_('Služba nebyla zklonovana'), 'error');
     }
     break;
 case 'system':
     $hosts = $service->getDataValue('host_name');
     foreach ($hosts as $host_id => $host_name) {
         $host = new IEHost($host_id);
         $newService = new IEService($service->getId());
         $newService->setDataValue($service->userColumn, 0);
         $newService->setDataValue('public', 0);
         if ($newService->fork($host, $host->getDataValue($host->userColumn))) {
             $oUser->addStatusMessage(sprintf(_('Služba %s byla odvozena'), $newService->getName()), 'success');
         } else {
             $oUser->addStatusMessage(_('Služba nebyla odvozena'), 'error');
         }
     }
     $service->loadFromMySQL($service->getId());
     break;
 case 'swap':
     $service->swapTo($oPage->getRequestValue('new_service_id', 'int'));