Mercurial > bottledash
changeset 7:c8cb2aa0b72c
fixed default condifuration
author | sean |
---|---|
date | Wed, 22 Jul 2015 13:31:25 +0200 |
parents | 3acc5164369e |
children | 8fc4db85f2f5 |
files | dash.conf dash.py views/hello_template.tpl |
diffstat | 3 files changed, 127 insertions(+), 60 deletions(-) [+] |
line wrap: on
line diff
--- a/dash.conf Wed Jul 22 10:47:55 2015 +0200 +++ b/dash.conf Wed Jul 22 13:31:25 2015 +0200 @@ -4,25 +4,46 @@ ### ### Usage: ### define the tiles for the dashboard in sections -### -### options for tiles: -### -### type -### values: mon, d3.js -### -### source (only if type = mon) -### value: IP or FQDN -### status -### -### status (for debug purpose only | only if type = mon) -### values: up, down -### -### example: -### [tile1] -### type=mon -### source=192.168.0.2 -### status=up +# Settings: +# example: +# -------------------- +# [settings] +# show_top_bar=True +# -------------------- +# options: +# show_top_bar (True / False) [optional] +# If True, the dashboard will show the current date and the time on the top +# if False, the dashboard will not show a top-bar +# default: True +# hint: the top-bar has got a height of 5%! + +[settings] +show_top_bar=True + +# Tiles: +# example: +# -------------------- +# [tile1] +# type=mon +# source=192.168.0.2 +# status=up +# -------------------- +# options: +# type (mon / d3js) [required] +# tells the program what kind of tile you need. +# a "mon" tile can be used for IT infrastructure monitoring purposes +# a d3js tile can be used to display a chart +# default: - +# +# source (<IP> or <FQDN>) [required for mon-types] +# ONLY FOR MON-Type tiles! +# tells the tile which resource to watch +# default: none +# +# status: (up / down) [required] +# ONLY FOR DEBUGGING PURPOSE - WILL BE REMOVED LATER +# simulates up and down events for mon-type-tiles [tile1] type=mon @@ -52,4 +73,4 @@ [tile6] type=mon source=192.168.4.3 -status=up \ No newline at end of file +status=up
--- a/dash.py Wed Jul 22 10:47:55 2015 +0200 +++ b/dash.py Wed Jul 22 13:31:25 2015 +0200 @@ -11,8 +11,14 @@ CONFIG_FILE = "dash.conf" tiles = [] +settings = {} +default_settings = configparser.ConfigParser() +default_settings['settings'] = {'show_top_bar': True} + +##read the config file. usually "dash.conf" def read_config(): + global settings if os.path.isfile(CONFIG_FILE) == False: write_default_config() @@ -20,55 +26,89 @@ config = configparser.ConfigParser() config.read(CONFIG_FILE) - - - #read the tiles - read_tiles_config(config) - -def read_tiles_config(config): for section in config.items(): if "tile" in section[0]: tiles.append(section[1]) - # print(tiles[0]["type"]) + try: + if config["settings"]: + settings = config["settings"] + else: + settings = default_settings["settings"] + except KeyError: + settings = default_settings["settings"] + +###write the default condfig file if there is none def write_default_config(): file = open("dash.conf", "w") file.write(""" - ### bottledash default configuration ### created by sean engelhardt >sean.engelhardt@intevation.de -### license: GNU GPL >= v2 +### license: GNU GPL >= v2. See LICENSE for details ### ### Usage: ### define the tiles for the dashboard in sections -### -### options for tiles: -### -### type -### values: mon, d3.js -### -### source (only if type = mon) -### value: IP or FQDN -### status -### -### status (for debug purpose only | only if type = mon) -### values: up, down -### -### example: -### [tile1] -### type=mon -### source=192.168.0.2 -### status=up + +# Settings: +# example: +# -------------------- +# [settings] +# show_top_bar=True +# -------------------- +# options: +# show_top_bar (True / False) [optional] +# If True, the dashboard will show the current date and the time on the top +# if False, the dashboard will not show a top-bar +# default: True +# hint: the top-bar has got a height of 5%! + +[settings] +show_top_bar=True + +# Tiles: +# example: +# -------------------- +# [tile1] +# type=mon +# source=192.168.0.2 +# status=up +# -------------------- +# options: +# type (mon / d3js) [required] +# tells the program what kind of tile you need. +# a "mon" tile can be used for IT infrastructure monitoring purposes +# a d3js tile can be used to display a chart +# default: - +# +# source (<IP> or <FQDN>) [required for mon-types] +# ONLY FOR MON-Type tiles! +# tells the tile which resource to watch +# default: none +# +# status: (up / down) [required] +# ONLY FOR DEBUGGING PURPOSE - WILL BE REMOVED LATER +# simulates up and down events for mon-type-tiles [tile1] type=mon source=192.168.0.2 -status=down +status=up [tile2] type=mon -source=192.168.2.1 +source=192.168.2.3 +status=down + +[tile3] +type=mon +source=192.168.4.3 status=up + +[tile4] +type=mon +source=192.168.4.3 +status=down + """) file.close() @@ -76,7 +116,7 @@ @route('/') @view('hello_template') def call_dashboard(): - return dict(tiles=tiles) + return dict(tiles=tiles, settings=settings) @route('/config') def call_config(): @@ -92,5 +132,5 @@ return 'Nothing here, sorry <br /> 404' read_config() -print(tiles) +# print(tiles) run(host='localhost', port=8080, debug=True)
--- a/views/hello_template.tpl Wed Jul 22 10:47:55 2015 +0200 +++ b/views/hello_template.tpl Wed Jul 22 13:31:25 2015 +0200 @@ -8,6 +8,14 @@ from datetime import date ################# + # settings # + ################# + + + show_top_bar = settings["show_top_bar"] + + + ################# # date and time # ################# @@ -19,19 +27,12 @@ "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")[today.month-1] - - ################## - # size of tiles # - ################## - number_of_rows = 2 ################# # viewport size # ################# - - vp_size = "12px" - + vp_size = "17px" #if len(tiles) <= 2: # vp_size = "6vw" #elif len(tiles) >2 and len(tiles) <=4 : @@ -123,7 +124,11 @@ #content{ min-width: 100%; - height:95%; + % if show_top_bar == "True": + height: 95%; + % else : + height: 100%; + %end } .tile{ @@ -165,10 +170,11 @@ </style> <div id = "wrapper"> - + % if show_top_bar == "True" : <div id = "topbar"> <b>{{weekday}}</b> {{today.day}}. {{month_name}} </div> + % end <div id = "content">