diff --git a/src/sysmgr.py b/src/sysmgr.py index e15cb7a..8a1f434 100644 --- a/src/sysmgr.py +++ b/src/sysmgr.py @@ -1,9 +1,11 @@ import re, string, os + +editableParms = ["ADMIN_EMAIL_ADDRESS","LOG_LEVEL"] configPath = {"docklet": os.environ.get("DOCKLET_CONF")+"/docklet.conf", "container": os.environ.get("DOCKLET_CONF")+"/container.conf"} -#configPath = "../conf/docklet.conf" -#lxcconfigPath = "../conf/container.conf" +#configPath = {"docklet": "../conf/docklet.conf", +# "container": "../conf/container.conf"} defaultPattern = re.compile(u'# *\S+ *= *\S+') activePattern = re.compile(u'\S+ *= *\S+') historyPattern = re.compile(u'## *\S+ *= *\S+') @@ -27,29 +29,53 @@ def parse_line(line): class SystemManager(): def getParmList(*args, **kwargs): + #result = {"docklet": "", "container": ""} result = {"docklet": "", "container": ""} - for field in ["docklet", "container"]: + for field in ["docklet"]: configFile = open(configPath[field]) lines = configFile.readlines() configFile.close() + configFile = open(configPath[field]) + wholeFile = configFile.read() + configFile.close() conf = {} + segs = wholeFile.split("\n\n") for line in lines: [linekind, lineparm, lineval] = parse_line(line) + if lineparm in editableParms: + editable = 1 + else: + editable = 0 if linekind == "default": - conf[lineparm] = {"val": "novalidvaluea", "default": lineval, "history": []} + conf[lineparm] = {"val": "novalidvaluea", "default": lineval, + "history": [], "editable": editable, "details": ""} for line in lines: [linekind, lineparm, lineval] = parse_line(line) if linekind == "active": try: conf[lineparm]["val"] = lineval except: - conf[lineparm] = {"val": lineval, "default": lineval, "history": []} + if lineparm in editableParms: + editable = 1 + else: + editable = 0 + conf[lineparm] = {"val": lineval, "default": lineval, + "history": [], "editable": editable, "details": ""} for line in lines: [linekind, lineparm, lineval] = parse_line(line) if linekind == "history": conf[lineparm]["history"].append(lineval) + for parm in conf.keys(): + for seg in segs: + if parm in seg: + conf[parm]["details"] = seg result[field] = [({'parm': parm, 'val': conf[parm]['val'], - 'default': conf[parm]['default'], "history": conf[parm]['history']}) for parm in sorted(conf.keys())] + 'default': conf[parm]['default'], "history": conf[parm]['history'], + "editable": conf[parm]['editable'], "details": conf[parm]['details']}) for parm in sorted(conf.keys())] + configFile = open(configPath["container"]) + wholeFile = configFile.read() + configFile.close() + result["container"] = wholeFile return result # 1. def and not act 2. act and not def 3. def and act diff --git a/web/templates/admin.html b/web/templates/admin.html index 715f1c1..9384ed4 100644 --- a/web/templates/admin.html +++ b/web/templates/admin.html @@ -202,7 +202,7 @@ - {% for field in ["docklet", "container"] %} + {% for field in ["docklet"] %}
@@ -220,58 +220,7 @@
- - - - +
@@ -284,7 +233,9 @@ + {% for editable in [1,0] %} {% for parm in parms[field] %} + {% if parm["editable"] == editable %} {% if parm["parm"]|length > 20%} @@ -312,6 +263,15 @@ @@ -347,10 +308,26 @@ {% endif %} + + {% endif %} + {% endfor %} {% endfor %}
{{ parm["default"] }} + Details  + {% if parm["editable"] == 1 %} Edit  - Clear History  - Delete + {% endif %}
@@ -476,6 +415,25 @@
{% endfor %} +
+
+
+
+

Container Config

+
+ + +
+
+
+
 {{ parms["container"] }} 
+
+
+
+
+ {% endblock %} {% block script_src %}