diff dash.py @ 7:c8cb2aa0b72c

fixed default condifuration
author sean
date Wed, 22 Jul 2015 13:31:25 +0200
parents c49f7fe82743
children 8fc4db85f2f5
line wrap: on
line diff
--- 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)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)