diff --git a/.puppet/profiles/icingaweb2_dev/files/modules/monitoring/backends.ini b/.puppet/profiles/icingaweb2_dev/files/modules/monitoring/backends.ini index 55f8e3115..dd446be20 100644 --- a/.puppet/profiles/icingaweb2_dev/files/modules/monitoring/backends.ini +++ b/.puppet/profiles/icingaweb2_dev/files/modules/monitoring/backends.ini @@ -5,8 +5,3 @@ resource = ido-mysql [ido-pgsql] type = ido resource = ido-pgsql - -[livestatus] -disabled = 1 -type = livestatus -resource = livestatus diff --git a/application/forms/Config/Resource/LivestatusResourceForm.php b/application/forms/Config/Resource/LivestatusResourceForm.php deleted file mode 100644 index 9fc975f09..000000000 --- a/application/forms/Config/Resource/LivestatusResourceForm.php +++ /dev/null @@ -1,86 +0,0 @@ -setName('form_config_resource_livestatus'); - } - - /** - * @see Form::createElements() - */ - public function createElements(array $formData) - { - $this->addElement( - 'text', - 'name', - array( - 'required' => true, - 'label' => $this->translate('Resource Name'), - 'description' => $this->translate('The unique name of this resource') - ) - ); - $this->addElement( - 'text', - 'socket', - array( - 'required' => true, - 'label' => $this->translate('Socket'), - 'description' => $this->translate('The path to your livestatus socket used for querying monitoring data'), - 'value' => '/var/run/icinga2/cmd/livestatus' - ) - ); - - return $this; - } - - /** - * Validate that the current configuration points to a valid resource - * - * @see Form::onSuccess() - */ - public function onSuccess() - { - if (false === static::isValidResource($this)) { - return false; - } - } - - /** - * Validate the resource configuration by trying to connect with it - * - * @param Form $form The form to fetch the configuration values from - * - * @return bool Whether validation succeeded or not - */ - public static function isValidResource(Form $form) - { - try { - $resource = ResourceFactory::createResource(new ConfigObject($form->getValues())); - $resource->connect()->disconnect(); - } catch (Exception $_) { - $form->addError( - $form->translate('Connectivity validation failed, connection to the given resource not possible.') - ); - return false; - } - - return true; - } -} diff --git a/application/forms/Config/ResourceConfigForm.php b/application/forms/Config/ResourceConfigForm.php index 818f74948..95316aa92 100644 --- a/application/forms/Config/ResourceConfigForm.php +++ b/application/forms/Config/ResourceConfigForm.php @@ -15,7 +15,6 @@ use Icinga\Forms\ConfigForm; use Icinga\Forms\Config\Resource\DbResourceForm; use Icinga\Forms\Config\Resource\FileResourceForm; use Icinga\Forms\Config\Resource\LdapResourceForm; -use Icinga\Forms\Config\Resource\LivestatusResourceForm; use Icinga\Forms\Config\Resource\SshResourceForm; use Icinga\Web\Form; use Icinga\Web\Notification; @@ -59,8 +58,6 @@ class ResourceConfigForm extends ConfigForm return new DbResourceForm(); } elseif ($type === 'ldap') { return new LdapResourceForm(); - } elseif ($type === 'livestatus') { - return new LivestatusResourceForm(); } elseif ($type === 'file') { return new FileResourceForm(); } elseif ($type === 'ssh') { @@ -262,7 +259,6 @@ class ResourceConfigForm extends ConfigForm $resourceTypes = array( 'file' => $this->translate('File'), - 'livestatus' => 'Livestatus', 'ssh' => $this->translate('SSH Identity'), ); if ($resourceType === 'ldap' || Platform::hasLdapSupport()) { diff --git a/application/locale/ar_SA/LC_MESSAGES/icinga.mo b/application/locale/ar_SA/LC_MESSAGES/icinga.mo index c65cf3d7f..97f8d63b1 100644 Binary files a/application/locale/ar_SA/LC_MESSAGES/icinga.mo and b/application/locale/ar_SA/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/ar_SA/LC_MESSAGES/icinga.po b/application/locale/ar_SA/LC_MESSAGES/icinga.po index 44e1e9719..7f1e72d36 100644 --- a/application/locale/ar_SA/LC_MESSAGES/icinga.po +++ b/application/locale/ar_SA/LC_MESSAGES/icinga.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2016-05-23 20:16+0300\n" -"PO-Revision-Date: 2016-06-02 10:02+0300\n" -"Last-Translator: Munzir Taha \n" +"PO-Revision-Date: 2017-09-28 15:05+0200\n" +"Last-Translator: Michael Friedrich \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 &&" -" n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -"X-Generator: Lokalize 2.0\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && " +"n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: Poedit 2.0.3\n" #: /usr/share/php/Icinga/Web/Form/Validator/InArray.php:16 #, php-format @@ -180,7 +180,7 @@ msgstr "إضافة مستخدم جديد" #: /usr/share/php/Icinga/Web/Widget/FilterEditor.php:410 msgid "Add another filter" -msgstr "إضافة مرشِّح جديد" +msgstr "إضافة مرشِّح جديد" #: /usr/share/php/Icinga/Web/Widget/FilterWidget.php:80 msgid "Add filter..." @@ -205,8 +205,8 @@ msgid "" "All configured authentication methods failed. Please check the system log or " "Icinga Web 2 log for more information." msgstr "" -"فشلت جميع طرق التحقق. رجاء قم بفحص سجلات النظام أو سجلات إسنجا وب 2 للمزيد" -" من المعلومات." +"فشلت جميع طرق التحقق. رجاء قم بفحص سجلات النظام أو سجلات إسنجا وب 2 للمزيد من " +"المعلومات." #: /usr/share/icingaweb2/application/forms/Security/RoleForm.php:68 #, php-format @@ -234,8 +234,8 @@ msgid "" "An additional filter to use when looking up groups using the specified " "connection. Leave empty to not to use any additional filter rules." msgstr "" -"مرشح إضافة لاستخدامه عند البحث عن المجموعات باستخدام الاتصال المحدد. دعه" -" فارغا حتى لا تستخدم أي قوانين مرشحات إضافية." +"مرشح إضافة لاستخدامه عند البحث عن المجموعات باستخدام الاتصال المحدد. دعه " +"فارغا حتى لا تستخدم أي قوانين مرشحات إضافية." #: /usr/share/icingaweb2/application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:228 #: /usr/share/icingaweb2/application/forms/Config/UserBackend/LdapBackendForm.php:153 @@ -243,8 +243,8 @@ msgid "" "An additional filter to use when looking up users using the specified " "connection. Leave empty to not to use any additional filter rules." msgstr "" -"مرشح إضافة لاستخدامه عند البحث عن المستخدمين باستخدام الاتصال المحدد. دعه" -" فارغا حتى لا تستخدم أي قوانين مرشحات إضافية." +"مرشح إضافة لاستخدامه عند البحث عن المستخدمين باستخدام الاتصال المحدد. دعه " +"فارغا حتى لا تستخدم أي قوانين مرشحات إضافية." #: /usr/share/php/Icinga/Web/Menu.php:274 #: /usr/share/php/Icinga/Application/Web.php:318 @@ -282,15 +282,15 @@ msgstr "خدمة المصادقة \"%s\" لا توجد" #: /usr/share/icingaweb2/application/forms/Config/UserBackendReorderForm.php:65 msgid "Authentication order updated" -msgstr "حُدِّث ترتيب المصادقة" +msgstr "حُدِّث ترتيب المصادقة" #: /usr/share/icingaweb2/application/forms/AutoRefreshForm.php:44 msgid "Auto refresh successfully disabled" -msgstr "عُطِّل التحديث التلقائي" +msgstr "عُطِّل التحديث التلقائي" #: /usr/share/icingaweb2/application/forms/AutoRefreshForm.php:41 msgid "Auto refresh successfully enabled" -msgstr "فُعِّل التحديث التلقائي" +msgstr "فُعِّل التحديث التلقائي" #: /usr/share/php/Icinga/Web/Wizard.php:626 #: /usr/share/php/Icinga/Web/Wizard.php:650 @@ -384,8 +384,7 @@ msgstr "لا يمكن البحث هنا" #: /usr/share/php/Icinga/Repository/IniRepository.php:91 #: /usr/share/php/Icinga/Repository/IniRepository.php:108 #, php-format -msgid "" -"Cannot update. Column \"%s\" holds a section's name which must be unique" +msgid "Cannot update. Column \"%s\" holds a section's name which must be unique" msgstr "تعذر التحديث. العمود \"%s\" يحوي اسم المقطع الذي يجب أن يكون وحيدا" #: /usr/share/php/Icinga/Repository/IniRepository.php:123 @@ -407,8 +406,8 @@ msgid "" "Check this box for disallowing users to change the theme. If a default theme " "is set, it will be used nonetheless" msgstr "" -"اختر هذا المربع لمنع المستخدمين من تغيير السمة. إذا تم تعيين سمة افتراضية،" -" سيتم استخدامها في جميع الحالات" +"اختر هذا المربع لمنع المستخدمين من تغيير السمة. إذا تم تعيين سمة افتراضية، " +"سيتم استخدامها في جميع الحالات" #: /usr/share/icingaweb2/application/forms/Config/Resource/DbResourceForm.php:154 msgid "" @@ -417,8 +416,8 @@ msgid "" "experimental" msgstr "" "حدد هذا المربع لاتصالات قاعدة البيانات الثابتة. لا يتم إغلاق الاتصالات " -"المستمرة في نهاية الطلب، ولكنها تخزن في ذاكرة مؤقتة ويعاد " -"استخدامها. وهذه خاصية تجريبية" +"المستمرة في نهاية الطلب، ولكنها تخزن في ذاكرة مؤقتة ويعاد استخدامها. وهذه " +"خاصية تجريبية" #: /usr/share/icingaweb2/application/forms/Dashboard/DashletForm.php:101 msgid "Check this box if you want to add the dashlet to a new dashboard" @@ -486,8 +485,7 @@ msgstr "تأكيد الإزالة" #: /usr/share/icingaweb2/application/forms/Config/Resource/LivestatusResourceForm.php:79 msgid "" -"Connectivity validation failed, connection to the given resource not " -"possible." +"Connectivity validation failed, connection to the given resource not possible." msgstr "فشل التحقق من الاتصال، الاتصال بالمورد المعطى غير ممكن." #: /usr/share/php/Icinga/Chart/GridChart.php:90 @@ -505,10 +503,9 @@ msgid "" "be symlinked in the module folder, but won't show up in the list of disabled " "modules." msgstr "" -"يحتوي على المجلدات التي سيتم البحث فيها عن الوحدات المتاحة، " -"مفصولة بنقطتين. الوحدات التي لا وجود لها في هذه المجلدات يظل " -"بالإمكان ربطها من مجلد الوحدة، لكنها لن تظهر في قائمة الوحدات " -"المعطلة." +"يحتوي على المجلدات التي سيتم البحث فيها عن الوحدات المتاحة، مفصولة بنقطتين. " +"الوحدات التي لا وجود لها في هذه المجلدات يظل بالإمكان ربطها من مجلد الوحدة، " +"لكنها لن تظهر في قائمة الوحدات المعطلة." #: /usr/share/icingaweb2/application/views/scripts/about/index.phtml:25 msgid "Copyright" @@ -519,8 +516,8 @@ msgid "" "Could not find any valid user backend resources. Please configure a resource " "for authentication first." msgstr "" -"لا يمكن العثور على أي موارد لخلفية المستخدم صالحة. يرجى إعداد مورد " -"للمصادقة أولا." +"لا يمكن العثور على أي موارد لخلفية المستخدم صالحة. يرجى إعداد مورد للمصادقة " +"أولا." #: /usr/share/icingaweb2/application/views/scripts/dashboard/error.phtml:2 msgid "Could not persist dashboard" @@ -563,8 +560,8 @@ msgid "" "Create a new backend for authenticating your users. This backend will be " "added at the end of your authentication order." msgstr "" -"إنشاء خلفية جديدة لمصادقة المستخدمين. ستضاف هذه الخلفية " -"في نهاية ترتيب المصادقة الخاصة بك." +"إنشاء خلفية جديدة لمصادقة المستخدمين. ستضاف هذه الخلفية في نهاية ترتيب " +"المصادقة الخاصة بك." #: /usr/share/icingaweb2/application/controllers/UsergroupbackendController.php:42 msgid "Create a new backend to associate users and groups with." @@ -629,8 +626,8 @@ msgid "" "Currently there is no dashlet available. This might change once you enabled " "some of the available %s." msgstr "" -"لا يوجد حاليا لوحة مصغرة متاحة. يمكن لهذا أن يتغير بمجرد " -"تفعيلك لبعض الـ %s المتوفرة." +"لا يوجد حاليا لوحة مصغرة متاحة. يمكن لهذا أن يتغير بمجرد تفعيلك لبعض الـ %s " +"المتوفرة." #: /usr/share/icingaweb2/application/forms/Dashboard/DashletForm.php:120 #: /usr/share/icingaweb2/application/controllers/DashboardController.php:257 @@ -710,8 +707,8 @@ msgid "" "Details can be found in the application log. (If you don't have access to " "this log, call your administrator in this case)" msgstr "" -"يمكن الاطلاع على التفاصيل في سجل التطبيق. (إذا لم يكن لديك " -"وصولا إلى هذا السجل، اتصل بالمسؤول في هذه الحالة)" +"يمكن الاطلاع على التفاصيل في سجل التطبيق. (إذا لم يكن لديك وصولا إلى هذا " +"السجل، اتصل بالمسؤول في هذه الحالة)" #: /usr/share/icingaweb2/application/forms/AutoRefreshForm.php:65 msgid "Disable auto refresh" @@ -818,9 +815,8 @@ msgid "" "Enter url being loaded in the dashlet. You can paste the full URL, including " "filters." msgstr "" -"أدخل الرابط الذي تم تحميله في اللوحة المصغرة. يمكنك لصق عنوان URL الكامل، بما" -" في ذلك " -"المرشحات." +"أدخل الرابط الذي تم تحميله في اللوحة المصغرة. يمكنك لصق عنوان URL الكامل، بما " +"في ذلك المرشحات." #: /usr/share/icingaweb2/application/controllers/ErrorController.php:109 msgid "Error" @@ -894,8 +890,8 @@ msgid "" "Failed to fully parse navigation configuration. Ensure that all referenced " "parents are existing navigation items: %s" msgstr "" -"فشل في إجراء تحليل كامل لإعداد التنقل. تأكد من أن جميع الآباء المشار " -"لهم هم عناصر تنقل موجودة: %s" +"فشل في إجراء تحليل كامل لإعداد التنقل. تأكد من أن جميع الآباء المشار لهم هم " +"عناصر تنقل موجودة: %s" #: /usr/share/php/Icinga/Repository/IniRepository.php:72 #, php-format @@ -970,7 +966,7 @@ msgstr "تصفية هذه القائمة" #: /usr/share/php/Icinga/Web/Widget/FilterWidget.php:93 msgid "Filtered" -msgstr "مُرشَّح" +msgstr "مُرشَّح" #: /usr/share/php/Icinga/Web/Wizard.php:662 msgid "Finish" @@ -1117,21 +1113,19 @@ msgstr "أيقونة" #: /usr/share/icingaweb2/application/views/scripts/authentication/logout.phtml:15 msgid "" -"If this message does not disappear, it might be necessary to quit the " -"current session manually by clearing the cache, or by closing the current " -"browser session." +"If this message does not disappear, it might be necessary to quit the current " +"session manually by clearing the cache, or by closing the current browser " +"session." msgstr "" -"إذا لم تختفي هذه الرسالة، فقد يكون من اللازم إنهاء " -"الجلسة الحالية يدويا بتنظيف الذاكرة المخبأة أو بإغلاق " -"جلسة المتصفح الحالية." +"إذا لم تختفي هذه الرسالة، فقد يكون من اللازم إنهاء الجلسة الحالية يدويا " +"بتنظيف الذاكرة المخبأة أو بإغلاق جلسة المتصفح الحالية." #: /usr/share/icingaweb2/application/views/scripts/showConfiguration.phtml:21 msgid "" "In case you can access the file by yourself, you can open it and insert the " "config manually:" msgstr "" -"في حال كان بإمكانك الوصول إلى الملف بنفسك، يمكنك فتحه وإدراج " -"الإعداد يدويا:" +"في حال كان بإمكانك الوصول إلى الملف بنفسك، يمكنك فتحه وإدراج الإعداد يدويا:" #: /usr/share/icingaweb2/application/views/scripts/user/show.phtml:33 msgid "Inactive" @@ -1165,10 +1159,10 @@ msgid "" "authentication method by following the instructions in the %1$sdocumentation" "%3$s or by using our %2$sweb-based setup-wizard%3$s." msgstr "" -"يبدو أنك لم تقوم بإعداد إسنجا الويب 2 بعد لذلك فأنه من غير الممكن " -"الدخول دون أي أسلوب مصادقة معرف. يرجى تعريف أسلوب " -"مصادقة من خلال اتباع التعليمات في %1$sdocumentation " -"%3$s أو عن طريق استخدام معالج التثبيت%3$s المبني على الوب الخاص بنا%2$" +"يبدو أنك لم تقوم بإعداد إسنجا الويب 2 بعد لذلك فأنه من غير الممكن الدخول دون " +"أي أسلوب مصادقة معرف. يرجى تعريف أسلوب مصادقة من خلال اتباع التعليمات في " +"%1$sdocumentation %3$s أو عن طريق استخدام معالج التثبيت%3$s المبني على الوب " +"الخاص بنا%2$" #: /usr/share/icingaweb2/application/forms/Config/UserBackend/LdapBackendForm.php:210 msgid "LDAP Base DN" @@ -1514,8 +1508,8 @@ msgid "" "No authentication methods available. Did you create authentication.ini when " "setting up Icinga Web 2?" msgstr "" -"لا يُوجد طرق مصادقة متوفرة. هل قمت بإنشاء authentication.ini " -"عند إعداد إسنجا وب 2؟" +"لا يُوجد طرق مصادقة متوفرة. هل قمت بإنشاء authentication.ini عند إعداد إسنجا " +"وب 2؟" #: /usr/share/icingaweb2/application/views/scripts/group/list.phtml:22 msgid "No backend found which is able to list user groups" @@ -1572,11 +1566,11 @@ msgstr "بلا" #: /usr/share/icingaweb2/application/forms/Config/UserGroup/UserGroupForm.php:63 msgid "" -"Note that all users that are currently a member of this group will have " -"their membership cleared automatically." +"Note that all users that are currently a member of this group will have their " +"membership cleared automatically." msgstr "" -"لاحظ أن جميع المستخدمين الذين هم حاليا أعضاء في هذه المجموعة ستحذف " -"عضويتهم تلقائيا." +"لاحظ أن جميع المستخدمين الذين هم حاليا أعضاء في هذه المجموعة ستحذف عضويتهم " +"تلقائيا." #: /usr/share/icingaweb2/application/forms/Config/ResourceConfigForm.php:96 msgid "Old resource name missing" @@ -1648,8 +1642,8 @@ msgid "" "Please note that not all authentication methods were available. Check the " "system log or Icinga Web 2 log for more information." msgstr "" -"يرجى ملاحظة أن ليس كل أساليب المصادقة متاحة. تحقق من سجل " -"النظام أو سجل إسنجا الويب 2 لمزيد من المعلومات." +"يرجى ملاحظة أن ليس كل أساليب المصادقة متاحة. تحقق من سجل النظام أو سجل إسنجا " +"الويب 2 لمزيد من المعلومات." #: /usr/share/icingaweb2/application/forms/Config/UserGroup/AddMemberForm.php:143 msgid "" @@ -1709,8 +1703,7 @@ msgid "" "Push this button to update the form to reflect the change that was made in " "the field on the left" msgstr "" -"ضغط هذا الزر لتحديث النموذج لعكس التغيير الذي تم إجراؤه في " -"الحقل على اليسار" +"ضغط هذا الزر لتحديث النموذج لعكس التغيير الذي تم إجراؤه في الحقل على اليسار" #: /usr/share/php/Icinga/Web/Form/Decorator/Autosubmit.php:119 msgid "" @@ -1922,8 +1915,7 @@ msgstr "تقييد المجموعات التي يمكن لهذا الدور أن #: /usr/share/icingaweb2/application/forms/Security/RoleForm.php:53 msgid "Restrict which users this role can share items and information with" -msgstr "" -"تقييد المستخدمين الذين يمكن لهذا الدور أن يشارك معهم العناصر والمعلومات" +msgstr "تقييد المستخدمين الذين يمكن لهذا الدور أن يشارك معهم العناصر والمعلومات" #: /usr/share/icingaweb2/application/views/scripts/config/module.phtml:68 msgid "Restrictions" @@ -2037,8 +2029,8 @@ msgid "" "Set whether to show an exception's stacktrace by default. This can also be " "set in a user's preferences with the appropriate permission." msgstr "" -"اختيار هل يظهر تتبع مكدس الاستثناء بشكل افتراضي. يمكن أيضا " -"تعيينه في تفضيلات المستخدم مع الإذن المناسب." +"اختيار هل يظهر تتبع مكدس الاستثناء بشكل افتراضي. يمكن أيضا تعيينه في تفضيلات " +"المستخدم مع الإذن المناسب." #: /usr/share/icingaweb2/application/forms/PreferenceForm.php:224 msgid "Set whether to show an exception's stacktrace." @@ -2251,16 +2243,16 @@ msgid "" "The filter needs to be expressed as standard LDAP expression, without outer " "parentheses. (e.g. &(foo=bar)(bar=foo) or foo=bar)" msgstr "" -"يحتاج المرشح أن يعبر عنه كتعبير LDAP قياسي، دون الأقواس " -"الخارجية. (مثلا: &(foo=bar)(bar=foo) or foo=bar)" +"يحتاج المرشح أن يعبر عنه كتعبير LDAP قياسي، دون الأقواس الخارجية. (مثلا: " +"&(foo=bar)(bar=foo) or foo=bar)" #: /usr/share/icingaweb2/application/forms/Config/UserBackend/LdapBackendForm.php:157 msgid "" -"The filter needs to be expressed as standard LDAP expression. (e.g. " -"&(foo=bar)(bar=foo) or foo=bar)" +"The filter needs to be expressed as standard LDAP expression. (e.g. &(foo=bar)" +"(bar=foo) or foo=bar)" msgstr "" -"يحتاج المرشح أن يعبر عنه كتعبير LDAP قياسي، " -"(مثلا: &(foo=bar)(bar=foo) or foo=bar)" +"يحتاج المرشح أن يعبر عنه كتعبير LDAP قياسي، (مثلا: &(foo=bar)(bar=foo) or " +"foo=bar)" #: /usr/share/icingaweb2/application/forms/Config/UserBackend/ExternalBackendForm.php:54 msgid "The filter pattern must be a valid regular expression." @@ -2271,8 +2263,8 @@ msgid "" "The filter to use to strip specific parts off from usernames. Leave empty if " "you do not want to strip off anything." msgstr "" -"الفلتر المستخدم لتجريد أجزاء معينة من من أسماء المستخدمين. دعه فارغا إذا " -"كنت لا تريد تجريد أي شيء." +"الفلتر المستخدم لتجريد أجزاء معينة من من أسماء المستخدمين. دعه فارغا إذا كنت " +"لا تريد تجريد أي شيء." #: /usr/share/icingaweb2/application/forms/Config/General/LoggingConfigForm.php:116 msgid "The full path to the log file to write messages to." @@ -2292,11 +2284,9 @@ msgstr "اسم المضيف أو العنوان لخادم LDAP لاستخدام #: /usr/share/icingaweb2/application/forms/Navigation/NavigationItemForm.php:70 msgid "" -"The icon of this navigation item. Leave blank if you do not want a icon " -"being displayed" -msgstr "" -"أيقونة عنصر التنقل هذا. دعها فارغة إن لم ترد " -"عرض الأيقونة" +"The icon of this navigation item. Leave blank if you do not want a icon being " +"displayed" +msgstr "أيقونة عنصر التنقل هذا. دعها فارغة إن لم ترد عرض الأيقونة" #: /usr/share/icingaweb2/application/forms/Config/General/LoggingConfigForm.php:54 msgid "The maximum logging level to emit." @@ -2323,17 +2313,13 @@ msgstr "اسم الدور" msgid "" "The name of this authentication provider that is used to differentiate it " "from others" -msgstr "" -"اسم مزود المصادقة لاستخدامه في التفرقة " -"بينه وبين الآخرين" +msgstr "اسم مزود المصادقة لاستخدامه في التفرقة بينه وبين الآخرين" #: /usr/share/icingaweb2/application/forms/Config/UserBackend/LdapBackendForm.php:59 msgid "" "The name of this authentication provider that is used to differentiate it " "from others." -msgstr "" -"اسم مزود المصادقة لاستخدامه في التفرقة " -"بينه وبين الآخرين." +msgstr "اسم مزود المصادقة لاستخدامه في التفرقة بينه وبين الآخرين." #: /usr/share/icingaweb2/application/forms/Navigation/NavigationConfigForm.php:584 msgid "" @@ -2345,9 +2331,7 @@ msgstr "اسم عنصر التنقل لاستخدامه في التفرقة بي msgid "" "The name of this user group backend that is used to differentiate it from " "others" -msgstr "" -"اسم خلفية مجموعة المستخدم لاستخدامه في التفرقة بينه وبين " -"الآخرين" +msgstr "اسم خلفية مجموعة المستخدم لاستخدامه في التفرقة بينه وبين الآخرين" #: /usr/share/icingaweb2/application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:123 msgid "The object class used for storing groups on the LDAP server." @@ -2363,16 +2347,16 @@ msgid "" "The parent item to assign this navigation item to. Select \"None\" to make " "this a main navigation item" msgstr "" -"العنصر الأصل لتعيين بند التنقل هذا إليه. اختر \"بلا\" لجعل " -"بند التنقل هذا رئيسيا" +"العنصر الأصل لتعيين بند التنقل هذا إليه. اختر \"بلا\" لجعل بند التنقل هذا " +"رئيسيا" #: /usr/share/icingaweb2/application/forms/Navigation/MenuItemForm.php:27 msgid "" "The parent menu to assign this menu entry to. Select \"None\" to make this a " "main menu entry" msgstr "" -"القائمة الأم لتعيين مدخل القائمة هذا إليه. اختر \"بلا\" لجعل " -"مدخل القائمة هذا رئيسيا" +"القائمة الأم لتعيين مدخل القائمة هذا إليه. اختر \"بلا\" لجعل مدخل القائمة هذا " +"رئيسيا" #: /usr/share/icingaweb2/application/forms/Config/Resource/DbResourceForm.php:138 msgid "The password to use for authentication" @@ -2382,18 +2366,13 @@ msgstr "كلمة المرور لاستخدامها في المصادقة" msgid "The password to use for querying the ldap server" msgstr "كلمة المرور لاستخدامها في الاستعلام عن خادم ldap" -#: /usr/share/icingaweb2/application/forms/Config/Resource/LivestatusResourceForm.php:45 -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "" -"المسار إلى مقبس livestatus الخاصة بك لاستخدامه في الاستعلام عن بيانات المراقبة" - #: /usr/share/icingaweb2/application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:192 msgid "" "The path where groups can be found on the LDAP server. Leave empty to select " "all users available using the specified connection." msgstr "" -"المسار حيث يمكن العثور على مجموعات على خادم LDAP. اتركه فارغا لتحديد " -"جميع المستخدمين المتوفرين باستخدام الاتصال المحدد." +"المسار حيث يمكن العثور على مجموعات على خادم LDAP. اتركه فارغا لتحديد جميع " +"المستخدمين المتوفرين باستخدام الاتصال المحدد." #: /usr/share/icingaweb2/application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:273 #: /usr/share/icingaweb2/application/forms/Config/UserBackend/LdapBackendForm.php:212 @@ -2401,8 +2380,8 @@ msgid "" "The path where users can be found on the LDAP server. Leave empty to select " "all users available using the specified connection." msgstr "" -"المسار حيث يمكن العثور على مستخدمين على خادم LDAP. اتركه فارغا لتحديد " -"جميع المستخدمين المتوفرين باستخدام الاتصال المحدد." +"المسار حيث يمكن العثور على مستخدمين على خادم LDAP. اتركه فارغا لتحديد جميع " +"المستخدمين المتوفرين باستخدام الاتصال المحدد." #: /usr/share/icingaweb2/application/forms/Config/Resource/FileResourceForm.php:59 msgid "The pattern by which to identify columns." @@ -2436,8 +2415,8 @@ msgid "" "\"%s\". Removing the resource can result in noone being able to log in any " "longer." msgstr "" -"المورد \"%s\" يستخدم حاليا للمصادقة من قبل خلفية المستخدم \"%s\". " -"إزالة المورد يؤدي إلى عدم قدرة أي أحد على الدخول لفترة أطول." +"المورد \"%s\" يستخدم حاليا للمصادقة من قبل خلفية المستخدم \"%s\". إزالة " +"المورد يؤدي إلى عدم قدرة أي أحد على الدخول لفترة أطول." #: /usr/share/icingaweb2/application/forms/Navigation/NavigationItemForm.php:39 msgid "The target where to open this navigation item's url" @@ -2482,17 +2461,16 @@ msgid "" "identifier (e.g. http://example.tld)" msgstr "" "عنوان الموقع في بند التنقل هذا. اتركه فارغا إذا كنت تريد فقط للاسم أن يُعرض. " -"لعناوين المواقع الخارجية، تأكد من إلحاقها بمعرف بروتوكول مناسب " -"(مثل: http: //example.tld)" +"لعناوين المواقع الخارجية، تأكد من إلحاقها بمعرف بروتوكول مناسب (مثل: http: //" +"example.tld)" #: /usr/share/icingaweb2/application/forms/Navigation/DashletForm.php:29 msgid "" "The url to load in the dashlet. For external urls, make sure to prepend an " "appropriate protocol identifier (e.g. http://example.tld)" msgstr "" -"عنوان الموقع لتحميله في اللوحة الصغيرة. لعناوين المواقع الخارجية، تأكد من" -" إلحاقها " -"بمعرف بروتوكول مناسب (مثل: http://example.tld)" +"عنوان الموقع لتحميله في اللوحة الصغيرة. لعناوين المواقع الخارجية، تأكد من " +"إلحاقها بمعرف بروتوكول مناسب (مثل: http://example.tld)" #: /usr/share/icingaweb2/application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:78 msgid "The user backend to link with this user group backend." @@ -2503,9 +2481,8 @@ msgid "" "The user dn to use for querying the ldap server. Leave the dn and password " "empty for attempting an anonymous bind" msgstr "" -"الاسم المميز للمستخدم لاستخدامه في استعلام خادم ldap. اترك الاسم المميز وكلمة" -" المرور " -"فارغين لمحاولة الربط المجهول" +"الاسم المميز للمستخدم لاستخدامه في استعلام خادم ldap. اترك الاسم المميز وكلمة " +"المرور فارغين لمحاولة الربط المجهول" #: /usr/share/icingaweb2/application/forms/Config/Resource/DbResourceForm.php:128 msgid "The user name to use for authentication" @@ -2539,8 +2516,8 @@ msgid "" "This is a child of the navigation item %1$s. You can only unshare this item " "by unsharing %1$s" msgstr "" -"هذا تابع لعنصر التنقل %1$s. يمكنك فقط إلغاء مشارك هذا العنصر " -"بإلغاء مشاركة %1$s" +"هذا تابع لعنصر التنقل %1$s. يمكنك فقط إلغاء مشارك هذا العنصر بإلغاء مشاركة " +"%1$s" #: /usr/share/icingaweb2/application/views/scripts/config/module.phtml:50 msgid "This module has no dependencies" @@ -2555,8 +2532,7 @@ msgid "" "This option allows you to enable or to disable the global page content auto " "refresh" msgstr "" -"هذا الخيار يسمح لك بتفعيل أو تعطيل التحديث " -"التلقائي لمحتوى الصفحة الكامل" +"هذا الخيار يسمح لك بتفعيل أو تعطيل التحديث التلقائي لمحتوى الصفحة الكامل" #: /usr/share/icingaweb2/application/forms/Navigation/NavigationConfigForm.php:603 msgid "Tick this box to share this item with others" @@ -2581,11 +2557,9 @@ msgstr "واجهة مستخدم تصحيح الأخطاء" #: /usr/share/icingaweb2/application/forms/Navigation/NavigationConfigForm.php:486 #, php-format msgid "" -"Unable to delete navigation item \"%s\". There are other items dependent " -"from it: %s" -msgstr "" -"غير قادر على حذف عنصر التنقل \"%s\". هناك عناصر أخرى " -"تابعة له: %s" +"Unable to delete navigation item \"%s\". There are other items dependent from " +"it: %s" +msgstr "غير قادر على حذف عنصر التنقل \"%s\". هناك عناصر أخرى تابعة له: %s" #: /usr/share/icingaweb2/application/forms/Navigation/NavigationConfigForm.php:526 #, php-format @@ -2593,8 +2567,8 @@ msgid "" "Unable to unshare navigation item \"%s\". It is dependent from item \"%s\". " "Dependent items can only be unshared by unsharing their parent" msgstr "" -"غير قادر على إلغاء مشاركة عنصر التنقل \"%s\". فهو تابع للعنصر \"%s\". " -"العناصر التابعة يمكن إلغاء مشاركتها فقط بإلغاء مشاركة أصلها" +"غير قادر على إلغاء مشاركة عنصر التنقل \"%s\". فهو تابع للعنصر \"%s\". العناصر " +"التابعة يمكن إلغاء مشاركتها فقط بإلغاء مشاركة أصلها" #: /usr/share/icingaweb2/application/views/scripts/navigation/index.phtml:54 #: /usr/share/icingaweb2/application/views/scripts/navigation/shared.phtml:42 @@ -2653,18 +2627,14 @@ msgstr "تحديث خلفية مجموعة مستخدم" msgid "" "Upon any of this form's fields were changed, this page is being updated " "automatically." -msgstr "" -" عند تغيير أي من حقول هذا النموذج، فإن هذه الصفحة يتم تحديثها " -"تلقائيا." +msgstr " عند تغيير أي من حقول هذا النموذج، فإن هذه الصفحة يتم تحديثها تلقائيا." #: /usr/share/php/Icinga/Web/Form.php:951 #: /usr/share/php/Icinga/Web/Form/Decorator/Autosubmit.php:100 msgid "" "Upon its value has changed, this field issues an automatic update of this " "page." -msgstr "" -"عند تغيير قيمتها، فإن هذا الحقل يصدر تحديث تلقائي لهذه " -"الصفحة." +msgstr "عند تغيير قيمتها، فإن هذا الحقل يصدر تحديث تلقائي لهذه الصفحة." #: /usr/share/icingaweb2/application/views/scripts/dashboard/settings.phtml:14 #: /usr/share/icingaweb2/application/forms/Navigation/NavigationItemForm.php:54 @@ -2808,8 +2778,8 @@ msgid "" "User to log in as on the remote Icinga instance. Please note that key-based " "SSH login must be possible for this user" msgstr "" -"الاسم المستخدم لتسجيل الدخول به لحالة إسنجا البعيدة. يرجى ملاحظة أن " -"دخول SSH القائم على مفتاح يجب أن يكون متاحا لهذا المستخدم" +"الاسم المستخدم لتسجيل الدخول به لحالة إسنجا البعيدة. يرجى ملاحظة أن دخول SSH " +"القائم على مفتاح يجب أن يكون متاحا لهذا المستخدم" #: /usr/share/php/Icinga/Web/Menu.php:294 msgid "Usergroups" @@ -2882,8 +2852,8 @@ msgid "" "Whether to encrypt communication. Choose STARTTLS or LDAPS for encrypted " "communication or none for unencrypted communication" msgstr "" -"سواء لتشفير الاتصالات أو عدمه. اختر STARTTLS أو LDAPS للاتصال " -"المشفر أو \"بلا\" للاتصال غير المشفر" +"سواء لتشفير الاتصالات أو عدمه. اختر STARTTLS أو LDAPS للاتصال المشفر أو \"بلا" +"\" للاتصال غير المشفر" #: /usr/share/icingaweb2/application/views/scripts/joystickPagination.phtml:70 #: /usr/share/icingaweb2/application/views/scripts/joystickPagination.phtml:96 @@ -2913,11 +2883,10 @@ msgstr "ليس لديك أذونات في نظام الملفات للكتابة #: /usr/share/icingaweb2/application/controllers/UserController.php:229 msgid "" -"You'll need to configure at least one user group backend first that allows " -"to create new memberships" +"You'll need to configure at least one user group backend first that allows to " +"create new memberships" msgstr "" -"ستحتاج لإعداد خلفية مجموعة مستخدم واحدة على الأقل أولا تسمح " -"بإنشاء عضوية جديدة" +"ستحتاج لإعداد خلفية مجموعة مستخدم واحدة على الأقل أولا تسمح بإنشاء عضوية جديدة" #: /usr/share/icingaweb2/application/forms/Authentication/LoginForm.php:138 msgid "" @@ -2925,9 +2894,8 @@ msgid "" "authentication mechanisms. Make sure you'll configure such, otherwise you'll " "not be able to login." msgstr "" -"لا يمكنك حاليا المصادقة باستخدام أي من آليات مصادقة " -"خادم الوب. تأكد من أنك سوف تقوم بإعداد واحدة، " -"وإلا فسوف لن تكون قادرا على الدخول." +"لا يمكنك حاليا المصادقة باستخدام أي من آليات مصادقة خادم الوب. تأكد من أنك " +"سوف تقوم بإعداد واحدة، وإلا فسوف لن تكون قادرا على الدخول." #: /usr/share/icingaweb2/application/forms/PreferenceForm.php:197 msgid "Your Current Language" @@ -3011,5 +2979,3 @@ msgstr "منذ %s" #: /usr/share/icingaweb2/application/views/scripts/config/devtools.phtml:5 msgid "toggle" msgstr "تبديل" - - diff --git a/application/locale/de_DE/LC_MESSAGES/icinga.mo b/application/locale/de_DE/LC_MESSAGES/icinga.mo index 695a92a16..ba880eae4 100644 Binary files a/application/locale/de_DE/LC_MESSAGES/icinga.mo and b/application/locale/de_DE/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/de_DE/LC_MESSAGES/icinga.po b/application/locale/de_DE/LC_MESSAGES/icinga.po index f2ffcdb45..5247bb3d4 100644 --- a/application/locale/de_DE/LC_MESSAGES/icinga.po +++ b/application/locale/de_DE/LC_MESSAGES/icinga.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: Icinga Web 2 (None)\n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2017-07-27 11:44+0000\n" -"PO-Revision-Date: 2017-07-27 13:57+0200\n" -"Last-Translator: Markus Frosch \n" +"PO-Revision-Date: 2017-09-28 15:04+0200\n" +"Last-Translator: Michael Friedrich \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: .\n" "Language-Team: \n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.3\n" "X-Poedit-SearchPath-0: .\n" #: ../../../../library/Icinga/Web/Form/Validator/InArray.php:16 @@ -2732,12 +2732,6 @@ msgstr "Das Kennwort welches zur Authentifizierung benutzt werden soll" msgid "The password to use for querying the ldap server" msgstr "Das Kennwort welches zum Abfragen des LDAP-Servers benutzt werden soll" -#: ../../../../application/forms/Config/Resource/LivestatusResourceForm.php:45 -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "" -"Der Pfad zu Ihrem Live-Status Socket, über welchen Monitoring-Daten " -"abgefragt werden sollen" - #: ../../../../application/forms/Config/UserGroup/LdapUserGroupBackendForm.php:210 msgid "" "The path where groups can be found on the LDAP server. Leave empty to select " diff --git a/application/locale/fi_FI/LC_MESSAGES/icinga.mo b/application/locale/fi_FI/LC_MESSAGES/icinga.mo index d90fec0e0..9da39f411 100644 Binary files a/application/locale/fi_FI/LC_MESSAGES/icinga.mo and b/application/locale/fi_FI/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/fi_FI/LC_MESSAGES/icinga.po b/application/locale/fi_FI/LC_MESSAGES/icinga.po index d85ecd9bb..f9b9eb369 100644 --- a/application/locale/fi_FI/LC_MESSAGES/icinga.po +++ b/application/locale/fi_FI/LC_MESSAGES/icinga.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Icinga Web 2 (None)\n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2015-02-11 15:47+0100\n" -"PO-Revision-Date: 2015-02-28 01:56+0200\n" -"Last-Translator: Mikko Peltokangas \n" +"PO-Revision-Date: 2017-09-28 15:06+0200\n" +"Last-Translator: Michael Friedrich \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.7.1\n" +"X-Generator: Poedit 2.0.3\n" "Language: fi_FI\n" #: /usr/share/icingaweb2/library/Icinga/Web/Menu/MonitoringMenuItemRenderer.php:40 @@ -1097,10 +1097,6 @@ msgstr "Tunnistautumiseen käytettävä salasana" msgid "The password to use for querying the ldap server" msgstr "LDAP-palvelinkyselyihin käytettävä salasana" -#: /usr/share/icingaweb2/application/forms/Config/Resource/LivestatusResourceForm.php:45 -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "Polku livestatus-socketiin valvontadatan kyselyä varten" - #: /usr/share/icingaweb2/application/forms/Config/Authentication/LdapBackendForm.php:111 msgid "" "The path where users can be found on the ldap server. Leave empty to select all users " diff --git a/application/locale/it_IT/LC_MESSAGES/icinga.mo b/application/locale/it_IT/LC_MESSAGES/icinga.mo index d2d2e549c..b1d09e8ce 100644 Binary files a/application/locale/it_IT/LC_MESSAGES/icinga.mo and b/application/locale/it_IT/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/it_IT/LC_MESSAGES/icinga.po b/application/locale/it_IT/LC_MESSAGES/icinga.po index c78bd48a5..bf14919a6 100644 --- a/application/locale/it_IT/LC_MESSAGES/icinga.po +++ b/application/locale/it_IT/LC_MESSAGES/icinga.po @@ -4,6 +4,13 @@ msgstr "" "MIME-Version: 1.0\n" "Language: it_IT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Michael Friedrich \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" #, php-format msgid "\"%s\" is not in the list of allowed values." @@ -1780,11 +1787,6 @@ msgstr "Password da usare per l'autenticazione" msgid "The password to use for querying the ldap server" msgstr "Password da usare per interrogare il server ldap" -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "" -"Percorso del socket di livestatus usato per il recupero dei dati di " -"monitoraggio" - msgid "" "The path where groups can be found on the LDAP server. Leave empty to select " "all users available using the specified connection." diff --git a/application/locale/pt_BR/LC_MESSAGES/icinga.mo b/application/locale/pt_BR/LC_MESSAGES/icinga.mo index e36da8839..db366cf04 100644 Binary files a/application/locale/pt_BR/LC_MESSAGES/icinga.mo and b/application/locale/pt_BR/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/pt_BR/LC_MESSAGES/icinga.po b/application/locale/pt_BR/LC_MESSAGES/icinga.po index fbd9c2fea..43bad96d4 100644 --- a/application/locale/pt_BR/LC_MESSAGES/icinga.po +++ b/application/locale/pt_BR/LC_MESSAGES/icinga.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: Icinga Web 2 (None)\n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2014-12-03 09:11-0200\n" -"PO-Revision-Date: 2014-12-03 09:19-0300\n" -"Last-Translator: Carlos Cesario \n" +"PO-Revision-Date: 2017-09-28 15:07+0200\n" +"Last-Translator: Michael Friedrich \n" "Language: pt_BR\n" -"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Poedit 2.0.3\n" +"Language-Team: \n" #: /usr/local/icingaweb/library/Icinga/Web/Menu/MonitoringMenuItemRenderer.php:41 #, php-format @@ -1172,12 +1172,6 @@ msgstr "A senha a ser utilizada para a autenticação" msgid "The password to use for querying the ldap server" msgstr "A senha a ser utilizada para consultar o servidor ldap" -#: /usr/local/icingaweb/application/forms/Config/Resource/LivestatusResourceForm.php:46 -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "" -"O caminho para o soquete livestatus utilizado para consultar os dados de " -"monitoramento" - #: /usr/local/icingaweb/application/forms/Config/Authentication/LdapBackendForm.php:109 msgid "" "The path where users can be found on the ldap server. Leave empty to select " diff --git a/application/locale/ru_RU/LC_MESSAGES/icinga.mo b/application/locale/ru_RU/LC_MESSAGES/icinga.mo index 5ca5449a1..65418f3bf 100644 Binary files a/application/locale/ru_RU/LC_MESSAGES/icinga.mo and b/application/locale/ru_RU/LC_MESSAGES/icinga.mo differ diff --git a/application/locale/ru_RU/LC_MESSAGES/icinga.po b/application/locale/ru_RU/LC_MESSAGES/icinga.po index 2306c0a6c..e6303bf8a 100644 --- a/application/locale/ru_RU/LC_MESSAGES/icinga.po +++ b/application/locale/ru_RU/LC_MESSAGES/icinga.po @@ -3,6 +3,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "MIME-Version: 1.0\n" "Language: ru_RU\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Michael Friedrich \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" #, php-format msgid "\"%s\" is not in the list of allowed values." @@ -1685,9 +1692,6 @@ msgstr "Пароль для аутентификации" msgid "The password to use for querying the ldap server" msgstr "" -msgid "The path to your livestatus socket used for querying monitoring data" -msgstr "" - msgid "" "The path where groups can be found on the LDAP server. Leave empty to select " "all users available using the specified connection." diff --git a/application/views/scripts/config/resource.phtml b/application/views/scripts/config/resource.phtml index ec9c0c7ea..317c115ab 100644 --- a/application/views/scripts/config/resource.phtml +++ b/application/views/scripts/config/resource.phtml @@ -32,9 +32,6 @@ case 'ldap': $icon = 'sitemap'; break; - case 'livestatus': - $icon = 'flash'; - break; case 'ssh': $icon = 'user'; break; diff --git a/doc/99-Vagrant.md b/doc/99-Vagrant.md index a2c30ea44..41791471d 100644 --- a/doc/99-Vagrant.md +++ b/doc/99-Vagrant.md @@ -23,7 +23,7 @@ $ vagrant plugin install vagrant-parallels The Icinga Web 2 project ships with a Vagrant virtual machine that integrates the source code with various services and example data in a controlled -environment. This enables developers and users to test Livestatus, +environment. This enables developers and users to test MySQL and PostgreSQL backends as well as the LDAP authentication. All you have to do is install Vagrant and run: diff --git a/library/Icinga/Data/ResourceFactory.php b/library/Icinga/Data/ResourceFactory.php index 2721a8e46..5b477c7ab 100644 --- a/library/Icinga/Data/ResourceFactory.php +++ b/library/Icinga/Data/ResourceFactory.php @@ -7,7 +7,6 @@ use Icinga\Application\Config; use Icinga\Util\ConfigAwareFactory; use Icinga\Exception\ConfigurationError; use Icinga\Data\Db\DbConnection; -use Icinga\Protocol\Livestatus\Connection as LivestatusConnection; use Icinga\Protocol\Ldap\LdapConnection; use Icinga\Protocol\File\FileReader; @@ -110,9 +109,6 @@ class ResourceFactory implements ConfigAwareFactory $resource = new LdapConnection($config); break; - case 'livestatus': - $resource = new LivestatusConnection($config->socket); - break; case 'file': $resource = new FileReader($config); break; @@ -133,7 +129,7 @@ class ResourceFactory implements ConfigAwareFactory * Create a resource from name * * @param string $resourceName - * @return DbConnection|LdapConnection|LivestatusConnection + * @return DbConnection|LdapConnection */ public static function create($resourceName) { diff --git a/library/Icinga/Protocol/Livestatus/Connection.php b/library/Icinga/Protocol/Livestatus/Connection.php deleted file mode 100644 index 0177da0be..000000000 --- a/library/Icinga/Protocol/Livestatus/Connection.php +++ /dev/null @@ -1,445 +0,0 @@ - - * $lconf = new Connection((object) array( - * 'hostname' => 'localhost', - * 'root_dn' => 'dc=monitoring,dc=...', - * 'bind_dn' => 'cn=Mangager,dc=monitoring,dc=...', - * 'bind_pw' => '***' - * )); - * - * - * @copyright Copyright (c) 2013 Icinga-Web Team - * @author Icinga-Web Team - * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License - */ -class Connection -{ - const TYPE_UNIX = 1; - const TYPE_TCP = 2; - - const FIELD_SEPARATOR = '`'; - - protected $bytesRead = 0; - protected $responseSize; - protected $status; - protected $headers; - - // List of available Livestatus tables. Kept here as we otherwise get no - // useful error message - protected $available_tables = array( - 'hosts', // hosts - 'services', // services, joined with all data from hosts - 'hostgroups', // hostgroups - 'servicegroups', // servicegroups - 'contactgroups', // contact groups - 'servicesbygroup', // all services grouped by service groups - 'servicesbyhostgroup', // all services grouped by host groups - 'hostsbygroup', // all hosts grouped by host groups - 'contacts', // contacts - 'commands', // defined commands - 'timeperiods', // time period definitions (currently only name - // and alias) - 'downtimes', // all scheduled host and service downtimes, - // joined with data from hosts and services. - 'comments', // all host and service comments - 'log', // a transparent access to the nagios logfiles - // (include archived ones)ones - 'status', // general performance and status information. - // This table contains exactly one dataset. - 'columns', // a complete list of all tables and columns - // available via Livestatus, including - // descriptions! - 'statehist', // 1.2.1i2 sla statistics for hosts and services, - // joined with data from hosts, services and log. - ); - - protected $socket_path; - protected $socket_host; - protected $socket_port; - protected $socket_type; - protected $connection; - - /** - * Whether the given table name is valid - * - * @param string $name table name - * - * @return bool - */ - public function hasTable($name) - { - return in_array($name, $this->available_tables); - } - - public function __construct($socket = '/var/lib/icinga/rw/live') - { - $this->assertPhpExtensionLoaded('sockets'); - if ($socket[0] === '/') { - if (! is_writable($socket)) { - throw new SystemPermissionException( - 'Cannot write to livestatus socket "%s"', - $socket - ); - } - $this->socket_type = self::TYPE_UNIX; - $this->socket_path = $socket; - } else { - if (! preg_match('~^tcp://([^:]+):(\d+)~', $socket, $m)) { - throw new ConfigurationError( - 'Invalid TCP socket syntax: "%s"', - $socket - ); - } - // TODO: Better config syntax checks - $this->socket_host = $m[1]; - $this->socket_port = (int) $m[2]; - $this->socket_type = self::TYPE_TCP; - } - } - - /** - * Count unlimited rows matching the query filter - * - * TODO: Currently hardcoded value, as the old variant was stupid - * Create a working variant doing this->execute(query->renderCount())... - * - * @param Query $query the query object - * - * @return int - */ - public function count(Query $query) - { - return 100; - $count = clone($query); - // WTF? $count->count(); - Benchmark::measure('Sending Livestatus Count Query'); - $this->execute($query); - $data = $this->fetchRowFromSocket(); - Benchmark::measure('Got Livestatus count result'); - return $data[0][0]; - } - - /** - * Fetch a single row - * - * TODO: Currently based on fetchAll, that's bullshit - * - * @param Query $query the query object - * - * @return object the first result row - */ - public function fetchRow(Query $query) - { - $all = $this->fetchAll($query); - return array_shift($all); - } - - /** - * Fetch key/value pairs - * - * TODO: Currently slow, needs improvement - * - * @param Query $query the query object - * - * @return array - */ - public function fetchPairs(Query $query) - { - $res = array(); - $all = $this->fetchAll($query); - foreach ($all as $row) { - // slow - $keys = array_keys((array) $row); - $res[$row->{$keys[0]}] = $row->{$keys[1]}; - } - return $res; - } - - /** - * Fetch all result rows - * - * @param Query $query the query object - * - * @return array - */ - public function fetchAll(Query $query) - { - Benchmark::measure('Sending Livestatus Query'); - $this->execute($query); - Benchmark::measure('Got Livestatus Data'); - - if ($query->hasColumns()) { - $headers = $query->getColumnAliases(); - } else { - // TODO: left this here, find out how to handle it better - die('F*** no data'); - $headers = array_shift($data); - } - $result = array(); - $filter = $query->filterIsSupported() ? null : $query->getFilter(); - - while ($row = $this->fetchRowFromSocket()) { - $r = new ResponseRow($row, $query); - $res = $query->resultRow($row); - if ($filter !== null && ! $filter->matches($res)) { - continue; - } - $result[] = $res; - } - - if ($query->hasOrder()) { - usort($result, array($query, 'compare')); - } - if ($query->hasLimit()) { - $result = array_slice( - $result, - $query->getOffset(), - $query->getLimit() - ); - } - Benchmark::measure('Data sorted, limits applied'); - - return $result; - } - - protected function hasBeenExecuted() - { - return $this->status !== null; - } - - protected function execute($query) - { - // Reset state - $this->status = null; - $this->responseSize = null; - $this->bytesRead = 0; - - $raw = $query->toString(); - - Benchmark::measure($raw); - - // "debug" - // echo $raw . "\n
"; - $this->writeToSocket($raw); - $header = $this->readLineFromSocket(); - - if (! preg_match('~^(\d{3})\s\s*(\d+)$~', $header, $m)) { - $this->disconnect(); - throw new Exception( - sprintf('Got invalid header. First 16 Bytes: %s', $header) - ); - } - $this->status = (int) $m[1]; - $this->bytesRead = 0; - $this->responseSize = (int) $m[2]; - if ($this->status !== 200) { - // "debug" - //die(var_export($raw, 1)); - throw new Exception( - sprintf( - 'Error %d while querying livestatus: %s %s', - $this->status, - $raw, - $this->readLineFromSocket() - ) - ); - } - $this->discoverColumnHeaders($query); - } - - protected function discoverColumnHeaders($query) - { - if ($query->hasColumns()) { - $this->headers = $query->getColumnAliases(); - } else { - $this->headers = $this->splitLine($this->readLineFromSocket()); - } - } - - protected function splitLine(& $line) - { - if ($this->headers === null) { - $res = array(); - } else { - $res = new SplFixedArray(count($this->headers)); - $size = count($res); - } - $start = 0; - $col = 0; - while (false !== ($pos = strpos($line, self::FIELD_SEPARATOR, $start))) { -// TODO: safety measure for not killing the SPL. To be removed once code is clean - if ($col > $size -1) { - return $res; // ??? - } - $res[$col] = substr($line, $start, $pos - $start); - $start = $pos + 1; - $col++; - } -// TODO: safety measure for not killing the SPL. To be removed once code is clean - if ($col > $size - 1) { - return $res; - } - $res[$col] = rtrim(substr($line, $start), "\r\n"); - return $res; - } - - public function fetchRowFromSocket() - { - $line = $this->readLineFromSocket(); - if (! $line) { - return false; - } - return $this->splitLine($line); - } - - protected function readLineFromSocket() - { - if ($this->bytesRead === $this->responseSize) { - return false; - } - $maxRowLength = 100 * 1024; - $row = socket_read($this->getConnection(), $maxRowLength, PHP_NORMAL_READ); - $this->bytesRead += strlen($row); - - if ($row === false) { - $this->socketError('Failed to read next row from livestatus socket'); - } - return $row; - } - - /** - * Write given string to livestatus socket - * - * @param string $data Data string to write to the socket - * - * @return boolean - */ - protected function writeToSocket($data) - { - $res = @socket_write($this->getConnection(), $data); - if ($res === false) { - $this->socketError('Writing to livestatus socket failed'); - } - return true; - } - - /** - * Raise an exception showing given message string and last socket error - * - * TODO: Find a better exception type for such errors - * - * @throws IcingaException - */ - protected function socketError($msg) - { - throw new IcingaException( - $msg . ': ' . socket_strerror(socket_last_error($this->connection)) - ); - } - - protected function assertPhpExtensionLoaded($name) - { - if (! extension_loaded($name)) { - throw new IcingaException( - 'The extension "%s" is not loaded', - $name - ); - } - } - - protected function getConnection() - { - if ($this->connection === null) { - Benchmark::measure('Establishing livestatus connection...'); - - if ($this->socket_type === self::TYPE_TCP) { - $this->establishTcpConnection(); - Benchmark::measure('...got TCP socket'); - } else { - $this->establishSocketConnection(); - Benchmark::measure('...got local socket'); - } - } - return $this->connection; - } - - /** - * Establish a TCP socket connection - */ - protected function establishTcpConnection() - { - $this->connection = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); - if (! @socket_connect($this->connection, $this->socket_host, $this->socket_port)) { - throw new IcingaException( - 'Cannot connect to livestatus TCP socket "%s:%d": %s', - $this->socket_host, - $this->socket_port, - socket_strerror(socket_last_error($this->connection)) - ); - } - socket_set_option($this->connection, SOL_TCP, TCP_NODELAY, 1); - } - - /** - * Establish a UNIX socket connection - */ - protected function establishSocketConnection() - { - $this->connection = socket_create(AF_UNIX, SOCK_STREAM, 0); - if (! socket_connect($this->connection, $this->socket_path)) { - throw new IcingaException( - 'Cannot connect to livestatus local socket "%s"', - $this->socket_path - ); - } - } - - public function connect() - { - if (!$this->connection) { - $this->getConnection(); - } - - return $this; - } - - /** - * Disconnect in case we are connected to a Livestatus socket - * - * @return $this - */ - public function disconnect() - { - if (is_resource($this->connection) - && get_resource_type($this->connection) === 'Socket') { - Benchmark::measure('Disconnecting livestatus...'); - socket_close($this->connection); - Benchmark::measure('...socket closed'); - } - return $this; - } - - /** - * Try to cleanly close the socket on shutdown - */ - public function __destruct() - { - $this->disconnect(); - } -} diff --git a/library/Icinga/Protocol/Livestatus/Query.php b/library/Icinga/Protocol/Livestatus/Query.php deleted file mode 100644 index d60ca9dde..000000000 --- a/library/Icinga/Protocol/Livestatus/Query.php +++ /dev/null @@ -1,470 +0,0 @@ - true, - ); - - /** - * Columns to be fetched for sorting / filtering, will not be returned - */ - protected $extraFiltercolumns = array(); - - /** - * All available columns. To be overridden by specific query implementations - */ - protected $available_columns = array(); - - protected $count = false; - - /** - * Headers for columns sent to Livestatus socket - */ - protected $preparedHeaders = array(); - - public function hasColumns() - { - return $this->columns !== null; - } - - public function getColumns() - { - return $this->columns; - } - - public function withHeaders(& $row) - { - return array_combine($this->preparedHeaders, $row->toArray()); - } - - /** - * Whether the named columns value is generated by a filter expression - */ - public function isFilterFlag($column) - { - return array_key_exists($column, $this->filter_flags); - } - - // completes a given row - public function resultRow(& $row) - { - // $row -> raw SplArray - // $res -> object - // $cv -> - // $result -> object to be returned - $result = (object) array(); - $res = $this->withHeaders($row); - $cv = array(); - if (array_key_exists('custom_variables', $res)) { - foreach ($this->parseArray($res['custom_variables']) as $cvp) { - $cv[$cvp[0]] = $cvp[1]; - } - } - - $combined = array(); - - foreach ($this->columns as $alias => $col) { - if (is_int($alias)) { - $alias = $col; - } - if ($col[0] === '_') { - $result->$alias = array_key_exists($alias, $cv) ? $cv[$alias] : null; - } else { - $func = 'mungeResult_' . $col; - if (method_exists($this, $func)) { - $this->$func($res[$this->available_columns[$col]], $result); - } elseif (is_array($this->available_columns[$col])) { - $combined[$alias] = $col; - $result->$alias = null; - } else { - if (strpos($this->available_columns[$col], ' ') === false) { - $result->$alias = $res[$this->available_columns[$col]]; - } else { - $result->$alias = $res[$alias]; - } - } - } - } - // TODO: Quite some redundancy here :( - if (! $this->filterIsSupported()) { - foreach ($this->filter->listFilteredColumns() as $col) { - if ($this->isFilterFlag($col)) { - $result->$col = (string) (int) $this->filterStringToFilter( - $this->filter_flags[$col] - )->matches((object) $res); - } else { - $func = 'combineResult_' . $col; - if (method_exists($this, $func)) { - $result->$col = $this->$func($result, $res); - } - } - } - } - - foreach ($combined as $alias => $col) { - if ($this->isFilterFlag($col)) { - $result->$alias = (string) (int) $this->filterStringToFilter( - $this->filter_flags[$col] - )->matches((object) $res); - continue; - } - $func = 'combineResult_' . $col; - if (method_exists($this, $func)) { - $result->$alias = $this->$func($result, $res); - } else { - $result->$alias = implode(' - ', $this->available_columns[$col]); - } - } - - - return $result; - } - - /** - * Parse the given encoded array - * - * @param string $str the encoded array string - * - * @return array - */ - public function parseArray($str) - { - if (empty($str)) { - return array(); - } - - $result = array(); - $entries = preg_split('/,/', $str); - foreach ($entries as $e) { - $result[] = preg_split('/;/', $e); - } - - return $result; - } - - public function getColumnAliases() - { - $this->columnsToString(); - return $this->preparedHeaders; - - // TODO: Remove once no longer needed: - $aliases = array(); - $hasCustom = false; - foreach ($this->getColumns() as $key => $val) { - if ($val[0] === '_') { - $this->customvars[$val] = null; - if (! $hasCustom) { - $aliases[] = 'custom_variables'; - $hasCustom = true; - } - continue; - } - if (is_int($key)) { - $aliases[] = $val; - } else { - $aliases[] = $key; - } - } - return $aliases; - } -/* - public function count() - { - $this->count = true; - return $this; - } -*/ - - /** - * Automagic string casting - * - * @return string - */ - public function __toString() - { - try { - return $this->toString(); - } catch (Exception $e) { - trigger_error( - sprintf( - '%s in %s on line %d', - $e->getMessage(), - $e->getFile(), - $e->getLine() - ), - E_USER_ERROR - ); - } - } - - /** - * Render query string - * - * @return string - */ - public function toString() - { - if ($this->table === null) { - throw new IcingaException('Table is required'); - } - - // Headers we always send - $default_headers = array( - // Our preferred output format is CSV as it allows us to fetch and - // process the result row by row - 'OutputFormat: csv', - 'ResponseHeader: fixed16', - // Tried to find a save list of separators, this might be subject to - // change and eventually be transforment into constants - 'Separators: ' . implode(' ', array(ord("\n"), ord('`'), ord(','), ord(';'))), - // We always use the keepalive feature, connection teardown happens - // in the connection destructor - 'KeepAlive: on' - ); - $parts = array( - sprintf('GET %s', $this->table) - ); - - // Fetch all required columns - $parts[] = $this->columnsToString(); - - // In case we need to apply a userspace filter as of Livestatus lacking - // support for some of them we also need to fetch all filtered columns - if ($this->filterIsSupported() && $filter = $this->filterToString()) { - $parts[] = $filter; - } - - // TODO: Old way of rendering a count query, this should definitively be - // improved - if ($this->count === true) { - $parts[] = 'Stats: state >= 0'; - } - - // TODO: Well... ordering is still missing - if (! $this->count && $this->hasLimit() && ! $this->hasOrder()) { - $parts[] = 'Limit: ' . ($this->getLimit() + $this->getOffset()); - } - $lql = implode("\n", $parts) - . "\n" - . implode("\n", $default_headers) - . "\n\n"; - - return $lql; - } - - /** - * Get all available columns - * - * @return array - */ - public function getAvailableColumns() - { - return $this->available_columns; - } - - protected function columnsToString() - { - $columns = array(); - $this->preparedHeaders = array(); - - - $usedColumns = $this->columns; - if (! $this->filterIsSupported()) { - foreach ($this->filter->listFilteredColumns() as $col) { - if (! in_array($col, $usedColumns)) { - $usedColumns[] = $col; - } - } - } - foreach ($usedColumns as $col) { -// TODO: No alias if filter??? - if (array_key_exists($col, $this->available_columns)) { - // Alias if such - $col = $this->available_columns[$col]; - } - if ($col[0] === '_') { - $columns['custom_variables'] = true; - } elseif (is_array($col)) { - foreach ($col as $k) { - $columns[$k] = true; - } - } else { - $columns[$col] = true; - } - } - - $this->preparedHeaders = array_keys($columns); - - if ($this->count === false && $this->columns !== null) { - return 'Columns: ' . implode(' ', array_keys($columns)); - } else { - return ''; // TODO: 'Stats: state >= 0'; when count - } - } - - /** - * Whether Livestatus is able to apply the current filter - * - * TODO: find a better method name - * TODO: more granular checks, also render filter-flag columns with lql - * - * @return bool - */ - public function filterIsSupported() - { - foreach ($this->filter->listFilteredColumns() as $column) { - if (is_array($this->available_columns[$column])) { - // Combined column, hardly filterable. Is it? May work! - return false; - } - } - return true; - } - - /** - * Create a Filter object for a given URL-like filter string. We allow - * for spaces as we do not search for custom string values here. This is - * internal voodoo. - * - * @param string $string Filter string - * - * @return Filter - */ - protected function filterStringToFilter($string) - { - return Filter::fromQueryString(str_replace(' ', '', $string)); - } - - /** - * Render the current filter to LQL - * - * @return string - */ - protected function filterToString() - { - return $this->renderFilter($this->filter); - } - - /** - * Filter rendering - * - * Happens recursively, useful for filters and for Stats expressions - * - * @param Filter $filter The filter that should be rendered - * @param string $type Filter type. Usually "Filter" or "Stats" - * @param int $level Nesting level during recursion. Don't touch - * @param bool $keylookup Whether to resolve alias names - * - * @return string - */ - protected function renderFilter(Filter $filter, $type = 'Filter', $level = 0, $keylookup = true) - { - $str = ''; - if ($filter instanceof FilterChain) { - if ($filter instanceof FilterAnd) { - $op = 'And'; - } elseif ($filter instanceof FilterOr) { - $op = 'Or'; - } elseif ($filter instanceof FilterNot) { - $op = 'Negate'; - } else { - throw new IcingaException( - 'Cannot render filter: %s', - $filter - ); - } - $parts = array(); - if (! $filter->isEmpty()) { - foreach ($filter->filters() as $f) { - $parts[] = $this->renderFilter($f, $type, $level + 1, $keylookup); - } - $str .= implode("\n", $parts); - if ($type === 'Filter') { - if (count($parts) > 1) { - $str .= "\n" . $op . ': ' . count($parts); - } - } else { - $str .= "\n" . $type . $op . ': ' . count($parts); - } - } - } else { - $str .= $type . ': ' . $this->renderFilterExpression($filter, $keylookup); - } - - return $str; - } - - /** - * Produce a safe regex string as required by LQL - * - * @param string $expression search expression - * - * @return string - */ - protected function safeRegex($expression) - { - return '^' . preg_replace('/\*/', '.*', $expression) . '$'; - } - - /** - * Render a single filter expression - * - * @param FilterExpression $filter the filter expression - * @param bool $keylookup whether to resolve alias names - * - * @return string - */ - public function renderFilterExpression(FilterExpression $filter, $keylookup = true) - { - if ($keylookup) { - $col = $this->available_columns[$filter->getColumn()]; - } else { - $col = $filter->getColumn(); - } - - $isArray = array_key_exists($col, $this->arrayColumns); - - $sign = $filter->getSign(); - if ($isArray && $sign === '=') { - $sign = '>='; - } - $expression = $filter->getExpression(); - if ($sign === '=' && strpos($expression, '*') !== false) { - return $col . ' ~~ ' . $this->safeRegex($expression); - } elseif ($sign === '!=' && strpos($expression, '*') !== false) { - return $col . ' !~~ ' . $this->safeRegex($expression); - } else { - return $col . ' ' . $sign . ' ' . $expression; - } - } - - public function __destruct() - { - unset($this->connection); - } -} diff --git a/library/Icinga/Protocol/Livestatus/ResponseRow.php b/library/Icinga/Protocol/Livestatus/ResponseRow.php deleted file mode 100644 index 0d180c378..000000000 --- a/library/Icinga/Protocol/Livestatus/ResponseRow.php +++ /dev/null @@ -1,19 +0,0 @@ -raw = $raw; - $this->query = $query; - } -} diff --git a/modules/monitoring/application/forms/Config/BackendConfigForm.php b/modules/monitoring/application/forms/Config/BackendConfigForm.php index e7fdba67c..3e4a789d0 100644 --- a/modules/monitoring/application/forms/Config/BackendConfigForm.php +++ b/modules/monitoring/application/forms/Config/BackendConfigForm.php @@ -200,10 +200,6 @@ class BackendConfigForm extends ConfigForm if ($resourceType === null) { $resourceType = key($resourceTypes); - } elseif ($resourceType === 'livestatus') { - throw new ConfigurationError( - 'We\'ve disabled livestatus support for now because it\'s not feature complete yet' - ); } $this->addElement( diff --git a/modules/monitoring/application/forms/Setup/BackendPage.php b/modules/monitoring/application/forms/Setup/BackendPage.php index 56a28d106..d5c7efb1d 100644 --- a/modules/monitoring/application/forms/Setup/BackendPage.php +++ b/modules/monitoring/application/forms/Setup/BackendPage.php @@ -34,7 +34,6 @@ class BackendPage extends Form if (Platform::hasMysqlSupport() || Platform::hasPostgresqlSupport()) { $resourceTypes['ido'] = 'IDO'; } - // $resourceTypes['livestatus'] = 'Livestatus'; $this->addElement( 'select', diff --git a/modules/monitoring/application/forms/Setup/LivestatusResourcePage.php b/modules/monitoring/application/forms/Setup/LivestatusResourcePage.php deleted file mode 100644 index 42b560d17..000000000 --- a/modules/monitoring/application/forms/Setup/LivestatusResourcePage.php +++ /dev/null @@ -1,83 +0,0 @@ -setName('setup_monitoring_livestatus'); - $this->setTitle($this->translate('Monitoring Livestatus Resource', 'setup.page.title')); - $this->addDescription($this->translate( - 'Please fill out the connection details below to access the Livestatus' - . ' socket interface for your monitoring environment.' - )); - } - - public function createElements(array $formData) - { - $this->addElement( - 'hidden', - 'type', - array( - 'required' => true, - 'value' => 'livestatus' - ) - ); - - if (isset($formData['skip_validation']) && $formData['skip_validation']) { - $this->addSkipValidationCheckbox(); - } else { - $this->addElement( - 'hidden', - 'skip_validation', - array( - 'required' => true, - 'value' => 0 - ) - ); - } - - $livestatusResourceForm = new LivestatusResourceForm(); - $this->addElements($livestatusResourceForm->createElements($formData)->getElements()); - $this->getElement('name')->setValue('icinga_livestatus'); - } - - public function isValid($data) - { - if (false === parent::isValid($data)) { - return false; - } - - if (false === isset($data['skip_validation']) || $data['skip_validation'] == 0) { - if (false === LivestatusResourceForm::isValidResource($this)) { - $this->addSkipValidationCheckbox(); - return false; - } - } - - return true; - } - - /** - * Add a checkbox to the form by which the user can skip the connection validation - */ - protected function addSkipValidationCheckbox() - { - $this->addElement( - 'checkbox', - 'skip_validation', - array( - 'required' => true, - 'label' => $this->translate('Skip Validation'), - 'description' => $this->translate( - 'Check this to not to validate connectivity with the given Livestatus socket' - ) - ) - ); - } -} diff --git a/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.mo b/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.mo index e9b3ec712..27723fa65 100644 Binary files a/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.mo and b/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.mo differ diff --git a/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.po b/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.po index 05fc15ea7..f4cd56e76 100644 --- a/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.po +++ b/modules/monitoring/application/locale/pt_BR/LC_MESSAGES/monitoring.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: Monitoring Module (2.0.0~alpha4)\n" "Report-Msgid-Bugs-To: dev@icinga.com\n" "POT-Creation-Date: 2014-12-03 09:10-0200\n" -"PO-Revision-Date: 2014-12-03 09:13-0300\n" -"Last-Translator: Carlos Cesario \n" +"PO-Revision-Date: 2017-09-28 15:31+0200\n" +"Last-Translator: Michael Friedrich \n" "Language: pt_BR\n" -"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Poedit 2.0.3\n" +"Language-Team: \n" #: /usr/local/icingaweb/modules/monitoring/application/controllers/ChartController.php:278 msgid " Down Hosts (Handled)" @@ -1553,8 +1553,8 @@ msgstr "" #: /usr/local/icingaweb/modules/monitoring/application/forms/Command/Object/ScheduleServiceDowntimeCommandForm.php:73 msgid "" "If you work with other administrators, you may find it useful to share " -"information about the host or service that is having problems. Make sure " -"you enter a brief description of what you are doing." +"information about the host or service that is having problems. Make sure you " +"enter a brief description of what you are doing." msgstr "" "Se você trabalha com outros administradores, você pode achar isso útil para " "compartilhar informações sobre um host ou serviço que está tendo problemas. " @@ -1694,10 +1694,6 @@ msgstr "Listar todos" msgid "List all selected objects" msgstr "Listar todos objetos selecionados" -#: /usr/local/icingaweb/modules/monitoring/library/Monitoring/BackendStep.php:128 -msgid "Livestatus Resource" -msgstr "Recurso livestatus" - #: /usr/local/icingaweb/modules/monitoring/application/views/scripts/config/index.phtml:58 msgid "Local" msgstr "Local" diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/LivestatusBackend.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/LivestatusBackend.php deleted file mode 100644 index 1bc6b94e5..000000000 --- a/modules/monitoring/library/Monitoring/Backend/Livestatus/LivestatusBackend.php +++ /dev/null @@ -1,10 +0,0 @@ - '! fixed', - 'downtime_is_in_effect' => 'fixed | ! fixed', // just true - ); - - protected $available_columns = array( - 'downtime_author' => 'author', - 'downtime_comment' => 'comment', - 'downtime_entry_time' => 'entry_time', - 'downtime_is_fixed' => 'fixed', - 'downtime_is_flexible' => array('fixed'), - 'downtime_triggered_by_id' => 'triggered_by', - 'downtime_scheduled_start' => 'start_time', // ?? - 'downtime_scheduled_end' => 'end_time', // ?? - 'downtime_start' => 'start_time', - 'downtime_end' => 'end_time', - 'downtime_duration' => 'duration', - 'downtime_is_in_effect' => array('fixed'), - 'downtime_internal_id' => 'id', - 'downtime_host' => 'host_name', // #7278, #7279 - 'host' => 'host_name', - 'downtime_service' => 'service_description', - 'service' => 'service_description', // #7278, #7279 - 'downtime_objecttype' => array('is_service'), - 'downtime_host_state' => 'host_state', - 'downtime_service_state' => 'service_state' - ); - - public function combineResult_downtime_objecttype(& $row, & $res) - { - return $res['is_service'] ? 'service' : 'host'; - } -} diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/HostgroupQuery.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/HostgroupQuery.php deleted file mode 100644 index 5b41321bb..000000000 --- a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/HostgroupQuery.php +++ /dev/null @@ -1,19 +0,0 @@ - 'name', - 'hostgroup_name' => 'name', - 'hostgroup_alias' => 'alias', - 'host' => 'members', - 'host_name' => 'members', - ); -} diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/ServicegroupQuery.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/ServicegroupQuery.php deleted file mode 100644 index 8086750f9..000000000 --- a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/ServicegroupQuery.php +++ /dev/null @@ -1,36 +0,0 @@ - 'name', - 'servicegroup_alias' => 'alias', - 'host' => array('members'), - 'host_name' => array('members'), - 'service' => array('members'), - 'service_host_name' => array('members'), - 'service_description' => array('members'), - ); - - public function xxcombineResult_service_host_name(& $row, & $res) - { - return; - var_dump($res); - die('Here you go'); - } - - - public function completeRow(& $row) - { - die('FU'); - $row->severity = 12; - } -} diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusQuery.php deleted file mode 100644 index fcd98546b..000000000 --- a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusQuery.php +++ /dev/null @@ -1,259 +0,0 @@ -mode = $mode; - } - - protected $table = 'services'; - - protected $filter_flags = array( - 'host_handled' => 'host_state > 0 & (host_acknowledged | host_in_downtime)', - 'host_problem' => 'host_state > 0', - 'service_problem' => 'service_state > 0', - 'service_handled' => 'service_state > 0 & (host_state > 0 | service_acknowledged | service_in_downtime)', - 'service_unhandled' => 'service_state > 0 & host_state = 0 & !service_acknowledged & !service_in_downtime', - ); - - protected $available_columns = array( - 'host' => 'host_name', - 'host_name' => 'host_name', - 'host_display_name' => 'host_display_name', - 'host_alias' => 'host_alias', - 'host_address' => 'host_address', - 'host_ipv4' => 'host_address', // TODO - 'host_icon_image' => 'host_icon_image', - 'host_contacts' => 'host_contacts', - 'host_problem' => array('host_state'), - 'host_handled' => array('host_state', 'host_acknowledged', 'host_scheduled_downtime_depth'), - 'service_problem' => array('state', 'acknowledged', 'scheduled_downtime_depth'), - 'service_handled' => array('host_state', 'state', 'acknowledged', 'scheduled_downtime_depth'), - 'service_unhandled' => array('host_state', 'state', 'acknowledged', 'scheduled_downtime_depth'), - - -// 'host_unhandled_services' => 'services_with_state', // Needs handler -// 'host_unhandled_services' => 'host_services_with_state', -> bringt nix, ist [service, state, has_been_checked] - 'host_unhandled_services' => 'state', // Needs handler - - 'host_severity' => array('host_state', 'host_acknowledged', 'host_scheduled_downtime_depth'), - 'service_severity' => array('host_state', 'state', 'acknowledged', 'scheduled_downtime_depth'), - - - - - -// TODO: Make these 1 if > 1 - 'host_in_downtime' => 'host_scheduled_downtime_depth', - 'service_in_downtime' => 'scheduled_downtime_depth', - - - 'host_check_latency' => 'host_latency', - 'host_check_execution_time' => 'host_execution_time', - - 'host_long_output' => 'host_long_plugin_output', - - - 'host_passive_checks_enabled_changed' => 'state', - 'host_obsessing' => 'state', - 'host_obsessing_changed' => 'state', - 'host_notifications_enabled_changed' => 'state', - 'host_event_handler_enabled_changed' => 'state', - 'host_flap_detection_enabled_changed' => 'state', - 'host_active_checks_enabled_changed' => 'state', - -// TODO: Do we need two of them? - 'host_current_check_attempt' => 'host_current_attempt', - 'host_attempt' => 'host_current_attempt', - - 'host_modified_host_attributes' => 'host_modified_attributes', - - 'service_modified_service_attributes' => 'modified_attributes', - - 'service_notifications_enabled_changed' => 'modified_attributes_list', - 'service_active_checks_enabled_changed' => 'modified_attributes_list', - 'service_passive_checks_enabled_changed' => 'modified_attributes_list', - 'service_flap_detection_enabled_changed' => 'modified_attributes_list', - 'service_event_handler_enabled_changed' => 'modified_attributes_list', - - 'service_check_execution_time' => 'execution_time', - 'service_check_latency' => 'latency', - 'service_obsessing' => 'state', - 'service_obsessing_changed' => 'state', - - 'service_hard_state' => 'state', - - 'service_attempt' => 'current_attempt', - 'service_current_check_attempt' => 'current_attempt', - - 'host' => 'host_name', - 'service_host_name' => 'host_name', - 'service' => 'description', - 'service_is_flapping' => 'is_flapping', - 'service_long_output' => 'long_plugin_output', - - 'service_icon_image' => 'icon_image', - 'service_action_url' => 'action_url', - 'service_notes_url' => 'notes_url', - 'host_max_check_attempts' => 'host_max_check_attempts', - 'service_max_check_attempts' => 'max_check_attempts', - - // Host comments - 'host_last_comment' => 'comments_with_info', - 'host_last_ack' => 'comments_with_info', - 'host_last_downtime' => 'comments_with_info', - 'host_check_command' => 'host_check_command', - // Host state - 'host_state' => 'host_state', - 'host_state_type' => 'host_state_type', - 'host_output' => 'host_plugin_output', - 'host_perfdata' => 'host_perf_data', - 'host_acknowledged' => 'host_acknowledged', - 'host_active_checks_enabled' => 'host_active_checks_enabled', - 'host_passive_checks_enabled' => 'host_accept_passive_checks', - 'host_last_state_change' => 'host_last_state_change', - - 'host_event_handler_enabled' => 'host_event_handler_enabled', - 'host_flap_detection_enabled' => 'host_flap_detection_enabled', - 'host_current_notification_number' => 'host_current_notification_number', - 'host_percent_state_change' => 'host_percent_state_change', - 'host_process_performance_data' => 'host_process_performance_data', - 'host_event_handler_enabled' => 'host_event_handler_enabled', - 'host_flap_detection_enabled' => 'host_flap_detection_enabled', - - 'service_percent_state_change' => 'percent_state_change', - - 'host_last_notification' => 'host_last_notification', - 'host_next_check' => 'host_next_check', - 'host_check_source' => 'state', - - // Service config - 'service_description' => 'description', - 'service_display_name' => 'display_name', - - // Service state - 'service_state' => 'state', - 'service_output' => 'plugin_output', - - - 'service_state_type' => 'state_type', - - 'service_perfdata' => 'perf_data', - 'service_acknowledged' => 'acknowledged', - 'service_active_checks_enabled' => 'active_checks_enabled', - 'service_passive_checks_enabled' => 'accept_passive_checks', - 'service_last_check' => 'last_check', - 'service_last_state_change' => 'last_state_change', - 'service_notifications_enabled' => 'notifications_enabled', - 'service_last_notification' => 'last_notification', - 'service_next_check' => 'next_check', - 'service_last_time_unknown' => 'last_time_unknown', - 'service_event_handler_enabled' => 'event_handler_enabled', - - // Service comments - 'service_last_comment' => 'comments_with_info', - 'service_last_ack' => 'comments_with_info', - 'service_last_downtime' => 'comments_with_info', - 'downtimes_with_info' => 'downtimes_with_info', - 'service_check_command' => 'check_command', - 'service_check_source' => 'state', - 'service_current_notification_number' => 'current_notification_number', - 'host_is_flapping' => 'host_is_flapping', - 'host_last_check' => 'host_last_check', - 'host_notifications_enabled' => 'host_notifications_enabled', - 'host_action_url' => 'host_action_url', - 'host_notes_url' => 'host_notes_url', - 'host_last_hard_state' => 'host_last_hard_state', - 'host_last_hard_state_change' => 'host_last_hard_state_change', - 'host_last_time_up' => 'host_last_time_up', - 'host_last_time_down' => 'host_last_time_down', - 'host_last_time_unreachable' => 'host_last_time_unreachable', - 'service_last_hard_state' => 'last_hard_state', - 'service_last_hard_state_change' => 'last_hard_state_change', - 'service_last_time_ok' => 'last_time_ok', - 'service_last_time_warning' => 'last_time_warning', - 'service_last_time_critical' => 'last_time_critical', - 'service_flap_detection_enabled' => 'flap_detection_enabled', - 'service_process_performance_data' => 'process_performance_data', - ); - - public function mungeResult_custom_variables($val, & $row) - { - $notseen = $this->customvars; - foreach ($val as $cv) { - $name = '_service_' . $cv[0]; - $row->$name = $cv[1]; - unset($notseen[$name]); - } - foreach ($notseen as $k => $v) { - $row->$k = $v; - } - } - - public function mungeResult_service_last_comment($val, & $row) - { - $this->mungeResult_comments_with_info($val, $row); - } - - public function mungeResult_service_last_ack($val, & $row) - { - $this->mungeResult_comments_with_info($val, $row); - } - - public function mungeResult_service_last_downtime($val, & $row) - { - $this->mungeResult_comments_with_info($val, $row); - } - - public function mungeResult_comments_with_info($val, & $row) - { - if (empty($val)) { - $row->service_last_comment = $row->service_last_ack - = $row->service_last_downtime = null; - } else { - $row->service_last_comment = $row->service_last_ack - = $row->service_last_downtime = preg_replace('/\n/', ' ', print_r($val, 1)); - } - } - - public function mungeResult_host_unhandled_services($val, & $row) - { - $cnt = 0; - foreach ($this->parseArray($val) as $service) { - if (! isset($service[1])) { - continue; - // TODO: More research is required here, on Icinga2 I got - // array(1) { [0]=> array(1) { [0]=> string(1) "2" } } - var_dump($this->parseArray($val)); - } - if ($service[1] > 0) { - $cnt++; - } - } - $row->host_unhandled_services = $cnt; - } -} diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusSummaryQuery.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusSummaryQuery.php deleted file mode 100644 index 13b1133e4..000000000 --- a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusSummaryQuery.php +++ /dev/null @@ -1,64 +0,0 @@ - 'host_name', - - 'services_total' => 'state != 9999', - 'services_problem' => 'state > 0', - 'services_problem_handled' => 'state > 0 & (scheduled_downtime_depth > 0 | acknowledged = 1 | host_state > 0)', - 'services_problem_unhandled' => 'state > 0 & scheduled_downtime_depth = 0 & acknowledged = 0 & host_state = 0', - 'services_ok' => 'state = 0', - 'services_ok_not_checked' => 'state = 0 & accept_passive_checks = 0 & active_checks_enabled = 0', - 'services_pending' => 'has_been_checked = 0', - 'services_pending_not_checked' => 'has_been_checked = 0 & accept_passive_checks = 0 & active_checks_enabled = 0', - 'services_warning' => 'state = 1', - 'services_warning_handled' => 'state = 1 & (scheduled_downtime_depth > 0 | acknowledged = 1 | host_state > 0)', - 'services_warning_unhandled' => 'state = 1 & scheduled_downtime_depth = 0 & acknowledged = 0 & host_state = 0', - 'services_warning_passive' => 'state = 1 & accept_passive_checks = 1 & active_checks_enabled = 0', - 'services_warning_not_checked' => 'state = 1 & accept_passive_checks = 0 & active_checks_enabled = 0', - 'services_critical' => 'state = 2', - 'services_critical_handled' => 'state = 2 & (scheduled_downtime_depth > 0 | acknowledged = 1 | host_state > 0)', - 'services_critical_unhandled' => 'state = 2 & scheduled_downtime_depth = 0 & acknowledged = 0 & host_state = 0', - 'services_critical_passive' => 'state = 2 & accept_passive_checks = 1 & active_checks_enabled = 0', - 'services_critical_not_checked' => 'state = 2 & accept_passive_checks = 0 & active_checks_enabled = 0', - 'services_unknown' => 'state = 3', - 'services_unknown_handled' => 'state = 3 & (scheduled_downtime_depth > 0 | acknowledged = 1 | host_state > 0)', - 'services_unknown_unhandled' => 'state = 3 & scheduled_downtime_depth = 0 & acknowledged = 0 & host_state = 0', - 'services_unknown_passive' => 'state = 3 & accept_passive_checks = 1 & active_checks_enabled = 0', - 'services_unknown_not_checked' => 'state = 3 & accept_passive_checks = 0 & active_checks_enabled = 0', - 'services_active' => 'active_checks_enabled = 1', - 'services_passive' => 'accept_passive_checks = 1 & active_checks_enabled = 0', - 'services_not_checked' => 'active_checks_enabled = 0 & accept_passive_checks = 0', - ); - - protected function columnsToString() - { - $parts = array(); - foreach ($this->columns as $col) { - if (! array_key_exists($col, $this->available_columns)) { - throw new ProgrammingError('No such column: %s', $col); - } - $filter = $this->filterStringToFilter($this->available_columns[$col]); - - //Filter::fromQueryString(str_replace(' ', '', $this->available_columns[$col])); - $parts[] = $this->renderFilter($filter, 'Stats', 0, false); - } - $this->preparedHeaders = $this->columns; - return implode("\n", $parts); - } - - protected function renderkkFilter($filter, $type = 'Filter', $level = 0, $keylookup = true) - { - return parent::renderFilter($filter, 'Stats', $level, $keylookup); - } -} diff --git a/modules/monitoring/library/Monitoring/BackendStep.php b/modules/monitoring/library/Monitoring/BackendStep.php index 3c66db379..f87f64b2e 100644 --- a/modules/monitoring/library/Monitoring/BackendStep.php +++ b/modules/monitoring/library/Monitoring/BackendStep.php @@ -153,21 +153,6 @@ class BackendStep extends Step $resourceHtml .= '' . '' . ''; - } else { // $this->data['resourceConfig']['type'] === 'livestatus' - $resourceTitle = '

' . mt('monitoring', 'Livestatus Resource') . '

'; - $resourceHtml = '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '
' . t('Resource Name') . '' . $this->data['resourceConfig']['name'] . '
' . t('Socket') . '' . $this->data['resourceConfig']['socket'] . '
'; } return $pageTitle . '
' . $backendDescription . $resourceTitle . $resourceHtml . '
'; diff --git a/modules/monitoring/library/Monitoring/MonitoringWizard.php b/modules/monitoring/library/Monitoring/MonitoringWizard.php index 5e34fca2c..2a814ba8d 100644 --- a/modules/monitoring/library/Monitoring/MonitoringWizard.php +++ b/modules/monitoring/library/Monitoring/MonitoringWizard.php @@ -15,7 +15,6 @@ use Icinga\Module\Monitoring\Forms\Setup\BackendPage; use Icinga\Module\Monitoring\Forms\Setup\SecurityPage; use Icinga\Module\Monitoring\Forms\Setup\TransportPage; use Icinga\Module\Monitoring\Forms\Setup\IdoResourcePage; -use Icinga\Module\Monitoring\Forms\Setup\LivestatusResourcePage; use Icinga\Module\Setup\Requirement\ClassRequirement; use Icinga\Module\Setup\Requirement\PhpModuleRequirement; @@ -32,7 +31,6 @@ class MonitoringWizard extends Wizard implements SetupWizard $this->addPage(new WelcomePage()); $this->addPage(new BackendPage()); $this->addPage(new IdoResourcePage()); - $this->addPage(new LivestatusResourcePage()); $this->addPage(new TransportPage()); $this->addPage(new SecurityPage()); $this->addPage(new SummaryPage(array('name' => 'setup_monitoring_summary'))); @@ -52,7 +50,7 @@ class MonitoringWizard extends Wizard implements SetupWizard $page->setSummary($this->getSetup()->getSummary()); $page->setSubjectTitle(mt('monitoring', 'the monitoring module', 'setup.summary.subject')); } elseif ($this->getDirection() === static::FORWARD - && ($page->getName() === 'setup_monitoring_ido' || $page->getName() === 'setup_monitoring_livestatus') + && ($page->getName() === 'setup_monitoring_ido') ) { if ((($authDbResourceData = $this->getPageData('setup_auth_db_resource')) !== null && $authDbResourceData['name'] === $request->getPost('name')) @@ -85,9 +83,6 @@ class MonitoringWizard extends Wizard implements SetupWizard if ($newPage->getName() === 'setup_monitoring_ido') { $backendData = $this->getPageData('setup_monitoring_backend'); $skip = $backendData['type'] !== 'ido'; - } elseif ($newPage->getName() === 'setup_monitoring_livestatus') { - $backendData = $this->getPageData('setup_monitoring_backend'); - $skip = $backendData['type'] !== 'livestatus'; } return $skip ? $this->skipPage($newPage) : $newPage; @@ -141,9 +136,7 @@ class MonitoringWizard extends Wizard implements SetupWizard $setup->addStep( new BackendStep(array( 'backendConfig' => $pageData['setup_monitoring_backend'], - 'resourceConfig' => isset($pageData['setup_monitoring_ido']) - ? array_diff_key($pageData['setup_monitoring_ido'], array('skip_validation' => null)) - : array_diff_key($pageData['setup_monitoring_livestatus'], array('skip_validation' => null)) + 'resourceConfig' => array_diff_key($pageData['setup_monitoring_ido'], array('skip_validation' => null)) //TODO: Prefer a new backend once implemented. )) ); diff --git a/modules/monitoring/library/Monitoring/Object/Host.php b/modules/monitoring/library/Monitoring/Object/Host.php index 7c6bd5324..f96f2fa8a 100644 --- a/modules/monitoring/library/Monitoring/Object/Host.php +++ b/modules/monitoring/library/Monitoring/Object/Host.php @@ -140,9 +140,6 @@ class Host extends MonitoredObject 'host_state_type', 'instance_name' ); - if ($this->backend->getType() === 'livestatus') { - $columns[] = 'host_contacts'; - } return $this->backend->select()->from('hoststatus', $columns) ->where('host_name', $this->host); } diff --git a/modules/monitoring/library/Monitoring/Object/MonitoredObject.php b/modules/monitoring/library/Monitoring/Object/MonitoredObject.php index 1af5b8e4a..73381ddcd 100644 --- a/modules/monitoring/library/Monitoring/Object/MonitoredObject.php +++ b/modules/monitoring/library/Monitoring/Object/MonitoredObject.php @@ -315,11 +315,6 @@ abstract class MonitoredObject implements Filterable */ public function fetchComments() { - if ($this->backend->is('livestatus')) { - $this->comments = array(); - return $this; - } - $commentsView = $this->backend->select()->from('comment', array( 'author' => 'comment_author_name', 'comment' => 'comment_data', @@ -377,11 +372,6 @@ abstract class MonitoredObject implements Filterable */ public function fetchContactgroups() { - if ($this->backend->is('livestatus')) { - $this->contactgroups = array(); - return $this; - } - $contactsGroups = $this->backend->select()->from('contactgroup', array( 'contactgroup_name', 'contactgroup_alias' @@ -404,11 +394,6 @@ abstract class MonitoredObject implements Filterable */ public function fetchContacts() { - if ($this->backend->is('livestatus')) { - $this->contacts = array(); - return $this; - } - $contacts = $this->backend->select()->from('contact', array( 'contact_name', 'contact_alias', @@ -433,11 +418,6 @@ abstract class MonitoredObject implements Filterable */ public function fetchCustomvars() { - if ($this->backend->is('livestatus')) { - $this->customvars = array(); - return $this; - } - $blacklist = array(); $blacklistPattern = '';