diff --git a/hosts_template.html b/hosts_template.html deleted file mode 100644 index c780203..0000000 --- a/hosts_template.html +++ /dev/null @@ -1,26 +0,0 @@ -
-
-
-
Operational
-
- {hosts_operational} -
-
-
-
-
-
Warning
-
- {hosts_warning} -
-
-
-
-
-
Critical
-
- {hosts_critical} -
-
-
-
diff --git a/service.py b/service.py index deb806c..abc3287 100755 --- a/service.py +++ b/service.py @@ -31,7 +31,7 @@ def do_api_calls(config): data['services'] = r.json() else: r.raise_for_status() - + # hosts request_url = "{}/v1/objects/hosts".format(config['icinga2_api']['baseurl']) headers = { @@ -52,9 +52,10 @@ def do_api_calls(config): data['hosts'] = r.json() else: r.raise_for_status() - + return data + def render_text_output(data): print("{:50s} {:10s}".format("host", "status")) for host in data['hosts']['results']: @@ -63,47 +64,6 @@ def render_text_output(data): print("{:50s} {}".format(service['name'], service['attrs']['state'])) -def render_hosts(data): - hosts_operational = '' - hosts_warning = '' - hosts_critical = '' - - hosts_operational_template = """ -
  • - {} - OK -
  • - """ - hosts_warning_template = """ -
  • - {} - WARNING -
  • - """ - hosts_critical_template = """ -
  • - {} - CRITICAL -
  • - """ - - for host in data['hosts']['results']: - if host['attrs']['state'] == 0: - hosts_operational = hosts_operational + hosts_operational_template.format(host['name']) - elif host['attrs']['state'] == 1: - hosts_warning = hosts_warning + hosts_critical_template.format(host['name']) - else: - hosts_critical = hosts_critical + hosts_critical_template.format(host['name']) - - with open("hosts_template.html", "r") as f: - htmlTemplate = f.read() - htmlOutput = htmlTemplate.format( - hosts_operational = hosts_operational, - hosts_warning = hosts_warning, - hosts_critical = hosts_critical, - ) - return htmlOutput - def render_services_per_host(host, data): services_operational = '' services_warning = '' @@ -126,7 +86,7 @@ def render_services_per_host(host, data): services_warning = services_warning + services_template.format(service['attrs']['display_name'], 'warning', 'WARNING') else: services_critical = services_critical + services_template.format(service['attrs']['display_name'], 'danger', 'CRITICAL') - + if service['joins']['host']['state'] == 0: card_header = services_hostname_template.format(host, 'success', 'UP') elif service['joins']['host']['state'] == 0: @@ -145,6 +105,7 @@ def render_services_per_host(host, data): ) return htmlOutput + def render_service_details(data): # generate list of hosts by scanning services for unique host_name host_names = [] @@ -157,12 +118,12 @@ def render_service_details(data): html_output = html_output + render_services_per_host(host, data) return html_output -def render_index_html(filename, host_summary, service_details): + +def render_index_html(filename, service_details): with open("template.html", "r") as f: htmlTemplate = f.read() htmlOutput = htmlTemplate.format( - hosts = host_summary, services = service_details ) @@ -180,9 +141,8 @@ def main(): with open('config.conf', 'r') as configfile: config.read('config.conf') data = do_api_calls(config) - host_summary = render_hosts(data) service_details = render_service_details(data) - render_index_html(config['output']['filename'], host_summary, service_details) + render_index_html(config['output']['filename'], service_details) if __name__ == "__main__": main() diff --git a/template.html b/template.html index 1d253df..a968b6d 100644 --- a/template.html +++ b/template.html @@ -8,21 +8,13 @@
    - -
    -
    -