/** * Naplní diagram */ function fillUp() { $host = new IEHost(); $hosts = $host->getListing(null, false, array('alias', 'address', 'parents', 'notifications_enabled', 'active_checks_enabled', 'passive_checks_enabled', $host->myCreateColumn, $host->myLastModifiedColumn)); foreach ($hosts as $host => $host_info) { $name = $host_info['host_name']; if (!$name) { continue; } $alias = $host_info['alias']; if (!$alias) { $alias = $host_info['host_name']; } $color = ''; if ($host_info['active_checks_enabled']) { $color = 'lightgreen'; } if ($host_info['passive_checks_enabled']) { $color = 'lightblue'; } $this->addNode($name, array('URL' => 'host.php?host_id=' . $host_info['host_id'], 'fontsize' => '10', 'color' => $color, 'height' => '0.2', 'width' => '2.1', 'fixedsize' => false, 'style' => 'filled', 'tooltip' => $host_info['address'], 'label' => $alias)); if (isset($host_info['host_name'])) { if (is_array($host_info['parents'])) { foreach ($host_info['parents'] as $parent_name) { $this->addEdge(array($host_info['host_name'] => $parent_name)); } } } } }
/** * Editor k přidávání členů skupiny * * @param IEServices $service */ public function __construct($service) { $hostsAssigned = array(); parent::__construct(); $fieldName = $this->getmyKeyColumn(); $initialContent = new EaseTWBPanel(_('Sledované hosty služby'), 'default'); $initialContent->setTagCss(array('width' => '100%')); if (is_null($service->getMyKey())) { $initialContent->addItem(_('Nejprve je potřeba uložit záznam')); } else { $serviceName = $service->getName(); $host = new IEHost(); if (EaseShared::user()->getSettingValue('admin')) { $allHosts = $host->getAllFromMySQL(NULL, array($host->myKeyColumn, $host->nameColumn, 'platform', 'register'), null, $host->nameColumn, $host->myKeyColumn); } else { $allHosts = $host->getListing(null, true, array('platform', 'register')); } if ($service->getDataValue('host_name')) { foreach ($service->getDataValue('host_name') as $hostId => $hostName) { if (isset($allHosts[$hostId])) { $hostsAssigned[$hostId] = $allHosts[$hostId]; } } } foreach ($allHosts as $hostID => $hostInfo) { if ($hostInfo['register'] != 1) { unset($allHosts[$hostID]); } if ($hostInfo['platform'] != 'generic' && $hostInfo['platform'] != $service->getDataValue('platform')) { unset($allHosts[$hostID]); } } foreach ($hostsAssigned as $hostID => $hostInfo) { unset($allHosts[$hostID]); } if (count($allHosts)) { foreach ($allHosts as $hostID => $hostInfo) { $initialContent->addItem(new EaseTWBButtonDropdown($hostInfo[$host->nameColumn], 'inverse', 'xs', array(new EaseHtmlATag('host.php?host_id=' . $hostID . '&service_id=' . $service->getId(), EaseTWBPart::GlyphIcon('wrench') . ' ' . _('Editace')), new EaseHtmlATag('?addhost=' . $hostInfo[$host->nameColumn] . '&host_id=' . $hostID . '&' . $service->getmyKeyColumn() . '=' . $service->getMyKey() . '&' . $service->nameColumn . '=' . $service->getName(), EaseTWBPart::GlyphIcon('plus') . ' ' . _('Začít sledovat'))))); } } if (count($hostsAssigned)) { $initialContent->addItem('<br/>'); foreach ($hostsAssigned as $hostID => $hostInfo) { $initialContent->addItem(new EaseTWBButtonDropdown($hostInfo[$host->nameColumn], 'success', 'xs', array(new EaseHtmlATag('?delhost=' . $hostInfo[$host->nameColumn] . '&host_id=' . $hostID . '&' . $service->getmyKeyColumn() . '=' . $service->getMyKey() . '&' . $service->nameColumn . '=' . $service->getName(), EaseTWBPart::GlyphIcon('remove') . ' ' . _('Přestat sledovat')), new EaseHtmlATag('host.php?host_id=' . $hostID . '&service_id=' . $service->getId(), EaseTWBPart::GlyphIcon('wrench') . ' ' . _('Editace'))))); } } } $this->addItem($initialContent); }
/** * Editor k přidávání členů skupiny * * @param IEHost $host */ public function __construct($host) { parent::__construct(); $fieldName = $host->getmyKeyColumn(); $initialContent = new EaseTWBPanel(_('rodiče hostu')); $addparentForm = $initialContent->addItem(new EaseTWBForm('addparent')); $addparentForm->addItem(new EaseTWBFormGroup(_('IP nebo Hostname'), new EaseHtmlInputTextTag('newparent'))); $addparentForm->addItem(new EaseHtmlInputHiddenTag($fieldName, $host->getId())); $addparentForm->addItem(new EaseTWSubmitButton(_('Přidat rodiče'), 'success')); $initialContent->setTagCss(array('width' => '100%')); if (is_null($host->getMyKey())) { $initialContent->addItem(_('Nejprve je potřeba uložit záznam')); } else { $allParents = $host->getListing(); unset($allParents[$host->getID()]); //Nenabízet sám sebe jako rodiče foreach ($allParents as $parentID => $parentInfo) { if ($parentInfo['register'] != 1) { unset($allParents[$parentID]); } } $parentsAssigned = array(); foreach ($host->getDataValue('parents') as $parentAssigned) { $parentID = EaseShared::myDbLink()->queryToValue('SELECT `' . $host->myKeyColumn . '` FROM ' . $host->myTable . ' WHERE `' . $host->nameColumn . '` = \'' . addSlashes($parentAssigned) . '\''); $parentsAssigned[$parentID][$host->nameColumn] = $parentAssigned; $parentsAssigned[$parentID][$host->myKeyColumn] = $parentID; unset($allParents[$parentID]); } if (count($allParents)) { foreach ($allParents as $parentID => $parentInfo) { $initialContent->addItem($this->parentButton($parentInfo, 'plus', $host)); } } if (count($parentsAssigned)) { $initialContent->addItem('</br>'); foreach ($parentsAssigned as $parentID => $parentInfo) { $initialContent->addItem($this->parentButton($parentInfo, 'remove', $host)); } } } $this->addItem($initialContent); }
<?php /** * Icinga Editor - titulní strana * * @package IcingaEditor * @subpackage WebUI * @author Vitex <*****@*****.**> * @copyright 2012 Vitex@hippy.cz (G) */ require_once 'includes/IEInit.php'; $oPage->onlyForLogged(); $oPage->addItem(new IEPageTop(_('Monitoring'))); $host = new IEHost(); $hosts = $host->getListing(null, false, array('config_hash', 'address', 'parents', 'icon_image', 'contacts', 'contact_groups', $host->myCreateColumn, $host->myLastModifiedColumn)); if (count($hosts)) { $oPage->container->addItem(new IEConfigurationsOverview($hosts)); } else { $oPage->container->addItem(new EaseTWBLinkButton('wizard-host.php', _('Založte si první sledovaný host'), 'success')); $oUser->addStatusMessage(_('Zatím není zaregistrovaný žádný sledovaný host'), 'warning'); } $oPage->addItem(new IEPageBottom()); $oPage->draw();
/** * Add Groups/Hosts into menu * * @param IEBootstrapMenu $nav */ private function groupsHostsMenu($nav) { EaseShared::webPage()->addCss('.dropdown-menu { overflow-y: auto } '); EaseShared::webPage()->addJavaScript("\$('.dropdown-menu').css('max-height',\$(window).height()-100);", null, true); $user = EaseShared::user(); $host = new IEHost(); $hosts = $host->getListing(null, null, array('icon_image', 'platform')); $hostsNotInGroup = array(); $hnames = array(); foreach ($hosts as $hID => $hInfo) { $hnames[$hInfo['host_name']] =& $hosts[$hID]; $hostsNotInGroup[$hInfo['host_name']] = $hInfo; } $topItems = array('wizard-host.php' => EaseTWBPart::GlyphIcon('forward') . ' ' . _('Průvodce založením hostu')); $topItems['wizard-active-host.php'] = EaseTWBPart::GlyphIcon('star') . ' ' . _('Nový aktivní Host'); $hostgroup = new IEHostgroup(); $topItems['hostgroup.php'] = EaseTWBPart::GlyphIcon('plus') . ' ' . _('Nová skupina hostů'); /* , 'exthostinfo.php' => _('Rozšířené informace hostů'), 'hostdependency.php' => _('Závislosti hostů'), 'hostescalation.php' => _('Eskalace hostů') */ $pocHostgroup = $hostgroup->getMyRecordsCount(); $hostGroupMenuItem = array(); if ($pocHostgroup) { //$hostgroups = $hostgroup->myDbLink->queryToArray('SELECT ' . $hostgroup->getmyKeyColumn() . ', hostgroup_name, DatSave FROM ' . $hostgroup->myTable . ' WHERE user_id=' . $user->getUserID(), 'hostgroup_id'); $hostgroups = $hostgroup->getListing(null, null, array('members')); foreach ($hostgroups as $cID => $hgInfo) { $hostGroupMenuItem['hostgroup.php?hostgroup_id=' . $hgInfo['hostgroup_id']] = EaseTWBPart::GlyphIcon('cloud') . ' ' . $hgInfo['hostgroup_name']; if (count($hgInfo['members'])) { foreach ($hgInfo['members'] as $hgMember) { if ($hgMember == '*') { $image = null; } else { $hInfo =& $hnames[$hgMember]; $image = $hInfo['icon_image']; unset($hostsNotInGroup[$hgMember]); } if (!$image) { $image = 'unknown.gif'; } if (isset($hInfo) && !is_null($hInfo)) { $hostGroupMenuItem['host.php?host_id=' . $hInfo['host_id']] = ' ' . new IEHostIcon($hInfo) . ' ' . $hInfo['host_name'] . ' ' . new IEPlatformIcon($hInfo['platform']); } } } } $topItems['hostgroups.php'] = EaseTWBPart::GlyphIcon('list-alt') . ' ' . _('Přehled skupin hostů'); } else { if (count($hostGroupMenuItem)) { $hostGroupMenuItem[] = ''; } } if (count($hostsNotInGroup)) { foreach ($hostsNotInGroup as $menuHost) { $hostGroupMenuItem['host.php?host_id=' . $menuHost['host_id']] = ' ' . new IEHostIcon($menuHost) . ' ' . $menuHost['host_name'] . ' ' . new IEPlatformIcon($menuHost['platform']); } } $topItems['hosts.php'] = EaseTWBPart::GlyphIcon('list') . ' ' . _('Detailní přehled hostů'); $topItems['map.php'] = EaseTWBPart::GlyphIcon('globe') . ' ' . _('Topologie'); $nav->addDropDownMenu(_('Hosti'), array_merge($topItems, array('' => ''), $hostGroupMenuItem)); }
/** * Přehodí * @param type $swapToID * @return boolean */ public function swapTo($swapToID) { $newService = new IEService($swapToID); $thisName = $this->getName(); $hostsOK = array(); $hostsErr = array(); $hostsAssigned = array(); $host = new IEHost(); if (EaseShared::user()->getSettingValue('admin')) { $allHosts = $host->getAllFromMySQL(NULL, array($host->myKeyColumn, $host->nameColumn, 'platform', 'register'), null, $host->nameColumn, $host->myKeyColumn); } else { $allHosts = $host->getListing(null, true, array('platform', 'register')); } $hosts = $this->getDataValue('host_name'); foreach ($hosts as $hostId => $hostName) { if (isset($allHosts[$hostId])) { $hostsAssigned[$hostId] = $allHosts[$hostId]; } } foreach ($hostsAssigned as $host_id => $hostAssigned) { if ($this->delMember('host_name', $host_id, $hostAssigned['host_name']) && $newService->addMember('host_name', $host_id, $hostAssigned['host_name'])) { $hostsOK[] = $hostAssigned['host_name']; } else { $hostsErr[] = $hostAssigned['host_name']; } } if ($this->saveToMySQL() && $newService->saveToMySQL() && count($hostsOK)) { $this->addStatusMessage(sprintf(_('%s byl přesunut z %s/%s do %s'), implode(',', $hostsOK), $this->keyword, $this->getName(), $newService->getName()), 'success'); return true; } else { $this->addStatusMessage(sprintf(_(' %s nebyl přesunut z %s/%s do %s'), implode(',', $hostsErr), $this->keyword, $this->getName(), $newService->getName()), 'warning'); return false; } }
} if ($oPage->getRequestValue('service')) { EaseShared::db()->exeQuery('DELETE FROM `service` WHERE register=1'); $oPage->addStatusMessage(_('Služby odstraněny'), 'success'); } if ($oPage->getRequestValue('servicegroup')) { EaseShared::db()->exeQuery('TRUNCATE TABLE `servicegroup`'); $oPage->addStatusMessage(_('Skupiny služeb byly odstraněny'), 'success'); } if ($oPage->getRequestValue('desync')) { EaseShared::db()->exeQuery('UPDATE `host` SET config_hash = 0'); $oPage->addStatusMessage(_('Stavy senzorů byly rozhasheny'), 'success'); } if ($oPage->getRequestValue('sync')) { $host = new IEHost(); $allHosts = $host->getListing(); foreach ($allHosts as $hostId => $hostInfo) { $host->dataReset(); $host->loadFromMySQL((int) $hostId); $host->setDataValue('config_hash', $host->getConfigHash()); $host->saveToMySQL(); } $oPage->addStatusMessage(sprintf(_('Stavy %s senzorů byly nastaveny'), count($allHosts)), 'success'); } } $oPage->addItem(new IEPageTop(_('Reset objekt'))); $resetForm = new EaseTWBForm('reset'); $resetForm->addInput(new IEYesNoSwitch('host', FALSE), _('Hosti'), null, _('Smaže hosty, ale nechá předlohy')); $resetForm->addInput(new IEYesNoSwitch('hostgroup', FALSE), _('Skupiny hostů'), null, _('Smaže skupiny hostů')); $resetForm->addInput(new IEYesNoSwitch('contact', FALSE), _('Kontakty'), null, _('Smaže kontakty')); $resetForm->addInput(new IEYesNoSwitch('contactgroup', FALSE), _('Skupiny kontaktů'), null, _('Smaže skupiny kontaktů'));