From ab364e0fc70475ec61abc0c83697986b64f2170a Mon Sep 17 00:00:00 2001
From: Michael Friedrich <michael.friedrich@icinga.com>
Date: Thu, 28 Sep 2017 15:36:52 +0200
Subject: [PATCH] Remove unsupported livestatus functionality

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
---
 .../files/modules/monitoring/backends.ini     |   5 -
 .../Resource/LivestatusResourceForm.php       |  86 ----
 .../forms/Config/ResourceConfigForm.php       |   4 -
 .../locale/ar_SA/LC_MESSAGES/icinga.mo        | Bin 66172 -> 65965 bytes
 .../locale/ar_SA/LC_MESSAGES/icinga.po        | 250 ++++------
 .../locale/de_DE/LC_MESSAGES/icinga.mo        | Bin 68246 -> 68075 bytes
 .../locale/de_DE/LC_MESSAGES/icinga.po        |  12 +-
 .../locale/fi_FI/LC_MESSAGES/icinga.mo        | Bin 25414 -> 25255 bytes
 .../locale/fi_FI/LC_MESSAGES/icinga.po        |  10 +-
 .../locale/it_IT/LC_MESSAGES/icinga.mo        | Bin 57011 -> 57045 bytes
 .../locale/it_IT/LC_MESSAGES/icinga.po        |  12 +-
 .../locale/pt_BR/LC_MESSAGES/icinga.mo        | Bin 27164 -> 26980 bytes
 .../locale/pt_BR/LC_MESSAGES/icinga.po        |  14 +-
 .../locale/ru_RU/LC_MESSAGES/icinga.mo        | Bin 8395 -> 8595 bytes
 .../locale/ru_RU/LC_MESSAGES/icinga.po        |  10 +-
 .../views/scripts/config/resource.phtml       |   3 -
 doc/04-Resources.md                           |   4 +-
 doc/99-Vagrant.md                             |   2 +-
 library/Icinga/Data/ResourceFactory.php       |   6 +-
 .../Icinga/Protocol/Livestatus/Connection.php | 445 -----------------
 library/Icinga/Protocol/Livestatus/Query.php  | 470 ------------------
 .../Protocol/Livestatus/ResponseRow.php       |  19 -
 .../forms/Config/BackendConfigForm.php        |   4 -
 .../application/forms/Setup/BackendPage.php   |   1 -
 .../forms/Setup/LivestatusResourcePage.php    |  83 ----
 .../locale/pt_BR/LC_MESSAGES/monitoring.mo    | Bin 59334 -> 59255 bytes
 .../locale/pt_BR/LC_MESSAGES/monitoring.po    |  16 +-
 .../Backend/Livestatus/LivestatusBackend.php  |  10 -
 .../Livestatus/Query/DowntimeQuery.php        |  45 --
 .../Livestatus/Query/HostgroupQuery.php       |  19 -
 .../Livestatus/Query/ServicegroupQuery.php    |  36 --
 .../Backend/Livestatus/Query/StatusQuery.php  | 259 ----------
 .../Livestatus/Query/StatusSummaryQuery.php   |  64 ---
 .../library/Monitoring/BackendStep.php        |  15 -
 .../library/Monitoring/MonitoringWizard.php   |  11 +-
 .../library/Monitoring/Object/Host.php        |   3 -
 .../Monitoring/Object/MonitoredObject.php     |  20 -
 37 files changed, 144 insertions(+), 1794 deletions(-)
 delete mode 100644 application/forms/Config/Resource/LivestatusResourceForm.php
 delete mode 100644 library/Icinga/Protocol/Livestatus/Connection.php
 delete mode 100644 library/Icinga/Protocol/Livestatus/Query.php
 delete mode 100644 library/Icinga/Protocol/Livestatus/ResponseRow.php
 delete mode 100644 modules/monitoring/application/forms/Setup/LivestatusResourcePage.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/LivestatusBackend.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/Query/DowntimeQuery.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/Query/HostgroupQuery.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/Query/ServicegroupQuery.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusQuery.php
 delete mode 100644 modules/monitoring/library/Monitoring/Backend/Livestatus/Query/StatusSummaryQuery.php

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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Forms\Config\Resource;
-
-use Exception;
-use Icinga\Web\Form;
-use Icinga\Application\Icinga;
-use Icinga\Data\ConfigObject;
-use Icinga\Data\ResourceFactory;
-
-/**
- * Form class for adding/modifying livestatus resources
- */
-class LivestatusResourceForm extends Form
-{
-    /**
-     * Initialize this form
-     */
-    public function init()
-    {
-        $this->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 c65cf3d7fa12c35eae8460c73a708f015432c8f6..97f8d63b1dcf218bce18da6a5261762826352619 100644
GIT binary patch
delta 11030
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
W_zbPjzW#2md;3y+S%*uF!v7E56RXGo

delta 11176
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
J{&Mxu{{zC!@B{z=

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 <munzirtaha@gmail.com>\n"
+"PO-Revision-Date: 2017-09-28 15:05+0200\n"
+"Last-Translator: Michael Friedrich <michael.friedrich@icinga.com>\n"
 "Language-Team: Arabic <trans-ar@lists.fedoraproject.org>\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 695a92a16c7ad88fd6c2f00d558d80e36ae224da..ba880eae4d69f3c49341db3a093960422b4fb4fe 100644
GIT binary patch
delta 12122
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
SPDsih_s)s*{C9tOSn+>jIz?ar

delta 12275
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

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 <markus.frosch@icinga.com>\n"
+"PO-Revision-Date: 2017-09-28 15:04+0200\n"
+"Last-Translator: Michael Friedrich <michael.friedrich@icinga.com>\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 d90fec0e094c96e6c066f78f39dbf74d094e23e7..9da39f411de21cbfb09fecfdbcca3e8289e4f141 100644
GIT binary patch
delta 6312
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
CxUO9Q

delta 6464
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

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 <mikko@peltokangas.org>\n"
+"PO-Revision-Date: 2017-09-28 15:06+0200\n"
+"Last-Translator: Michael Friedrich <michael.friedrich@icinga.com>\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 d2d2e549c3914ee66cec618c3ac11966bb3e3e0e..b1d09e8cedcff283ea457b2dc86f2607a032e383 100644
GIT binary patch
delta 11027
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
ShE6-WG%WA8Bl^&iu>Syw$%-!k

delta 10982
zcmYk?30Rd?9>?+bs^EqS0s<=D%Pxx`3Mgs`0^$;hyKNdO8o8i=TcuY^&2<{*4bv<Y
zZE;OgD@`-oro}WHQ)^O-vQcYVY_f4`%K830r{|gb`0_dDyyrd3|D5w)Xy()_4fnp%
z(0{&lqgsd0@CJ_49^Y*3IMEFqXL5o{9q02*$4S9@9E?F-948G&BmbP`{P5yojK}lX
z5gT@OoH$Iwwpfa-aS~?WJnZH;e&;z7ITZW@`(bpJ<M7X!z>ff2hkCFMBXJ)F;xS~L
z&PTTVV{A$O3Pzxl?Kr^@iOn$?bw3-!un=3(zjK?tQGx1cHnza!s1Da+XWWA~<Cj>C
zv5YzjS7RvdMs@fms@^G7WWt!{Qq007co>thxVz)@pnqpNiCo-)h4>Fth*K%N2}hx3
zuo_$8Ce%Rppd$1ZYGy}KtM+%R)59!jB5Fbf7>k2325ZpYh{S3Vjd2|Y;b!Y@)Pt|s
z`$uj5Bx;T8Q8Q`Qlfhz^^=@oKeg%f(W=zKesI|X@nm}YP;@_7<YA;iv3e{m9ZpK}h
zheHWNK0b=W@ib}xX~a1iha+t|)yU+XUC5)(Wm}%u+q63tDRQPE|D0XD{f<*Y;(Ky>
z;HEqi;`{Jc^2<;m{RGv~b-aYpjHW3D_F<!9Ft)>47>O=wlkPx8U@vM3-^KQL%9j7=
zClNwHlLE7u+M<_y7S6(9$aZkvM?Dz82GI;+Q4N=&o}YzLxD@sLW}ANln~^_fy@c8;
z|H1+2Z&2ho<s?c_Gun$<n^&+co<Qx1Z%|8f4YdgaSvN(b4Jx07O|TGk8cI<0%dC~C
zcIKiYu?*+v{I4dV^B7!gW|V*t<a?qX7>erPZd8NQ?EQJD<F*=A?^*1C`)vLss@=~~
z6S;~SSa3g69*^-l|G6X-qS2@ZDliV0pf=kMYlHq~0Hd%8<r7f5z7o~&I#lF#VG_QM
zyfmG!QA^XFcx!Lupf>X$%%gv26$!S1^Ea%)@PVd*WvETH2Q`D^n2nb)5xuvVdVR4G
z`KhSLRbx|Jjv8n!YR%W9_RvmD!S~Rw5MCvrih&%3Kx~D2<F&z|Sd1-j9X7_T*bJXX
zEzKdDe;)(LpFs`y9BKmBP)iZUk<w;OMm^v2R^qRa^ravk$Dj`vq6YFbYGymE&!akc
z5mWIHs^Lqh4u8WNFP1?j<f+)4@*-6EVAKG{TW1a;{_0=}1sicC-ihg@CL+sGd*V@y
z#l5J#aT-HBj`Ir!kq;VTA`yk^Fd5ZhHmbvZs7Tz7+6yyLOZ8{Jt*`}yDR>zbk)x<r
z=ml(nzgnBJ9-YZYpq8Q^YAs7K4ev({bPMYJa1;};9$RALVWzz{sDb<ANoXxHQ5AZj
zLOc+)1cR|Pj>0UQgz9)Bs>3bl!&9hsen!>zaCBrCs+}YZ!*mSA0%SA#oslHMDX2kJ
zScVGW22@AeF$VXd-fX8(OL7&po5Mz!CCo$(AP2i(J|<%gCgOV3b8p%53wY!Fw;X96
z?1~!M&DJ5P5KTaxj%w=zsHIwjir8vwgHK~P9zqS|Z<vnfP)isz%B+1`)Sk=2raJ$*
zBpP4=7GYl;k1J3!xq=FH{B33igHbb^h8^*7jK?>y6<)IC*HC*Q=5}6EScp-$5BuVA
z^lPod?=UlIhiV`NHG>|gkrtuWZ~!V2gHcO!J8G%MqMn<IdTt)-1+)}1(8YQ92F}Jl
z9I;wFcqi+x4hG+48XAFGqp_HS3s524j|$;MREJlw7(Ju;Ucml12)AJ_{(|i=YmA9h
zDQbZCp(e5nwS=q2_|3Q2CJMBMM^F{dpgOu}{TFI)Tt}Vf(7R126R-pM-lzsgqe5JX
z+8awzr(liEZ%6g>GOGMTzfD{~F9rWbJs44D29k(+AP03iN>ICgENXN5QO~VFEzJ&0
z#TTsg))r$;1aqy$7@_BflhCf6f?BhOP$682h4?n|yN44r&U9Fcs&|*oPqfxp7ohgk
zpHO?`QCt3mbt`JgUo?5YbC85)^bTr7U!m6SH`H21jW;9rVHWvx)Bwg=r(h=eS=be~
z;$S?7ibzJe<2;PrQG4kKs{DHlWdAwWNN7#3qt-5Df?3N{)IfTn_QWWR#d|Ojm!m?x
z2emoRV<i3)RWD$oiC9O}{cKb_1=gV$NdL|_5^CsPY>cZh0N0}i_7rLlyoiB#%=!^(
z6Mc$m_&dzU-%;<2yn9SUreF^FI_!%dV-b2QSbrtTNod5|Q5BD)UOWN!nmy1RGsw@y
zPPh{j@l))K4JMh;cEx$*$0Doe)T7!fnr!}JdH}UVKcJR8ehTqdB7chMXf*P+bT*>~
z^egtp4pWVzQM-LT>NFfiz6P9=I0BO^&9C$Gv6TFA?1kQG=I?_$k!|6uL0*2&Z_|js
zW-@BJnTa0@$?wMbconroGpo#t<Y!cfebweyv9Z{S{2J8e+=4yu9InI28Z+a4sJ(Fs
zH382IGl3XCiQW|Cpbuwa96o0A2k{X3v$zn~&NLzIFpIw%$q&aQd>b`@?@^J9=RI43
z#h8t?$V<~XiW)%j9P{Gx_a`xwf_qS#<`8NIm$4DX-)D|XG7cf%1sCHYY>Ywon^O~p
z%BQ22GzVMaP;7%^QIVR1&2g#G@6?hArJxQ&@CA&*w^3_akGEj=2h2Nu5jG@$3R~bO
z*c~roI{N0Cfe%8pGYs3}R7}C8sQ&h0vKIFp5<wLFh|Taiw#H^`WsNi%+ha0DU|(#9
zqfvY3K5HGukblSewKa%76xnp^9jGN+f;C*uZholag!v}aol)mM7ZtkR))A<XPC<qG
z0o474$mE@MsK`VvFz=K0*pqxe9FGfeGhW7UT=^iITZzpi^xy&PfUj83Vm$d@(TBc=
zOeFHHqcNKD`%%xWweGi`!C1<FMh!S>p?QJDpd#6EA@SFZJPNvCKh#>?Z(WUA!{<>;
za1_<yC2Qa!bFAV~^=`8Hkr+sR8Y<MYkOSmwz!(f?2j^qA#e_bC#2gBAe70gDp2tWG
zc-Wl#4(KD_4>gbq)E-%kjd3k1)O8q$=d2g7EBSA*5qg)HO&*ULNRFR`9vFp9a13gO
z_n?+$F?#U{RLBltFn(n3e}x**uc!e>E;VLa2cQNz4pna^W}=IE=zog@QE>v7nT}Ur
zJo#;?&GrEn;Ca;Xid}AgcN>gPkiUqHap4NHX;)bPVqJr}zuxAb!65QGkcs%610=NO
z@1ZJwh3fcQ?1=xx6iirY-i)QF`!%T0K7^g|C2WG1Q0-j7ApDOt@K5HsP}KccY@zd?
zLPBfT9doe8x*fZb{{j`dwvU)lc0<)4fPHW=D)jH--S`D+U<H3RFQ{2~octmjj>A@&
z7uz<RO8<`MFDA6pQ0I9A4#F3)9|pQ+AcHWM{KME1UqkKU6R3f-e$@Q&IvjhD--E63
zTO5q~om-I{f;yIS(SMD^MiNbN?P>~fGwL|SJZ9{P+P%Xu0&mA=ScTffb5R{_z+l{i
zdj1Xc;W?a$zhiftu*U4M4Qq&hF$Hf@pqU4)HSgv)RLHww91g=soQ>*umGuc!htFa+
z+>fRB18PF~kDGP}VhH)MsOM`?d&B=Y@mFF61!`!mbsK6k9mFtv6I<XX){CfyuA;sp
z^kvUMaDp%a*I)!5#wa|ETCyKd1G$chScso9q_v30P%K7OxC7I03aaAc*cNx9LjDfw
zxvx<JZ1JRdk;S4WGz3*|3?}0O?2p^6S5eRTd#^XgVHhfeccKp;#b|s1Q}HC`;&s#v
zb2peZ9D^gsFT~OKDUQJ&8_iyN9QAx;ovB}lTG9&ar1QU$L?HzSQ5Bs{X0xTC_CzKs
z^!=<OQ0I3%dT}y#!4;?ozKUA9lc-I57Q13S-j3m$O@yam6P^DDNoXyXV=G*3D?EdG
zHSb3a<W*D$r%`MBwaqtp%ItwQsEEa4Eaut#I8-|eP)oA}8)2=af9G)$gu>Z?;dl(&
z;g_hjzm96K_0y)KY*cwZYOf5lPQU>2vysU<^Kb~pJY$}#L7k%csK~8FzY+&X_&n@x
z)Chlh)|`gMTg-!zsF}y3I_{3`aUg1U--BxSK~%kUsCv7w1HNwW*P|l*i?!KS;;&8B
zcB@%}VW>?w20P<pn1t`3I`{##N1ARk4P{%4usP+!QOCFpHGnD%#6{Q$SD+%i3j5=;
z+lap^T%n)~Uc(qn-ELkWC8!5RqDDRiRevsOKnv~tCs9kd7qwUFQIWWYdM;>(d9FPs
zlaE79ti(@3n`Q=T&0W+;cVTnfhxvE}GqJ%=^S4_Ts)7433pZgZp1~H_@HsP(5Y$q2
zM3onz+8v5P=pREuFM`Ra5idXuq}En=9$S(>j45~wHKS`7k4<)&rR#($?~V<y9~R+2
zd;nKrFKoHnI1q`1-&sOJBj1Bsg7erIL!LLGkHT#78K`>YI2l)=BJewwVB#J#qZ+(1
z5o;}K=3B7|zJxj@M{eX<|G$z@hacDqXRM#2LUkEi;Z^K}0ektc8`u@+;p?~o^Y@vC
z>#-U6i|E52QJXyU1!D<@kbf9k(!aBogkGUrZ~|V(kvQQ+^LxNy)Mjh>l8HbPhLazP
z8h8b^#_6cNv=DXdHlYUo8Y%)GVoUrCwMoCj8^8Yt>^Bd#LmxMCF$`}<orX$ONLQgc
zdK!aqKWZTF;*ExF{yX$i-spgtX*{aE9E`$&7>VTvSbrahc@(ID4X91^9BO7KF#$hC
z4aD=Zc@xH=c5h$Q42PlyGR`^&_535)8y~{~cm{95*n?(iD-RNXt=0V$sKLdkP`RiX
z)}c1b9#n(-QT2|X>K(K9KSd3s9u@j4sON(ZnE}V3+9^b>{Q%Tny3<cWyK))o0T;XD
zQ+N}e!`rakD`o&QkhiBZ7yDr1VKbl#Y)XD6DiZV2hpSOb_7dvF^B!uTKVducH+t2q
zy$^d(a5HKkb5LJ8%g~EEZTT@&1Lv*Zp*r{-^=1q?VqW2qsK}P0W_}0ixiZw|n~p@3
z^G`w{{WGeeCsBK0H)@8jVj4Dh%`}{WeaTP6B7Dx~f5KbH_k7*_g0Tb#k>7zy_+M20
z_&3aV%e~lz{+)FsGP!Xa^@4HUG!@ctHrcyy9G=E3?D3ZQPcN0&i+nxCVTZq((D%Xq
z<VWEs+=TJ?D{26~x6Q;RU|afkwvy1McoT=>X&i_t@0f;WVgdOhn1_wtHG8877n6So
zCt<Vq%pb2au`~H6u@sNvM)V%#B;XP3jicTt{%Uv)i5xtO8c66d(?9~=OnwAz!dfiE
z?#In}o{MeC{{^*lJ24NBpd#Y=z?_Bz^pY<`g5`|IWteh;_-oU>aDs0#`~j13(uXG0
zwU|o&J=EI%j5-|!e>4B<_yeehe?lLIo#btZ+1Lj+U|;+K8)5QC=EakaTAJdIh(FPG
zHd4?S?>S}Obki`5{6bV@)?!OMf$H!x494rWJovQP-Cm5KJOkTcF?PVwI27liBKV=T
zjsJ}KPcL_%j~io9Gn|hpcmM<O0;=P0ust^a*qn-v7(sqGcETyBfv&?AxDCT`zs(=V
zuH?^RH2Q--F%74qLVqi&q1l*#&!Bei`<RGVuro&f-89r6Gsw@yrMMH-ako#+E4BzV
zfx#GwqfmQgIub#@vyem+3TkbI^*E9IOV|LtXU*4UENVb^Vi`V&i|_)r!h6q|CA$v;
z$UkDOwXVbFl-Hq_dM7s0`G3I{yo?(8>llhBP<!A4HpTy-Lfi1Xd9$@fH56@4K+Uuh
zw!<u&FSU+DZNky0=f+`B9*Ie|U^X@*KOZ&H<*1Gyv(}*=+>Rbp82{y#C!~7XxT_N4
zVt%A>D`j~K8|hHg@&4oEaZe=_c>20gi9Jg`Qv-b7#m|s9+*sEBJo6r9|K#do>x|=G
zIu|Q{<CClQ`IK;dPo1uAU1G84qI)^f>uK&bO-k}KbTgAuJ+0iklHvj)sGZ<0N-Buy
zL`qv^BiFxq?ql2j8I0#DaW5ye^CY<e9g9PXsXLN-MO;kRx$554F~bw>uIw05cAmNk
zlzq*W$+dy}0Iq>{Tom2-T;=D@luhGaM;vI&Gf9u5>`C&udX{_>t{T#%l>OocBxiX3
z;btd$L%yJFrhTrO^sR1ra&J#t_vvJBiI->o|I?lP5H61BjZZQ^+w)8TWmUH9AV!ks
zz2O9LuN~<FIM@wI85;dFseJB)Q2HnANB&#X=PP$XN`xoKU7O;K>cagmP4SJNUsErc
z>lXLJ6mLKlcZ=MsDRG`2Zd7VJPh&SbHNz9`mZv6#oTHXL-&mvEC%Kp69!vEG1oPat
z?v>P3Pct_<EuvE|@=dw);V?SgY+C<UL46+KTEpd|t)JYow7BSe?z~Ozgl&DOt+|wZ
zZ?`VZ>uK%2mNqdUgYs0jQ>U)c@ubqZ9;2Ph)G9-L@<{h{=XNTN3bSqOrgSZ(^SEv$
z-N-%HscU8qcNb8iPrWq_r*d84dV=c?E}bWRgZ$v;r+YpBb<5JdA!jMqD<&KC`P^NV
z9vYBHNsPNSy<JF4QX{DIE7$K_Y3`}?RFBW~WTb`{a_^7N-_;JEVQzj#oadTbo{{8<
zb5~|W<OWjfRqh1X+ShK>Ge0iar!HClxHXpiAopBGMAQF}>dBLx-QO|_Jnh~5&Xt~6
z_xaAD2{%zXjJwDF@7V^FZ6V)~hEC#j_i|@%_II|%Z`QZD`yE#)wLO$olTIex)ZQoS
zbZ~FVEbx5kF39wH`nYwO5#cSUp*NF0Q@L)VcJ|(5nP+?Vtf}<Pshm;en_Mxoyt<~W
zW=6HIx^mp4@*3Za>hkfv36)j8=`+f!=2T3b=$leGwW6l7O3CqMHD!A@O!tMkTNlUf
z-MV;9VQFc3)ws&4>Pp}E^2vX+F}~ve8=g^JMt9T7t9%uceO2Y-W{_0%3N^=%ia&ZN
Pn>ewea&O+z+R*<2Q_gug

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 <michael.friedrich@icinga.com>\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 e36da883956ef316623e2f13f94de23c55d51903..db366cf04f8292e8f6430a318d802fdb76202ef5 100644
GIT binary patch
delta 5619
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

delta 5763
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

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 <carloscesario@gmail.com>\n"
+"PO-Revision-Date: 2017-09-28 15:07+0200\n"
+"Last-Translator: Michael Friedrich <michael.friedrich@icinga.com>\n"
 "Language: pt_BR\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 5ca5449a17e7e51de59a8364d948ee3937a98f64..65418f3bfff61cb0d8588eb0ea720d399deeb65b 100644
GIT binary patch
delta 986
zcmXxi&u<K27{KwTZ8WTEwQ7qN<7b1+T1r!!Dza5=w9zyhmfLjq?Hal>G984ZnQ&{U
zOA~*AI5|l6P;QQXL?a|bA`%V~>7fodIEe3KwtLvmywCg2`#jJ4&Z`r1*~blaQA>?T
zx>;m}h-6zt*5VL$;RPJQd)R=VumiuNh4t%1)?g>@z{8lp^T-k@;xt}Ieg7A3#oAVp
zUAVnfBI)E|kbrJ{1$%K8Z{y3VBkM(0GJb<e{D_<JM>XC^Q0Lol16rsFk6=Fz;6A*A
zydv|c>t83MxZ?K&w16+zhJSH4CK*tJ97R2uF=R>#cmQvrcKoOspGWO%0kyH8sD*S;
zmAVHtaW`tA$0GhSJmgW2W)8K&3hG8LP!lZS1pYzY$k`Ylv4=W;3&|ySu^k^&=bvFC
z<9Dcuzv5n8!~mn@rnvJNoFVWKzhRnP(%8na_&A77_yo1U=cpTf#zVM@`#8t9)Q5S-
z_qXtU;1XWO-&M!yvX1cr(n}<7dDu^25qq%RiccbkERYcO?q*T%{3&YU54aO+x5XWH
zqMl4Q>Xl_tJI<q?h=W@AG}fU0PD`b}K3pA*2L2^e2<@Swebxk1uJ2{6#ORrvoehi=
zGPL`h(EN|tW9FKxE0#mU&QxgU0>_)0bV5JKSR-!XqGKklfxtDzfPvLpjzg)5<<N1r
z;Cdw|Rq)GwiQz%VD_wO;#?Be1OqQ(gg~qGyI$;9)q*w5ZypXYa#@#THw@(?*1aZ1i
T-xS@@I+#kQx+*uC$C~~DUdNOC

delta 785
zcmXZa%Wq9V7y$6En%*>R_3Fc=^{QM{yk8Ny5lImXqK%MfY#JMphzjvoG@O!H5Q}0}
zti?h?G!~XZZJPKC#7b-|%Ffd7bI-|Selv5<eDlrBd3t1F<ZV}LaXcb+^+dFBipzMH
zd-;SX`GsBV?~Pc^^&H|MF69L4yvz<hrV=kyxA}%Se|ulVIyShG=lY_EVU1}68Tb_s
za-R3Nq`&EXw(GYqkEpSSYq*&?eyntiEA_{j3tr_>-r-h$q7sX$oYz(>ni+SCnh6YW
z1^06kM``W2!91CVRN}d6H{UUL{G%LSWbUjYNN#K!Gm$f;=a~ynG84U3Xf!ltm`Ag~
z%<va8P>Zi}fni?Y9%jH<<`KUv-+!Pf@tLdmt$hEN-TIva&4mZKMZeB#EJihQ=O6ii
z-}#dl2mKcu6YUD8S><nLf;lMz)wqu%Jlhg+ljHhd-A{$XYa=dkN9i-R>R0SmZbfux
z>@-m40iLE3k5oR0*UY<{XWscA=EBvXhz)EocR0a3nMvlAO)-yphH{QsX5#ND&;QSf
Pn5$H-cg`K|Jyrb&Hs?po

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 <michael.friedrich@icinga.com>\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/04-Resources.md b/doc/04-Resources.md
index 5685c43e5..aa5012da5 100644
--- a/doc/04-Resources.md
+++ b/doc/04-Resources.md
@@ -6,9 +6,9 @@ different files, when the information about a data source changes.
 
 ## Configuration <a id="resources-configuration"></a>
 
-Each section in `config/resources.ini` represents a data source with the section name being the identifier used to
+Each section in `resources.ini` represents a data source with the section name being the identifier used to
 reference this specific data source. Depending on the data source type, the sections define different directives.
-The available data source types are *db*, *ldap*, *ssh* and *livestatus* which will described in detail in the following
+The available data source types are `db`, `ldap` and `ssh` which will described in detail in the following
 paragraphs.
 
 ### Database <a id="resources-configuration-database"></a>
diff --git a/doc/99-Vagrant.md b/doc/99-Vagrant.md
index 2c5e9ad6e..31df7fe17 100644
--- a/doc/99-Vagrant.md
+++ b/doc/99-Vagrant.md
@@ -21,7 +21,7 @@ Parallels requires the additional provider plugin
 
 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 @@
-<?php
-/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Protocol\Livestatus;
-
-use Icinga\Application\Benchmark;
-use Icinga\Exception\ConfigurationError;
-use Icinga\Exception\SystemPermissionException;
-use Icinga\Exception\IcingaException;
-use Exception;
-use SplFixedArray;
-
-/**
- * Backend class managing handling MKI Livestatus connections
- *
- * Usage example:
- *
- * <code>
- * $lconf = new Connection((object) array(
- *     'hostname' => 'localhost',
- *     'root_dn'  => 'dc=monitoring,dc=...',
- *     'bind_dn'  => 'cn=Mangager,dc=monitoring,dc=...',
- *     'bind_pw'  => '***'
- * ));
- * </code>
- *
- * @copyright  Copyright (c) 2013 Icinga-Web Team <info@icinga.com>
- * @author     Icinga-Web Team <info@icinga.com>
- * @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<br>";
-        $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 @@
-<?php
-/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Protocol\Livestatus;
-
-use Icinga\Data\SimpleQuery;
-use Icinga\Exception\IcingaException;
-use Icinga\Data\Filter\Filter;
-use Icinga\Data\Filter\FilterChain;
-use Icinga\Data\Filter\FilterExpression;
-use Icinga\Data\Filter\FilterOr;
-use Icinga\Data\Filter\FilterAnd;
-use Icinga\Data\Filter\FilterNot;
-use Exception;
-
-class Query extends SimpleQuery
-{
-    protected $customvars = array();
-
-    /**
-     * Columns in this array are always "combined" ones creating their value
-     * based on a filter expression. The result is always either "1" or "0"
-     */
-    protected $filter_flags = array();
-
-    /**
-     * Columns that return arrays. Will be decoded.
-     */
-    protected $arrayColumns = array(
-        'members' => 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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Protocol\Livestatus;
-
-use SplFixedArray;
-
-class ResponseRow
-{
-    protected $raw;
-
-    protected $query;
-
-    public function __construct(SplFixedArray $raw, Query $query)
-    {
-        $this->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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Forms\Setup;
-
-use Icinga\Web\Form;
-use Icinga\Forms\Config\Resource\LivestatusResourceForm;
-
-class LivestatusResourcePage extends Form
-{
-    public function init()
-    {
-        $this->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 e9b3ec712338d2df87b2677ab0c6046caa18c028..27723fa659295f9217cb867ac39bc36286e8e44c 100644
GIT binary patch
delta 14378
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

delta 14421
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

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 <carloscesario@gmail.com>\n"
+"PO-Revision-Date: 2017-09-28 15:31+0200\n"
+"Last-Translator: Michael Friedrich <michael.friedrich@icinga.com>\n"
 "Language: pt_BR\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus;
-
-use Icinga\Module\Monitoring\Backend\MonitoringBackend;
-
-class LivestatusBackend extends MonitoringBackend
-{
-}
diff --git a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/DowntimeQuery.php b/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/DowntimeQuery.php
deleted file mode 100644
index 3bbbdea4b..000000000
--- a/modules/monitoring/library/Monitoring/Backend/Livestatus/Query/DowntimeQuery.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus\Query;
-
-use Icinga\Protocol\Livestatus\Query;
-
-// TODO: still VERRRRY ugly
-class DowntimeQuery extends Query
-{
-    protected $table = 'downtimes';
-
-    protected $filter_flags = array(
-        'downtime_is_flexible'      => '! 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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus\Query;
-
-use Icinga\Protocol\Livestatus\Query;
-
-class HostgroupQuery extends Query
-{
-    protected $table = 'hostgroups';
-
-    protected $available_columns = array(
-        'hostgroups'      => '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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus\Query;
-
-use Icinga\Protocol\Livestatus\Query;
-
-// SHITTY IT IS
-class ServicegroupQuery extends Query
-{
-    protected $table = 'servicegroups';
-
-    protected $available_columns = array(
-        'servicegroup_name'   => '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 @@
-<?php
-/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus\Query;
-
-use Icinga\Protocol\Livestatus\Query;
-
-class StatusQuery extends Query
-{
-    /**
-     * This mode represents whether we are in HostStatus or ServiceStatus
-     *
-     * Implemented for `distinct as workaround
-     *
-     * @TODO Subject to change, see #7344
-     *
-     * @var string
-     */
-    protected $mode;
-
-    /**
-     * Sets the mode of the current query
-     *
-     * @TODO Subject to change, see #7344
-     *
-     * @param string $mode
-     */
-    public function setMode($mode)
-    {
-        $this->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 @@
-<?php
-/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
-
-namespace Icinga\Module\Monitoring\Backend\Livestatus\Query;
-
-use Icinga\Protocol\Livestatus\Query;
-use Icinga\Exception\ProgrammingError;
-
-class StatusSummaryQuery extends Query
-{
-    protected $table = 'services';
-
-    protected $available_columns = array(
-    'service_host_name' => '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 .= ''
                 . '</tbody>'
                 . '</table>';
-        } else { // $this->data['resourceConfig']['type'] === 'livestatus'
-            $resourceTitle = '<h3>' . mt('monitoring', 'Livestatus Resource') . '</h3>';
-            $resourceHtml = ''
-                . '<table>'
-                . '<tbody>'
-                . '<tr>'
-                . '<td><strong>' . t('Resource Name') . '</strong></td>'
-                . '<td>' . $this->data['resourceConfig']['name'] . '</td>'
-                . '</tr>'
-                . '<tr>'
-                . '<td><strong>' . t('Socket') . '</strong></td>'
-                . '<td>' . $this->data['resourceConfig']['socket'] . '</td>'
-                . '</tr>'
-                . '</tbody>'
-                . '</table>';
         }
 
         return $pageTitle . '<div class="topic">' . $backendDescription . $resourceTitle . $resourceHtml . '</div>';
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 = '';