Module: check_mk
Branch: master
Commit: 401b83ed11124698959f5ef0ee42adb4a322ec0a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=401b83ed111246…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Mar 18 15:31:46 2014 +0100
INV: add scanners for various windows SW sources
---
inventory/win_exefiles | 48 +++++++++++++++++++++++++++++++++++++
inventory/win_reg_uninstall | 48 +++++++++++++++++++++++++++++++++++++
inventory/win_wmi_software | 51 ++++++++++++++++++++++++++++++++++++++++
web/plugins/views/inventory.py | 12 ++++++----
4 files changed, 155 insertions(+), 4 deletions(-)
diff --git a/inventory/win_exefiles b/inventory/win_exefiles
new file mode 100644
index 0000000..dcc0826
--- /dev/null
+++ b/inventory/win_exefiles
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2013 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at
http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+# Example output
+# <<<win_exefiles:sep(124)>>>
+# C:\Program Files\Common Files\Microsoft Shared\MSInfo\msinfo32.exe|378880
+# C:\Program Files\Common Files\Microsoft Shared\OFFICE15\CMigrate.exe|6847704
+# C:\Program Files\Common Files\Microsoft Shared\OFFICE15\MSOXMLED.EXE|217200
+# C:\Program Files\Common Files\Microsoft
Shared\OfficeSoftwareProtectionPlatform\OSPPSVC.EXE|5132888
+
+def inv_win_exefiles(info):
+ paclist = inv_tree("software.packages:")
+ for path, size in info:
+ parts = path.split('\\')
+ entry = {
+ "name" : path,
+ "package_type" : "exe",
+ "size" : int(size),
+ }
+ paclist.append(entry)
+
+
+inv_info['win_exefiles'] = {
+ "inv_function" : inv_win_exefiles,
+}
diff --git a/inventory/win_reg_uninstall b/inventory/win_reg_uninstall
new file mode 100644
index 0000000..c437a5e
--- /dev/null
+++ b/inventory/win_reg_uninstall
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2013 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at
http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+# Example output
+# <<<win_reg_uninstall:sep(124)>>>
+# AddressBook
+# AFPL Ghostscript 8.54
+# AFPL Ghostscript Fonts
+# Connection Manager
+# DirectDrawEx
+# F-Secure Anti-Spyware
+
+def inv_win_reg_uninstall(info):
+ paclist = inv_tree("software.packages:")
+ for line in info:
+ entry = {
+ "name" : line[0],
+ "package_type" : "reg_uninstall",
+ }
+ paclist.append(entry)
+
+
+inv_info['win_reg_uninstall'] = {
+ "inv_function" : inv_win_reg_uninstall,
+}
diff --git a/inventory/win_wmi_software b/inventory/win_wmi_software
new file mode 100644
index 0000000..01eb091
--- /dev/null
+++ b/inventory/win_wmi_software
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2013 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at
http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+# Example output
+# <<<win_wmi_software:sep(124)>>>
+# 64 Bit HP CIO Components Installer|Hewlett-Packard|15.2.1
+# Adobe Flash Player 12 ActiveX|Adobe Systems Incorporated|12.0.0.70
+# Microsoft Visio 2010 Interactive Guide DEU|Microsoft|1.2.1
+# Microsoft Outlook 2010 Interactive Guide DEU|Microsoft|1.2.1
+# VMware vSphere Client 4.1|VMware, Inc.|4.1.0.17435
+# Microsoft Office Professional Plus 2010|Microsoft Corporation|14.0.7015.1000
+
+
+def inv_win_wmi_software(info):
+ paclist = inv_tree("software.packages:")
+ for pacname, vendor, version in info:
+ entry = {
+ "name" : pacname,
+ "version" : version,
+ "vendor" : vendor,
+ "package_type" : "wmi",
+ }
+ paclist.append(entry)
+
+
+inv_info['win_wmi_software'] = {
+ "inv_function" : inv_win_wmi_software,
+}
diff --git a/web/plugins/views/inventory.py b/web/plugins/views/inventory.py
index 8343c4c..50531e8 100644
--- a/web/plugins/views/inventory.py
+++ b/web/plugins/views/inventory.py
@@ -503,11 +503,14 @@ def inv_paint_bytes(b):
return "number", "%d %s" % (b, units[i])
def inv_paint_count(b):
- return "number", str(b)
+ if b == None:
+ return "", ""
+ else:
+ return "number", str(b)
def inv_paint_bytes_rounded(b):
if b == None:
- return "", _("unknown")
+ return "", ""
elif b == 0:
return "number", "0"
@@ -519,9 +522,9 @@ def inv_paint_bytes_rounded(b):
fac = fac / 1024.0
if i:
- return "number", "%.2f %s" % (b / fac, units[i])
+ return "number", "%.2f %s" % (b / fac, units[i])
else:
- return "number", "%d %s" % (b, units[0])
+ return "number", "%d %s" % (b, units[0])
def inv_paint_volt(volt):
return "number", "%.1f V" % volt
@@ -568,6 +571,7 @@ inventory_displayhints.update({
".software.packages:*.summary" : { "title" :
_("Description"), },
".software.packages:*.version" : { "title" :
_("Version"), },
".software.packages:*.package_version" : { "title" :
_("Package Version"), },
+ ".software.packages:*.size" : { "title" :
_("Size"), "paint" : "count" },
})
# TEST: create painters for node with a display hint