From 8522670ac44513b364de9e0e47e3b65615a53407 Mon Sep 17 00:00:00 2001 From: OMD site cmk16x <thl-cmk@outlook.com> Date: Mon, 10 Aug 2020 21:58:46 +0200 Subject: [PATCH] update project --- inv_cisco_support.mkp | Bin 38943 -> 39538 bytes inventory/snmp_cisco_bug | 17 + inventory/snmp_cisco_suggestion | 3 + lib/nagios/plugins/cisco_api_status | 13 +- packages/inv_cisco_support | 7 +- web/plugins/views/inv_cisco_support.py | 642 ++++++++++++++----------- 6 files changed, 384 insertions(+), 298 deletions(-) diff --git a/inv_cisco_support.mkp b/inv_cisco_support.mkp index a96518aba99b6e0f98df55f25f215e457596d702..9601232b11de5d64a013a4c50a567d4fd0d458e4 100644 GIT binary patch delta 39299 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Ξ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 L<#Uus43z%?@k>b_ delta 38703 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 diff --git a/inventory/snmp_cisco_bug b/inventory/snmp_cisco_bug index 624679f..fff058f 100644 --- a/inventory/snmp_cisco_bug +++ b/inventory/snmp_cisco_bug @@ -69,6 +69,21 @@ def inv_cisco_bug(info, params): return version, pid + def get_bug_status(bug_status): + _bug_status = { + 'F': 'Fixed', + 'O': 'Open', + 'T': 'Terminated' + } + return _bug_status.get(bug_status, bug_status) + + def get_bug_behavior_changed(behavior_changed): + _behavior_changed = { + 'Y': 'yes', + 'N': 'no', + } + return _behavior_changed.get(behavior_changed, behavior_changed) + set_loglevel() # disable_bug = False @@ -159,6 +174,8 @@ def inv_cisco_bug(info, params): bug_ids.append(bug.get('bug_id')) #bug['known_fixed_releases'] = bug['known_fixed_releases'].split(' ') #bug['known_affected_releases'] = bug['known_affected_releases'].split(' ') + bug['status'] = get_bug_status(bug['status']) + bug['behavior_changed'] = get_bug_behavior_changed(bug['behavior_changed']) logging.info('remove columns: %s' % optionalcolumns) if optionalcolumns is not None: for column in optionalcolumns: diff --git a/inventory/snmp_cisco_suggestion b/inventory/snmp_cisco_suggestion index 3d570d6..b0e8b53 100644 --- a/inventory/snmp_cisco_suggestion +++ b/inventory/snmp_cisco_suggestion @@ -124,6 +124,9 @@ def create_suggested_record(pidfile, optionalcolumns): def inv_cisco_suggestion(info, params): + # disabled till display hints will work with tables in tables :-( + # ToDo: recreate rendering of tables in tables + return set_loglevel() # list of PIDs to drop diff --git a/lib/nagios/plugins/cisco_api_status b/lib/nagios/plugins/cisco_api_status index bec335c..b5323bb 100755 --- a/lib/nagios/plugins/cisco_api_status +++ b/lib/nagios/plugins/cisco_api_status @@ -1,13 +1,11 @@ #!/usr/bin/python # encoding: utf-8 + +# Monitor Cisco API plugins for CheckMK +# Author: thl-cmk[al]outlook[dot]com # -# License: GNU General Public License v2 -# -# Author: thl-cmk[at]outlook[dot]com -# URL : https://thl-cmk.hopto.org -# -# 2020-03-15: changed getopt to argparse # +# 15.03.2020: changed getopt to argparse import os import argparse @@ -461,4 +459,5 @@ def main(): sys.stdout.write(output + '\n' + long_output) sys.exit(status) -main() \ No newline at end of file +main() + diff --git a/packages/inv_cisco_support b/packages/inv_cisco_support index 64bf31c..94b1cae 100644 --- a/packages/inv_cisco_support +++ b/packages/inv_cisco_support @@ -28,6 +28,7 @@ 'name': 'inv_cisco_support', 'num_files': 24, 'title': u'Inventory for Cisco Bug, EoX, contract status, PSIRT advisories and suggested software', - 'version': '20190830.v0.0.11', - 'version.min_required': '1.4.0p1', - 'version.packaged': '1.4.0p38'} \ No newline at end of file + 'version': '20200810.v0.0.12', + 'version.min_required': '1.6.0', + 'version.packaged': '1.6.0p12', + 'version.usable_until': None} \ No newline at end of file diff --git a/web/plugins/views/inv_cisco_support.py b/web/plugins/views/inv_cisco_support.py index b41a890..5f64ef9 100644 --- a/web/plugins/views/inv_cisco_support.py +++ b/web/plugins/views/inv_cisco_support.py @@ -14,9 +14,79 @@ # (https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuh91645) # -import random +# import random # needed for quickinfo tables +import time + +from cmk.gui.plugins.views.inventory import ( + declare_invtable_view, + decorate_inv_paint, +) +from cmk.gui.plugins.visuals.inventory import ( + FilterInvtableText, +) +from cmk.gui.i18n import _ +# +# ToDo: move painters to local tree +# painters are at the moment hard coded in lib/python/cmk/gui/plugins/views/inventory.py +# +# from cmk.gui.plugins.views.inventory import ( +# declare_invtable_view, +# decorate_inv_paint, +# ) +# +# import time +# +# from cmk.utils.regex import regex +# import cmk.utils.defines as defines +# import cmk.utils.render +# +# import cmk.gui.pages +# import cmk.gui.config as config +# import cmk.gui.sites as sites +# import cmk.gui.inventory as inventory +# from cmk.gui.i18n import _ +# from cmk.gui.globals import html, current_app +# from cmk.gui.htmllib import HTML +# from cmk.gui.valuespec import Dictionary, Checkbox, Hostname +# from cmk.gui.exceptions import MKUserError +# +# from cmk.gui.plugins.visuals import ( +# filter_registry, +# VisualInfo, +# visual_info_registry, +# ) +# from cmk.gui.plugins.visuals.inventory import ( +# FilterInvText, +# FilterInvBool, +# FilterInvFloat, +# FilterInvtableText, +# FilterInvtableIDRange, +# ) +# +# from cmk.gui.plugins.views import ( +# data_source_registry, +# DataSource, +# RowTable, +# painter_registry, +# Painter, +# register_painter, +# register_sorter, +# display_options, +# painter_option_registry, +# PainterOption, +# PainterOptions, +# inventory_displayhints, +# multisite_builtin_views, +# view_is_enabled, +# paint_age, +# declare_1to1_sorter, +# cmp_simple_number, +# render_labels, +# ) + +@decorate_inv_paint def inv_paint_date_status(date_string): warn_days = -90 @@ -41,39 +111,32 @@ def inv_paint_date_status(date_string): return css_class, '%s' % date_string +@decorate_inv_paint def inv_paint_last_checked_status(date_string): - warn_days = 32 crit_days = 40 - - # check if date_sting not None, if so return no CSS Class and None if date_string is None: return '', '' - - # check if _date_string in the right format, if not return CSS Class and date_string try: days = int((time.time() - time.mktime(time.strptime(date_string, '%Y-%m-%d'))) / 86400) except ValueError: return '', date_string - - # last_checked is ok if days <= warn_days: css_class = '' - # no refresh for far to long elif days >= crit_days: css_class = 'date_crit' - # no refresh for to long else: css_class = 'date_warn' - # css_class = '' return css_class, ' %s' % date_string +@decorate_inv_paint def inv_paint_psirt_advisoryId(advisoryId): psirt_url = '<a class="href_blue" target="_blank" href="https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/%s">%s</a>' % (advisoryId, advisoryId) return '', psirt_url +@decorate_inv_paint def inv_paint_eox_eolid(eolid): if eolid is not None: search_eolid_url = '<a class="href_blue" target="_blank" href="https://search.cisco.com/search?query=%s">%s</a>' % (eolid, eolid) @@ -82,259 +145,258 @@ def inv_paint_eox_eolid(eolid): return '', search_eolid_url -def render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node): - # In delta mode node is a pair of (old_items, new_items) - if type(node) == tuple: - html.write(_("Removed entries") + ":") - html.write("<span class=invold>") - render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node[0]) - html.write("</span>") - - html.write(_("New entries") + ":") - html.write("<span class=invnew>") - render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node[1]) - html.write("</span>") - return - - hint = inv_display_hint(invpath) - keyorder = hint.get("keyorder", []) # well known keys - - # Add titles for those keys - titles = [] - for key in keyorder: - invpath_sub = invpath + "0." + key - icon, title = inv_titleinfo(invpath_sub, None) - sub_hint = inv_display_hint(invpath_sub) - short_title = sub_hint.get("short", title) - titles.append((short_title, key)) - - # Determine *all* keys, in order to find unknown ones - keys = set([]) - for entry in node: - keys.update(entry.keys()) - - # Order not well-known keys alphabetically - extratitles = [] - for key in keys: - if key not in keyorder: - icon, title = inv_titleinfo(invpath + "0." + key, None) - extratitles.append((title, key)) - extratitles.sort() - titles += extratitles - - # Link to Multisite view with exactly this table - if "view" in hint: - url = html.makeuri_contextless([ - ("view_name", hint["view"] ), - ("host", hostname)], - filename="view.py") - html.write('<div class=invtablelink><a href="%s">%s</a></div>' % - (url, _("Open this table for filtering / sorting"))) - - # We cannot use table here, since html.plug() does not work recursively - html.write('<table class=data>') - html.write('<tr>') - for title, key in titles: - html.write('<th>%s</th>' % title) - html.write('</tr>') - - for nr, entry in enumerate(node): - html.write('<tr class=even0>') - for title, key in titles: - value = entry.get(key) - invpath_sub = invpath + "%d.%s" % (nr, key) - if type(value) == dict: - invpath_sub += "." - elif type(value) == list or (type(value) == tuple and type(value[0]) == list): - invpath_sub += ":" - - hint = inv_display_hint(invpath_sub) - if "paint_function" in hint: - td_class, text = hint["paint_function"](value) - classtext = ' class="%s"' % td_class - else: - classtext = "" - - html.write('<td%s>' % classtext) -# render_inv_subtree(hostname, tree_id, invpath_sub, value) - # render suggestions as not foldable - if key == 'suggestion' and type(value) == list: - render_inv_subtree_container(hostname, tree_id, invpath_sub, value) - else: - render_inv_subtree(hostname, tree_id, invpath_sub, value) - html.write('</td>') - html.write('</tr>') - html.write('</table>') - - -def render_inv_dicttable_suggestion(hostname, tree_id, invpath, node): - # In delta mode node is a pair of (old_items, new_items) - if type(node) == tuple: - html.write(_("Removed entries") + ":") - html.write("<span class=invold>") - render_inv_dicttable_suggestion(hostname, tree_id, invpath, node[0]) - html.write("</span>") - - html.write(_("New entries") + ":") - html.write("<span class=invnew>") - render_inv_dicttable_suggestion(hostname, tree_id, invpath, node[1]) - html.write("</span>") - return - - hint = inv_display_hint(invpath) - keyorder = hint.get("keyorder", []) # well known keys - - # Add titles for those keys - titles = [] - for key in keyorder: - invpath_sub = invpath + "0." + key - icon, title = inv_titleinfo(invpath_sub, None) - sub_hint = inv_display_hint(invpath_sub) - short_title = sub_hint.get("short", title) - titles.append((short_title, key)) - - # Determine *all* keys, in order to find unknown ones - keys = set([]) - for entry in node: - keys.update(entry.keys()) - - # Order not well-known keys alphabetically - extratitles = [] - for key in keys: - if key not in keyorder: - icon, title = inv_titleinfo(invpath + "0." + key, None) - extratitles.append((title, key)) - extratitles.sort() - titles += extratitles - - # Link to Multisite view with exactly this table - if "view" in hint: - url = html.makeuri_contextless([ - ("view_name", hint["view"] ), - ("host", hostname)], - filename="view.py") - html.write('<div class=invtablelink><a href="%s">%s</a></div>' % - (url, _("Open this table for filtering / sorting"))) - - # - # Th.L.: insert jscript for quickfilter - # - qfurl = html.makeuri([],filename="TableFilter/tablefilter.js", delvars=["host","selection","site","view_name"]) - html.write('<script language="javascript" type="text/javascript" src="%s"></script>' % qfurl) - - # Th.L.: create random table id - qf_table_id = "qf_id_" + "".join(random.SystemRandom().choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') for _ in range(10)) - - # We cannot use table here, since html.plug() does not work recursively - # html.write('<table class=data>') - html.write('<table id=%s class=data>' % qf_table_id) - # html.write('<tr>') - html.write('<thead><tr>') # Th.L.: added thead for quickfilter (sort) - for title, key in titles: - html.write('<th>%s</th>' % title) - #html.write('</tr>') - html.write('</tr></thead><tbody>') # Th.L.: added thead and tbody for quickfilter (sort) - - for nr, entry in enumerate(node): - html.write('<tr class=even0>') - for title, key in titles: - value = entry.get(key) - invpath_sub = invpath + "%d.%s" % (nr, key) - if type(value) == dict: - invpath_sub += "." - elif type(value) == list or (type(value) == tuple and type(value[0]) == list): - invpath_sub += ":" - - hint = inv_display_hint(invpath_sub) - if "paint_function" in hint: - td_class, text = hint["paint_function"](value) - classtext = ' class="%s"' % td_class - else: - classtext = "" - - html.write('<td%s>' % classtext) -# render_inv_subtree(hostname, tree_id, invpath_sub, value) - # render suggestions as not foldable - if key == 'suggestion' and type(value) == list: - render_inv_subtree_container(hostname, tree_id, invpath_sub, value) - else: - render_inv_subtree(hostname, tree_id, invpath_sub, value) - html.write('</td>') - html.write('</tr>') - #html.write('</table>') - html.write('</tbody></table>') # Th.L.: added tbody for quickfilter (sort) - - # - # Th.L.: add jscript for quickfilter - # - html.write('<script data-config>\n') - html.write(' var filtersConfig = {\n') - html.write(' base_path: "TableFilter/",\n') - html.write(' alternate_rows: true,\n') - html.write(' rows_counter: true,\n') - html.write(' btn_reset: true,\n') - html.write(' bnt_reset_text: "Clear all",\n') - html.write(' loader: true,\n') - html.write(' status_bar: true,\n') - html.write(' status_bar_text : "status:",\n') - html.write(' loader : true,\n') - html.write(' mark_active_columns: true,\n') - html.write(' highlight_keywords: true,\n') - html.write(' auto_filter: true,\n') - html.write(' auto_filter_delay: 100,\n') - html.write(' paging: true,\n') - html.write(' mark_active_columns: true,\n') - html.write(' results_per_page: [" Results per page",[10,25,50,100,250,500,1000]],\n') - html.write(' no_results_message: true,\n') - html.write(' extensions:[{ name: "sort"},\n') - html.write(' { name: "colsVisibility",\n') - html.write(' tick_to_hide: false,\n') - html.write(' at_start: [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],\n') - html.write(' text: "Displayed columns: ",\n') - html.write(' enable_tick_all: true,\n') - html.write(' btn_html: "<button>Columns manager ▼</button>",\n') - html.write(' btn_close_html: "<button>Close</button>",\n') - html.write(' enable_hover: false,\n') - html.write(' },\n') -# html.write(' {name: "filtersVisibility"} - html.write(' ]\n') - html.write(' };\n') - html.write('\n') - html.write(' var tf = new TableFilter("%s", filtersConfig);\n' % qf_table_id) - html.write(' tf.init();\n') - html.write('\n') - html.write('</script>\n') - - -def inv_paint_bug_status(bug_status): - _bug_status = { - 'F': 'Fixed', - 'O': 'Open', - 'T': 'Terminated' - } - return '', _bug_status.get(bug_status, bug_status) - - -def inv_paint_bug_behavior_changed(behavior_changed): - _behavior_changed = { - 'Y': 'yes', - 'N': 'no', - } - return '', _behavior_changed.get(behavior_changed, behavior_changed) - - +@decorate_inv_paint def inv_paint_bug_bugid(bugid): if bugid is not None: search_bugid_url = '<a class="href_blue" target="_blank" href="https://bst.cloudapps.cisco.com/bugsearch/bug/%s">%s</a>' % (bugid, bugid) else: - search_eolid_url = '' + search_bugid_url = '' return '', search_bugid_url +# def render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node): +# # In delta mode node is a pair of (old_items, new_items) +# if type(node) == tuple: +# html.write(_("Removed entries") + ":") +# html.write("<span class=invold>") +# render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node[0]) +# html.write("</span>") +# +# html.write(_("New entries") + ":") +# html.write("<span class=invnew>") +# render_inv_dicttable_suggestion_noqf(hostname, tree_id, invpath, node[1]) +# html.write("</span>") +# return +# +# hint = inv_display_hint(invpath) +# keyorder = hint.get("keyorder", []) # well known keys +# +# # Add titles for those keys +# titles = [] +# for key in keyorder: +# invpath_sub = invpath + "0." + key +# icon, title = inv_titleinfo(invpath_sub, None) +# sub_hint = inv_display_hint(invpath_sub) +# short_title = sub_hint.get("short", title) +# titles.append((short_title, key)) +# +# # Determine *all* keys, in order to find unknown ones +# keys = set([]) +# for entry in node: +# keys.update(entry.keys()) +# +# # Order not well-known keys alphabetically +# extratitles = [] +# for key in keys: +# if key not in keyorder: +# icon, title = inv_titleinfo(invpath + "0." + key, None) +# extratitles.append((title, key)) +# extratitles.sort() +# titles += extratitles +# +# # Link to Multisite view with exactly this table +# if "view" in hint: +# url = html.makeuri_contextless([ +# ("view_name", hint["view"] ), +# ("host", hostname)], +# filename="view.py") +# html.write('<div class=invtablelink><a href="%s">%s</a></div>' % +# (url, _("Open this table for filtering / sorting"))) +# +# # We cannot use table here, since html.plug() does not work recursively +# html.write('<table class=data>') +# html.write('<tr>') +# for title, key in titles: +# html.write('<th>%s</th>' % title) +# html.write('</tr>') +# +# for nr, entry in enumerate(node): +# html.write('<tr class=even0>') +# for title, key in titles: +# value = entry.get(key) +# invpath_sub = invpath + "%d.%s" % (nr, key) +# if type(value) == dict: +# invpath_sub += "." +# elif type(value) == list or (type(value) == tuple and type(value[0]) == list): +# invpath_sub += ":" +# +# hint = inv_display_hint(invpath_sub) +# if "paint_function" in hint: +# td_class, text = hint["paint_function"](value) +# classtext = ' class="%s"' % td_class +# else: +# classtext = "" +# +# html.write('<td%s>' % classtext) +# # render_inv_subtree(hostname, tree_id, invpath_sub, value) +# # render suggestions as not foldable +# if key == 'suggestion' and type(value) == list: +# render_inv_subtree_container(hostname, tree_id, invpath_sub, value) +# else: +# render_inv_subtree(hostname, tree_id, invpath_sub, value) +# html.write('</td>') +# html.write('</tr>') +# html.write('</table>') +# +# +# def render_inv_dicttable_suggestion(hostname, tree_id, invpath, node): +# # In delta mode node is a pair of (old_items, new_items) +# if type(node) == tuple: +# html.write(_("Removed entries") + ":") +# html.write("<span class=invold>") +# render_inv_dicttable_suggestion(hostname, tree_id, invpath, node[0]) +# html.write("</span>") +# +# html.write(_("New entries") + ":") +# html.write("<span class=invnew>") +# render_inv_dicttable_suggestion(hostname, tree_id, invpath, node[1]) +# html.write("</span>") +# return +# +# hint = inv_display_hint(invpath) +# keyorder = hint.get("keyorder", []) # well known keys +# +# # Add titles for those keys +# titles = [] +# for key in keyorder: +# invpath_sub = invpath + "0." + key +# icon, title = inv_titleinfo(invpath_sub, None) +# sub_hint = inv_display_hint(invpath_sub) +# short_title = sub_hint.get("short", title) +# titles.append((short_title, key)) +# +# # Determine *all* keys, in order to find unknown ones +# keys = set([]) +# for entry in node: +# keys.update(entry.keys()) +# +# # Order not well-known keys alphabetically +# extratitles = [] +# for key in keys: +# if key not in keyorder: +# icon, title = inv_titleinfo(invpath + "0." + key, None) +# extratitles.append((title, key)) +# extratitles.sort() +# titles += extratitles +# +# # Link to Multisite view with exactly this table +# if "view" in hint: +# url = html.makeuri_contextless([ +# ("view_name", hint["view"] ), +# ("host", hostname)], +# filename="view.py") +# html.write('<div class=invtablelink><a href="%s">%s</a></div>' % +# (url, _("Open this table for filtering / sorting"))) +# +# # +# # Th.L.: insert jscript for quickfilter +# # +# qfurl = html.makeuri([],filename="TableFilter/tablefilter.js", delvars=["host","selection","site","view_name"]) +# html.write('<script language="javascript" type="text/javascript" src="%s"></script>' % qfurl) +# +# # Th.L.: create random table id +# qf_table_id = "qf_id_" + "".join(random.SystemRandom().choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') for _ in range(10)) +# +# # We cannot use table here, since html.plug() does not work recursively +# # html.write('<table class=data>') +# html.write('<table id=%s class=data>' % qf_table_id) +# # html.write('<tr>') +# html.write('<thead><tr>') # Th.L.: added thead for quickfilter (sort) +# for title, key in titles: +# html.write('<th>%s</th>' % title) +# #html.write('</tr>') +# html.write('</tr></thead><tbody>') # Th.L.: added thead and tbody for quickfilter (sort) +# +# for nr, entry in enumerate(node): +# html.write('<tr class=even0>') +# for title, key in titles: +# value = entry.get(key) +# invpath_sub = invpath + "%d.%s" % (nr, key) +# if type(value) == dict: +# invpath_sub += "." +# elif type(value) == list or (type(value) == tuple and type(value[0]) == list): +# invpath_sub += ":" +# +# hint = inv_display_hint(invpath_sub) +# if "paint_function" in hint: +# td_class, text = hint["paint_function"](value) +# classtext = ' class="%s"' % td_class +# else: +# classtext = "" +# +# html.write('<td%s>' % classtext) +# # render_inv_subtree(hostname, tree_id, invpath_sub, value) +# # render suggestions as not foldable +# if key == 'suggestion' and type(value) == list: +# render_inv_subtree_container(hostname, tree_id, invpath_sub, value) +# else: +# render_inv_subtree(hostname, tree_id, invpath_sub, value) +# html.write('</td>') +# html.write('</tr>') +# #html.write('</table>') +# html.write('</tbody></table>') # Th.L.: added tbody for quickfilter (sort) +# +# # +# # Th.L.: add jscript for quickfilter +# # +# html.write('<script data-config>\n') +# html.write(' var filtersConfig = {\n') +# html.write(' base_path: "TableFilter/",\n') +# html.write(' alternate_rows: true,\n') +# html.write(' rows_counter: true,\n') +# html.write(' btn_reset: true,\n') +# html.write(' bnt_reset_text: "Clear all",\n') +# html.write(' loader: true,\n') +# html.write(' status_bar: true,\n') +# html.write(' status_bar_text : "status:",\n') +# html.write(' loader : true,\n') +# html.write(' mark_active_columns: true,\n') +# html.write(' highlight_keywords: true,\n') +# html.write(' auto_filter: true,\n') +# html.write(' auto_filter_delay: 100,\n') +# html.write(' paging: true,\n') +# html.write(' mark_active_columns: true,\n') +# html.write(' results_per_page: [" Results per page",[10,25,50,100,250,500,1000]],\n') +# html.write(' no_results_message: true,\n') +# html.write(' extensions:[{ name: "sort"},\n') +# html.write(' { name: "colsVisibility",\n') +# html.write(' tick_to_hide: false,\n') +# html.write(' at_start: [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],\n') +# html.write(' text: "Displayed columns: ",\n') +# html.write(' enable_tick_all: true,\n') +# html.write(' btn_html: "<button>Columns manager ▼</button>",\n') +# html.write(' btn_close_html: "<button>Close</button>",\n') +# html.write(' enable_hover: false,\n') +# html.write(' },\n') +# # html.write(' {name: "filtersVisibility"} +# html.write(' ]\n') +# html.write(' };\n') +# html.write('\n') +# html.write(' var tf = new TableFilter("%s", filtersConfig);\n' % qf_table_id) +# html.write(' tf.init();\n') +# html.write('\n') +# html.write('</script>\n') + + +# def inv_paint_bug_status(bug_status): +# _bug_status = { +# 'F': 'Fixed', +# 'O': 'Open', +# 'T': 'Terminated' +# } +# return '', _bug_status.get(bug_status, bug_status) +# +# +# def inv_paint_bug_behavior_changed(behavior_changed): +# _behavior_changed = { +# 'Y': 'yes', +# 'N': 'no', +# } +# return '', _behavior_changed.get(behavior_changed, behavior_changed) + +# EoX display hints inventory_displayhints.update({ - # EoX display hints '.hardware.support.cisco_eox:': {'title': _('Cisco EoX status'), - 'render': render_inv_dicttable, 'keyorder': ['pid', 'serial_number', 'ProductIDDescription', 'Last_checked', 'EOXExternalAnnouncementDate', 'EndOfSaleDate', 'LastDateOfSupport', 'EndOfSvcAttachDate', 'UpdatedTimeStamp', @@ -345,26 +407,26 @@ inventory_displayhints.update({ '.hardware.support.cisco_eox:*.pid': {'title': _('PID (EoX)'), }, '.hardware.support.cisco_eox:*.serial_number': {'title': _('Serial number'), }, '.hardware.support.cisco_eox:*.ProductIDDescription': {'title': _('Description'), }, - '.hardware.support.cisco_eox:*.EOXExternalAnnouncementDate': {'title': _('EOL Announcement'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.EndOfSaleDate': {'title': _('End of sale'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.EndOfSvcAttachDate': {'title': _('End of service attachment'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.LastDateOfSupport': {'title': _('End of support'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.ProductBulletinNumber': {'title': _('EOL bulletin ID'), 'paint': 'eox_eolid', 'filter': visuals.FilterInvtableText, }, + '.hardware.support.cisco_eox:*.EOXExternalAnnouncementDate': {'title': _('EOL Announcement'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.EndOfSaleDate': {'title': _('End of sale'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.EndOfSvcAttachDate': {'title': _('End of service attachment'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.LastDateOfSupport': {'title': _('End of support'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.ProductBulletinNumber': {'title': _('EOL bulletin ID'), 'filter': FilterInvtableText, 'paint': 'eox_eolid', }, '.hardware.support.cisco_eox:*.LinkToProductBulletinURL': {'title': _('EOL bulletin URL'), }, '.hardware.support.cisco_eox:*.UpdatedTimeStamp': {'title': _('EOL bulletin last update'), }, - '.hardware.support.cisco_eox:*.EndOfSecurityVulSupportDate': {'title': _('End of service vulnerability support'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.EndOfSWMaintenanceReleases': {'title': _('End of software maintenace releases'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, - '.hardware.support.cisco_eox:*.EndOfRoutineFailureAnalysisDate': {'title': _('End of routine failure analysis'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText, }, + '.hardware.support.cisco_eox:*.EndOfSecurityVulSupportDate': {'title': _('End of service vulnerability support'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.EndOfSWMaintenanceReleases': {'title': _('End of software maintenace releases'), 'filter': FilterInvtableText, 'paint': 'date_status',}, + '.hardware.support.cisco_eox:*.EndOfRoutineFailureAnalysisDate': {'title': _('End of routine failure analysis'), 'filter': FilterInvtableText, 'paint': 'date_status',}, '.hardware.support.cisco_eox:*.MigrationProductId': {'title': _('Migration PID'), }, '.hardware.support.cisco_eox:*.MigrationInformation': {'title': _('Migration information'), }, '.hardware.support.cisco_eox:*.MigrationProductInfoURL': {'title': _('Migration PID URL'), }, '.hardware.support.cisco_eox:*.MigrationProductName': {'title': _('Migration product name'), }, - '.hardware.support.cisco_eox:*.Last_checked': {'title': _('Last checked'), 'paint': 'last_checked_status', 'filter': visuals.FilterInvtableText, }, - + '.hardware.support.cisco_eox:*.Last_checked': {'title': _('Last checked'), 'filter': FilterInvtableText, 'paint': 'last_checked_status',}, +}) - # SN2Info (contract) display hints +# SN2Info (contract) display hints +inventory_displayhints.update({ '.hardware.support.cisco_contract:': {'title': _('Cisco contract status'), - 'render': render_inv_dicttable, 'keyorder': ['pid', 'serial_number', 'ProductIDDescription', 'Last_checked', 'is_covered', 'service_contract_number', 'covered_product_line_end_date', @@ -374,7 +436,7 @@ inventory_displayhints.update({ '.hardware.support.cisco_contract:*.pid': {'title': _('PID (contract)'), }, '.hardware.support.cisco_contract:*.serial_number': {'title': _('Serial number'), }, '.hardware.support.cisco_contract:*.ProductIDDescription': {'title': _('Description'), }, - '.hardware.support.cisco_contract:*.Last_checked': {'title': _('Last checked'), 'paint': 'last_checked_status', 'filter': visuals.FilterInvtableText,}, + '.hardware.support.cisco_contract:*.Last_checked': {'title': _('Last checked'), 'filter': FilterInvtableText, 'paint': 'last_checked_status',}, '.hardware.support.cisco_contract:*.is_covered': {'title': _('is covered'), }, '.hardware.support.cisco_contract:*.contract_site_customer_name': {'title': _('Customer name'), }, '.hardware.support.cisco_contract:*.contract_site_address1': {'title': _('Address'), }, @@ -383,52 +445,52 @@ inventory_displayhints.update({ '.hardware.support.cisco_contract:*.contract_site_country': {'title': _('Country'), }, '.hardware.support.cisco_contract:*.service_line_descr': {'title': _('Service description'), }, '.hardware.support.cisco_contract:*.service_contract_number': {'title': _('Contract number'), }, - '.hardware.support.cisco_contract:*.covered_product_line_end_date': {'title': _('Contract end date'), 'paint': 'date_status', 'filter': visuals.FilterInvtableText,}, + '.hardware.support.cisco_contract:*.covered_product_line_end_date': {'title': _('Contract end date'), 'filter': FilterInvtableText, 'paint': 'date_status',}, '.hardware.support.cisco_contract:*.parent_sr_no': {'title': _('Parent S/N'), }, '.hardware.support.cisco_contract:*.warranty_type': {'title': _('Warranty type'), }, '.hardware.support.cisco_contract:*.warranty_type_description': {'title': _('Warranty Description'), }, '.hardware.support.cisco_contract:*.warranty_end_date': {'title': _('Warranty end date'), }, +}) - - # BUG display hints +# BUG display hints +inventory_displayhints.update({ '.software.support.cisco_bug.Total_records': {'title': _('Records total'), }, '.software.support.cisco_bug.duplicate_records': {'title': _('Records duplicate'), }, '.software.support.cisco_bug.missing_records': {'title': _('Records missing'), }, '.software.support.cisco_bug.PID': {'title': _('PID'), }, '.software.support.cisco_bug.os_version': {'title': _('OS version'), }, '.software.support.cisco_bug.bugs:': {'title': _('Cisco BUG IDs'), - 'render': render_inv_dicttable, 'keyorder': ['bug_id', 'last_modified_date', 'headline', 'severity', 'status', 'support_case_count', 'behavior_changed', ], 'view': 'invciscobugs_of_host', }, - '.software.support.cisco_bug.bugs:*.status': {'title': _('Status'), 'paint': 'bug_status', 'filter': visuals.FilterInvtableText, }, + '.software.support.cisco_bug.bugs:*.status': {'title': _('Status'), 'filter': FilterInvtableText, }, '.software.support.cisco_bug.bugs:*.product': {'title': _('Product'), }, '.software.support.cisco_bug.bugs:*.description': {'title': _('Description'), }, '.software.support.cisco_bug.bugs:*.headline': {'title': _('Headline'), }, '.software.support.cisco_bug.bugs:*.support_case_count': {'title': _('Support case count'), }, '.software.support.cisco_bug.bugs:*.last_modified_date': {'title': _('Last modified date'), }, - '.software.support.cisco_bug.bugs:*.behavior_changed': {'title': _('Behavior changed'), 'paint': 'bug_behavior_changed', 'filter': visuals.FilterInvtableText, }, - '.software.support.cisco_bug.bugs:*.bug_id': {'title': _('Bug ID'), 'paint': 'bug_bugid', }, + '.software.support.cisco_bug.bugs:*.behavior_changed': {'title': _('Behavior changed'), 'filter': FilterInvtableText, }, + '.software.support.cisco_bug.bugs:*.bug_id': {'title': _('Bug ID'), 'paint': 'bug_bugid', }, # '.software.support.cisco_bug.bugs:*.base_pid': {'title': _('Base PID'), }, - '.software.support.cisco_bug.bugs:*.known_fixed_releases': {'title': _('Known fixed releases'), 'filter': visuals.FilterInvtableText, }, + '.software.support.cisco_bug.bugs:*.known_fixed_releases': {'title': _('Known fixed releases'), 'filter': FilterInvtableText, }, '.software.support.cisco_bug.bugs:*.id': {'title': _('ID'), }, '.software.support.cisco_bug.bugs:*.known_affected_releases': {'title': _('known affected releases'), }, '.software.support.cisco_bug.bugs:*.severity': {'title': _('Severity'), }, +}) - - # PSIRT display hints +# PSIRT display hints +inventory_displayhints.update({ '.software.support.cisco_psirt.dont_show_older_than': {'title': _('Don\'t show advisories not updated since'), }, '.software.support.cisco_psirt.dont_show_not_updated_since': {'title': _('Don\'t show advisories not updated for X days'), }, '.software.support.cisco_psirt.removed_advisories': {'title': _('Advisories removed'), }, '.software.support.cisco_psirt.advisories:': {'title': _('Cisco PSIRT advisories'), - 'render': render_inv_dicttable, 'keyorder': ['advisoryId', 'sir', 'cvssBaseScore', 'advisoryTitle', ], 'view': 'invciscopsirt_of_host', }, - '.software.support.cisco_psirt.advisories:*.advisoryId': {'title': _('Advisory ID'), 'paint': 'psirt_advisoryId', 'filter': visuals.FilterInvtableText, }, + '.software.support.cisco_psirt.advisories:*.advisoryId': {'title': _('Advisory ID'), 'filter': FilterInvtableText, 'paint': 'psirt_advisoryId',}, # '.software.support.cisco_psirt.advisories:*.advisoryTitle': {'title': _('Advisory Title'), }, - '.software.support.cisco_psirt.advisories:*.bugIDs': {'title': _('Bug IDs'), }, # 'paint': 'psirt_bugid', 'filter': visuals.FilterInvtableText, + '.software.support.cisco_psirt.advisories:*.bugIDs': {'title': _('Bug IDs'), 'filter': FilterInvtableText, }, # 'paint': 'psirt_bugid', '.software.support.cisco_psirt.advisories:*.cvssBaseScore': {'title': _('CVSS base Score'), }, '.software.support.cisco_psirt.advisories:*.firstFixed': {'title': _('First fixed in'), }, '.software.support.cisco_psirt.advisories:*.firstPublished': {'title': _('First Published'), }, @@ -444,26 +506,30 @@ inventory_displayhints.update({ '.software.support.cisco_psirt.advisories:*.cvrfUrl': {'title': _('CVRF URL'), }, '.software.support.cisco_psirt.advisories:*.ovalUrl': {'title': _('OVAL URL'), }, '.software.support.cisco_psirt.os_version': {'title': _('OS version'), }, - '.software.support.cisco_psirt.Last_checked': {'title': _('Last checked'), 'paint': 'last_checked_status', 'filter': visuals.FilterInvtableText,}, + '.software.support.cisco_psirt.Last_checked': {'title': _('Last checked'), 'filter': FilterInvtableText, 'paint': 'last_checked_status',}, # '.software.support.cisco_psirt.not_updated_for_x_days': {'title': _('don\'t show advisories not updated for X days'), }, '.software.support.cisco_psirt.dont_show_older_then': {'title': _('don\'t show advisories not updated after'), }, +}) - # SUGGESTION display hints +# SUGGESTION display hints +inventory_displayhints.update({ '.software.support.cisco_suggestion:': {'title': _('Cisco suggested software'), - 'render': render_inv_dicttable_suggestion, + # 'render': render_inv_dicttable_suggestion, 'keyorder': ['pid', 'ProductIDDescription', 'Last_checked', ], # 'view' : 'invciscosuggestion_of_host', }, '.software.support.cisco_suggestion:*.pid': {'title': _('PID (suggestion)'), }, '.software.support.cisco_suggestion:*.ProductIDDescription': {'title': _('Description'), }, - '.software.support.cisco_suggestion:*.Last_checked': {'title': _('Last checked'), 'paint': 'last_checked_status', 'filter': visuals.FilterInvtableText,}, + '.software.support.cisco_suggestion:*.Last_checked': {'title': _('Last checked'), 'filter': FilterInvtableText, 'paint': 'last_checked_status',}, # '.software.support.cisco_suggestion:*.suggestion': {'title': _('Suggestion(s)'), }, - '.software.support.cisco_suggestion:*.suggestion:': {'render': render_inv_dicttable_suggestion_noqf, 'keyorder': ['productName', 'softwareType']}, + # '.software.support.cisco_suggestion:*.suggestion:': {'render': render_inv_dicttable_suggestion_noqf, 'keyorder': ['productName', 'softwareType']}, + '.software.support.cisco_suggestion:*.suggestion:': {'keyorder': ['productName', 'softwareType']}, '.software.support.cisco_suggestion:*.suggestion:*.productName': {'title': _('Product name'), }, '.software.support.cisco_suggestion:*.suggestion:*.softwareType': {'title': _('Software type'), }, '.software.support.cisco_suggestion:*.suggestion:*.suggestion': {'title': _('Suggestion(s)'), }, - '.software.support.cisco_suggestion:*.suggestion:*.suggestion:': {'render': render_inv_dicttable_suggestion_noqf, 'keyorder': ['id', 'releaseFormat2', 'releaseDate']}, + # '.software.support.cisco_suggestion:*.suggestion:*.suggestion:': {'render': render_inv_dicttable_suggestion_noqf, 'keyorder': ['id', 'releaseFormat2', 'releaseDate']}, + '.software.support.cisco_suggestion:*.suggestion:*.suggestion:': {'keyorder': ['id', 'releaseFormat2', 'releaseDate']}, '.software.support.cisco_suggestion:*.suggestion:*.suggestion:*.id': {'title': _('ID'), }, '.software.support.cisco_suggestion:*.suggestion:*.suggestion:*.releaseDate': {'title': _('Release date'), }, '.software.support.cisco_suggestion:*.suggestion:*.suggestion:*.releaseFormat2': {'title': _('Version'), }, @@ -476,9 +542,9 @@ inventory_displayhints.update({ '.software.support.cisco_suggestion:*.suggestion:*.suggestion:*.trainDispName': {'title': _('train display name'), } }) - declare_invtable_view('invciscoeox', '.hardware.support.cisco_eox:', _('Cisco EoX status'), _('Cisco EoX status')) declare_invtable_view('invciscocontract', '.hardware.support.cisco_contract:', _('Cisco contract status'), _('Cisco contract status')) declare_invtable_view('invciscopsirt', '.software.support.cisco_psirt.advisories:', _('Cisco PSIRT advisories'), _('Cisco PSIRT advisories')) declare_invtable_view('invciscobugs', '.software.support.cisco_bug.bugs:', _('Cisco BUG IDs'), _('Cisco Bug IDs')) #declare_invtable_view('invciscosuggestion', '.software.support.cisco_suggestion:', _('Cisco suggested software'), _('Cisco suggested software')) + -- GitLab