Mercurial > bottledash
annotate dash.py @ 8:8fc4db85f2f5
fixed a path error
author | sean |
---|---|
date | Wed, 29 Jul 2015 12:02:51 +0200 |
parents | c8cb2aa0b72c |
children | b06cb7fbf7f8 |
rev | line source |
---|---|
4
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
1 """ |
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
2 This software is part of "Bottledash" |
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
3 author: sean engelhardt > sean.engelhardt@intevation.de |
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
4 license: GNU >= V2. See LICENSE for details |
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
5 """ |
3e66e2f92770
added LICENSE and license headers in the sourcecode. Added readme
sean
parents:
3
diff
changeset
|
6 |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
7 from bottle import get, post, request, view, response, route |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
8 from bottle import template, run, static_file, error |
8 | 9 import os.path,sys,configparser |
0 | 10 |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
11 CONFIG_FILE = "dash.conf" |
8 | 12 PATH = os.path.abspath(os.path.dirname(sys.argv[0])) |
13 CONFIG_PATH = PATH + "/" + CONFIG_FILE | |
14 | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
15 tiles = [] |
7 | 16 settings = {} |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
17 |
7 | 18 default_settings = configparser.ConfigParser() |
19 default_settings['settings'] = {'show_top_bar': True} | |
20 | |
21 ##read the config file. usually "dash.conf" | |
8 | 22 |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
23 def read_config(): |
8 | 24 |
25 # print(PATH) | |
7 | 26 global settings |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
27 |
8 | 28 if os.path.isfile(CONFIG_PATH) == False: |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
29 write_default_config() |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
30 |
8 | 31 print("read existing config file...") |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
32 config = configparser.ConfigParser() |
8 | 33 config.read(CONFIG_PATH) |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
34 |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
35 for section in config.items(): |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
36 if "tile" in section[0]: |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
37 tiles.append(section[1]) |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
38 |
7 | 39 try: |
40 if config["settings"]: | |
41 settings = config["settings"] | |
42 else: | |
43 settings = default_settings["settings"] | |
44 except KeyError: | |
45 settings = default_settings["settings"] | |
46 | |
47 ###write the default condfig file if there is none | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
48 def write_default_config(): |
8 | 49 print("there is no Config file! Creating one...") |
50 file = open(CONFIG_PATH, "w") | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
51 file.write(""" |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
52 ### bottledash default configuration |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
53 ### created by sean engelhardt >sean.engelhardt@intevation.de |
7 | 54 ### license: GNU GPL >= v2. See LICENSE for details |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
55 ### |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
56 ### Usage: |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
57 ### define the tiles for the dashboard in sections |
7 | 58 |
59 # Settings: | |
60 # example: | |
61 # -------------------- | |
62 # [settings] | |
63 # show_top_bar=True | |
64 # -------------------- | |
65 # options: | |
66 # show_top_bar (True / False) [optional] | |
67 # If True, the dashboard will show the current date and the time on the top | |
68 # if False, the dashboard will not show a top-bar | |
69 # default: True | |
70 # hint: the top-bar has got a height of 5%! | |
71 | |
72 [settings] | |
73 show_top_bar=True | |
74 | |
75 # Tiles: | |
76 # example: | |
77 # -------------------- | |
78 # [tile1] | |
79 # type=mon | |
80 # source=192.168.0.2 | |
81 # status=up | |
82 # -------------------- | |
83 # options: | |
84 # type (mon / d3js) [required] | |
85 # tells the program what kind of tile you need. | |
86 # a "mon" tile can be used for IT infrastructure monitoring purposes | |
87 # a d3js tile can be used to display a chart | |
88 # default: - | |
89 # | |
90 # source (<IP> or <FQDN>) [required for mon-types] | |
91 # ONLY FOR MON-Type tiles! | |
92 # tells the tile which resource to watch | |
93 # default: none | |
94 # | |
95 # status: (up / down) [required] | |
96 # ONLY FOR DEBUGGING PURPOSE - WILL BE REMOVED LATER | |
97 # simulates up and down events for mon-type-tiles | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
98 |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
99 [tile1] |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
100 type=mon |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
101 source=192.168.0.2 |
7 | 102 status=up |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
103 |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
104 [tile2] |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
105 type=mon |
7 | 106 source=192.168.2.3 |
107 status=down | |
108 | |
109 [tile3] | |
110 type=mon | |
111 source=192.168.4.3 | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
112 status=up |
7 | 113 |
114 [tile4] | |
115 type=mon | |
116 source=192.168.4.3 | |
117 status=down | |
118 | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
119 """) |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
120 file.close() |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
121 |
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
122 ##Bottle |
0 | 123 @route('/') |
124 @view('hello_template') | |
125 def call_dashboard(): | |
7 | 126 return dict(tiles=tiles, settings=settings) |
0 | 127 |
128 @route('/config') | |
129 def call_config(): | |
130 return 'Not implemented yet' | |
131 | |
132 | |
133 @route('/static/<filepath:path>') | |
134 def server_static(filepath): | |
135 return static_file(filepath, root='./static_files/') | |
136 | |
137 @error(404) | |
138 def error404(error): | |
139 return 'Nothing here, sorry <br /> 404' | |
140 | |
3
3f5bcad45756
pars a .conf | dynamic adding of divs | dynamiv VP scaling
sean
parents:
0
diff
changeset
|
141 read_config() |
7 | 142 # print(tiles) |
8 | 143 # run(host='localhost', port=8080, debug=True) |