Removed check_config, minor changes, new logging
This commit is contained in:
parent
7f8d68b31a
commit
366d8857dd
2 changed files with 94 additions and 94 deletions
162
configurator.py
162
configurator.py
|
@ -15,6 +15,7 @@ import signal
|
|||
import cgi
|
||||
import shlex
|
||||
import subprocess
|
||||
import logging
|
||||
from string import Template
|
||||
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||
import urllib.request
|
||||
|
@ -45,7 +46,14 @@ BANLIMIT = 0
|
|||
GIT = False
|
||||
### End of options
|
||||
|
||||
RELEASEURL = "https://api.github.com/repos/danielperna84/hass-poc-configurator/releases/latest"
|
||||
LOGLEVEL = logging.INFO
|
||||
LOG = logging.getLogger(__name__)
|
||||
LOG.setLevel(LOGLEVEL)
|
||||
SO = logging.StreamHandler(sys.stdout)
|
||||
SO.setLevel(LOGLEVEL)
|
||||
SO.setFormatter(logging.Formatter('%(levelname)s:%(asctime)s:%(name)s:%(message)s'))
|
||||
LOG.addHandler(SO)
|
||||
RELEASEURL = "https://api.github.com/repos/danielperna84/hass-configurator/releases/latest"
|
||||
VERSION = "0.1.6"
|
||||
BASEDIR = "."
|
||||
DEV = False
|
||||
|
@ -56,7 +64,7 @@ if GIT:
|
|||
try:
|
||||
from git import Repo as REPO
|
||||
except Exception:
|
||||
print("Unable to import Git module")
|
||||
LOG.warn("Unable to import Git module")
|
||||
INDEX = Template(r"""<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
@ -580,7 +588,7 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
<li><a href="#" data-activates="ace_settings" class="ace_settings-collapse">Editor Settings</a></li>
|
||||
<li><a href="#modal_about">About HASS-Configurator</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#modal_check_config">Check HASS Configuration</a></li>
|
||||
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
|
||||
<li><a href="#modal_reload_automations">Reload automations</a></li>
|
||||
<li><a href="#modal_reload_groups">Reload groups</a></li>
|
||||
<li><a href="#modal_restart">Restart HASS</a></li>
|
||||
|
@ -594,7 +602,7 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
<li><a href="#" data-activates="ace_settings" class="ace_settings-collapse">Editor Settings</a></li>
|
||||
<li><a href="#modal_about">About HASS-Configurator</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#modal_check_config">Check HASS Configuration</a></li>
|
||||
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
|
||||
<li><a href="#modal_reload_automations">Reload automations</a></li>
|
||||
<li><a href="#modal_reload_groups">Reload groups</a></li>
|
||||
<li><a href="#modal_restart">Restart HASS</a></li>
|
||||
|
@ -2646,7 +2654,7 @@ INDEX = Template(r"""<!DOCTYPE html>
|
|||
|
||||
def signal_handler(sig, frame):
|
||||
global HTTPD
|
||||
print("Got signal: %s. Shutting down server" % str(sig))
|
||||
LOG.info("Got signal: %s. Shutting down server" % str(sig))
|
||||
HTTPD.server_close()
|
||||
sys.exit(0)
|
||||
|
||||
|
@ -2670,8 +2678,8 @@ def load_settings(settingsfile):
|
|||
BANLIMIT = settings.get("BANLIMIT", BANLIMIT)
|
||||
DEV = settings.get("DEV", DEV)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
print("Not loading static settings")
|
||||
LOG.warn(err)
|
||||
LOG.warn("Not loading static settings")
|
||||
return False
|
||||
|
||||
def get_dircontent(path, repo=None):
|
||||
|
@ -2687,7 +2695,7 @@ def get_dircontent(path, repo=None):
|
|||
for element in repo.index.diff("HEAD"):
|
||||
staged["%s%s%s" % (repo.working_dir, os.sep, "%s"%os.sep.join(element.b_path.split('/')))] = element.change_type
|
||||
except Exception as err:
|
||||
print("Exception: %s" % str(err))
|
||||
LOG.warn("Exception: %s" % str(err))
|
||||
for element in repo.index.diff(None):
|
||||
unstaged["%s%s%s" % (repo.working_dir, os.sep, "%s"%os.sep.join(element.b_path.split('/')))] = element.change_type
|
||||
else:
|
||||
|
@ -2729,8 +2737,8 @@ def get_html():
|
|||
html = Template(fptr.read())
|
||||
return html
|
||||
except Exception as err:
|
||||
print(err)
|
||||
print("Delivering embedded HTML")
|
||||
LOG.warn(err)
|
||||
LOG.warn("Delivering embedded HTML")
|
||||
return INDEX
|
||||
|
||||
def check_access(clientip):
|
||||
|
@ -2747,6 +2755,10 @@ def check_access(clientip):
|
|||
return False
|
||||
|
||||
class RequestHandler(BaseHTTPRequestHandler):
|
||||
def log_message(self, format, *args):
|
||||
LOG.info("%s - %s" % (self.client_address[0], format%args))
|
||||
return
|
||||
|
||||
def do_BLOCK(self):
|
||||
self.send_response(420)
|
||||
self.end_headers()
|
||||
|
@ -2773,7 +2785,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
else:
|
||||
content = "File not found"
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
content = str(err)
|
||||
self.wfile.write(bytes(content, "utf8"))
|
||||
return
|
||||
|
@ -2783,7 +2795,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
try:
|
||||
if filename:
|
||||
filename = unquote(filename[0]).encode('utf-8')
|
||||
print(filename)
|
||||
LOG.info(filename)
|
||||
if os.path.isfile(os.path.join(BASEDIR.encode('utf-8'), filename)):
|
||||
with open(os.path.join(BASEDIR.encode('utf-8'), filename), 'rb') as fptr:
|
||||
filecontent = fptr.read()
|
||||
|
@ -2794,7 +2806,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
else:
|
||||
content = "File not found"
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
content = str(err)
|
||||
self.send_header('Content-type', 'text/text')
|
||||
self.wfile.write(bytes(content, "utf8"))
|
||||
|
@ -2820,7 +2832,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
for branch in repo.branches:
|
||||
branches.append(branch.name)
|
||||
except Exception as err:
|
||||
print("Exception (no repo): %s" % str(err))
|
||||
LOG.debug("Exception (no repo): %s" % str(err))
|
||||
dircontent = get_dircontent(dirpath.decode('utf-8'), repo)
|
||||
filedata = {'content': dircontent,
|
||||
'abspath': os.path.abspath(dirpath).decode('utf-8'),
|
||||
|
@ -2831,7 +2843,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
}
|
||||
self.wfile.write(bytes(json.dumps(filedata), "utf8"))
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
content = str(err)
|
||||
self.wfile.write(bytes(content, "utf8"))
|
||||
return
|
||||
|
@ -2842,9 +2854,9 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
dirpath = query.get('path', None)
|
||||
if dirpath:
|
||||
dirpath = unquote(dirpath[0]).encode('utf-8')
|
||||
print(dirpath)
|
||||
LOG.debug(dirpath)
|
||||
absp = os.path.abspath(dirpath)
|
||||
print(absp)
|
||||
LOG.debug(absp)
|
||||
if os.path.isdir(dirpath):
|
||||
self.wfile.write(os.path.abspath(dirpath))
|
||||
return
|
||||
|
@ -2855,14 +2867,14 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
dirpath = query.get('path', None)
|
||||
if dirpath:
|
||||
dirpath = unquote(dirpath[0]).encode('utf-8')
|
||||
print(dirpath)
|
||||
LOG.debug(dirpath)
|
||||
absp = os.path.abspath(dirpath)
|
||||
print(absp)
|
||||
LOG.debug(absp)
|
||||
if os.path.isdir(dirpath):
|
||||
self.wfile.write(os.path.abspath(os.path.dirname(dirpath)))
|
||||
return
|
||||
elif req.path == '/api/restart':
|
||||
print("/api/restart")
|
||||
LOG.info("/api/restart")
|
||||
self.send_header('Content-type', 'text/json')
|
||||
self.end_headers()
|
||||
res = {"restart": False}
|
||||
|
@ -2875,14 +2887,14 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
req = urllib.request.Request("%sservices/homeassistant/restart" % HASS_API, headers=headers, method='POST')
|
||||
with urllib.request.urlopen(req) as response:
|
||||
res = json.loads(response.read().decode('utf-8'))
|
||||
print(res)
|
||||
LOG.debug(res)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
res['restart'] = str(err)
|
||||
self.wfile.write(bytes(json.dumps(res), "utf8"))
|
||||
return
|
||||
elif req.path == '/api/check_config':
|
||||
print("/api/check_config")
|
||||
LOG.info("/api/check_config")
|
||||
self.send_header('Content-type', 'text/json')
|
||||
self.end_headers()
|
||||
res = {"check_config": False}
|
||||
|
@ -2893,16 +2905,16 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
if HASS_API_PASSWORD:
|
||||
headers["x-ha-access"] = HASS_API_PASSWORD
|
||||
req = urllib.request.Request("%sservices/homeassistant/check_config" % HASS_API, headers=headers, method='POST')
|
||||
with urllib.request.urlopen(req) as response:
|
||||
res = json.loads(response.read().decode('utf-8'))
|
||||
print(res)
|
||||
# with urllib.request.urlopen(req) as response:
|
||||
# print(json.loads(response.read().decode('utf-8')))
|
||||
# res['service'] = "called successfully"
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
res['restart'] = str(err)
|
||||
self.wfile.write(bytes(json.dumps(res), "utf8"))
|
||||
return
|
||||
elif req.path == '/api/reload_automations':
|
||||
print("/api/reload_automations")
|
||||
LOG.info("/api/reload_automations")
|
||||
self.send_header('Content-type', 'text/json')
|
||||
self.end_headers()
|
||||
res = {"reload_automations": False}
|
||||
|
@ -2914,15 +2926,15 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
headers["x-ha-access"] = HASS_API_PASSWORD
|
||||
req = urllib.request.Request("%sservices/automation/reload" % HASS_API, headers=headers, method='POST')
|
||||
with urllib.request.urlopen(req) as response:
|
||||
res = json.loads(response.read().decode('utf-8'))
|
||||
print(res)
|
||||
LOG.debug(json.loads(response.read().decode('utf-8')))
|
||||
res['service'] = "called successfully"
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
res['restart'] = str(err)
|
||||
self.wfile.write(bytes(json.dumps(res), "utf8"))
|
||||
return
|
||||
elif req.path == '/api/reload_groups':
|
||||
print("/api/reload_groups")
|
||||
LOG.info("/api/reload_groups")
|
||||
self.send_header('Content-type', 'text/json')
|
||||
self.end_headers()
|
||||
res = {"reload_groups": False}
|
||||
|
@ -2934,10 +2946,10 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
headers["x-ha-access"] = HASS_API_PASSWORD
|
||||
req = urllib.request.Request("%sservices/group/reload" % HASS_API, headers=headers, method='POST')
|
||||
with urllib.request.urlopen(req) as response:
|
||||
res = json.loads(response.read().decode('utf-8'))
|
||||
print(res)
|
||||
LOG.debug(json.loads(response.read().decode('utf-8')))
|
||||
res['service'] = "called successfully"
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
res['restart'] = str(err)
|
||||
self.wfile.write(bytes(json.dumps(res), "utf8"))
|
||||
return
|
||||
|
@ -2957,8 +2969,8 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
boot = response.read().decode('utf-8')
|
||||
|
||||
except Exception as err:
|
||||
print("Exception getting bootstrap")
|
||||
print(err)
|
||||
LOG.warn("Exception getting bootstrap")
|
||||
LOG.warn(err)
|
||||
|
||||
color = "green"
|
||||
try:
|
||||
|
@ -2967,8 +2979,8 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
if VERSION != latest:
|
||||
color = "red"
|
||||
except Exception as err:
|
||||
print("Exception getting release")
|
||||
print(err)
|
||||
LOG.warn("Exception getting release")
|
||||
LOG.warn(err)
|
||||
html = get_html().safe_substitute(bootstrap=boot,
|
||||
current=VERSION,
|
||||
versionclass=color,
|
||||
|
@ -2996,7 +3008,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'filename' in postvars.keys() and 'text' in postvars.keys():
|
||||
|
@ -3015,7 +3027,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
return
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
else:
|
||||
response['message'] = "Missing filename or text"
|
||||
elif req.path == '/api/upload':
|
||||
|
@ -3052,7 +3064,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys():
|
||||
|
@ -3073,20 +3085,20 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
else:
|
||||
response['message'] = "Missing filename or text"
|
||||
elif req.path == '/api/exec_command':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'command' in postvars.keys():
|
||||
|
@ -3110,30 +3122,30 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
try:
|
||||
response['stdout'] = stdout.decode(sys.getdefaultencoding())
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['stdout'] = stdout.decode("utf-8", errors="replace")
|
||||
try:
|
||||
response['stderr'] = stderr.decode(sys.getdefaultencoding())
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['stderr'] = stderr.decode("utf-8", errors="replace")
|
||||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
else:
|
||||
response['message'] = "Missing command"
|
||||
elif req.path == '/api/gitadd':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys():
|
||||
|
@ -3153,20 +3165,20 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
else:
|
||||
response['message'] = "Missing filename"
|
||||
elif req.path == '/api/commit':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys() and 'message' in postvars.keys():
|
||||
|
@ -3188,18 +3200,18 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
except Exception as err:
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
print(response)
|
||||
LOG.debug(response)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "Not a git repository: %s" % (str(err))
|
||||
print("Exception (no repo): %s" % str(err))
|
||||
LOG.warn("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path"
|
||||
elif req.path == '/api/checkout':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys() and 'branch' in postvars.keys():
|
||||
|
@ -3222,18 +3234,18 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
except Exception as err:
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
print(response)
|
||||
LOG.warn(response)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "Not a git repository: %s" % (str(err))
|
||||
print("Exception (no repo): %s" % str(err))
|
||||
LOG.warn("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path or branch"
|
||||
elif req.path == '/api/newbranch':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys() and 'branch' in postvars.keys():
|
||||
|
@ -3255,18 +3267,18 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
except Exception as err:
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
print(response)
|
||||
LOG.warn(response)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "Not a git repository: %s" % (str(err))
|
||||
print("Exception (no repo): %s" % str(err))
|
||||
LOG.warn("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path or branch"
|
||||
elif req.path == '/api/init':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys():
|
||||
|
@ -3286,18 +3298,18 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
except Exception as err:
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
print(response)
|
||||
LOG.warn(response)
|
||||
|
||||
except Exception as err:
|
||||
response['message'] = "Not a git repository: %s" % (str(err))
|
||||
print("Exception (no repo): %s" % str(err))
|
||||
LOG.warn("Exception (no repo): %s" % str(err))
|
||||
else:
|
||||
response['message'] = "Missing path or branch"
|
||||
elif req.path == '/api/newfolder':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys() and 'name' in postvars.keys():
|
||||
|
@ -3316,17 +3328,17 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
elif req.path == '/api/newfile':
|
||||
try:
|
||||
postvars = parse_qs(self.rfile.read(length).decode('utf-8'), keep_blank_values=1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['message'] = "%s" % (str(err))
|
||||
postvars = {}
|
||||
if 'path' in postvars.keys() and 'name' in postvars.keys():
|
||||
|
@ -3346,12 +3358,12 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
self.wfile.write(bytes(json.dumps(response), "utf8"))
|
||||
return
|
||||
except Exception as err:
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
response['error'] = True
|
||||
response['message'] = str(err)
|
||||
except Exception as err:
|
||||
response['message'] = "%s" % (str(err))
|
||||
print(err)
|
||||
LOG.warn(err)
|
||||
else:
|
||||
response['message'] = "Missing filename or text"
|
||||
else:
|
||||
|
@ -3364,7 +3376,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||
|
||||
class AuthHandler(RequestHandler):
|
||||
def do_AUTHHEAD(self):
|
||||
print("Requesting authorization")
|
||||
LOG.info("Requesting authorization")
|
||||
self.send_response(401)
|
||||
self.send_header('WWW-Authenticate', 'Basic realm=\"HASS-PoC-Configurator\"')
|
||||
self.send_header('Content-type', 'text/html')
|
||||
|
@ -3386,7 +3398,7 @@ class AuthHandler(RequestHandler):
|
|||
if BANLIMIT:
|
||||
bancounter = FAIL2BAN_IPS.get(self.client_address[0], 1)
|
||||
if bancounter >= BANLIMIT:
|
||||
print("Blocking access from %s" % self.client_address[0])
|
||||
LOG.warn("Blocking access from %s" % self.client_address[0])
|
||||
self.do_BLOCK()
|
||||
return
|
||||
else:
|
||||
|
@ -3411,7 +3423,7 @@ class AuthHandler(RequestHandler):
|
|||
if BANLIMIT:
|
||||
bancounter = FAIL2BAN_IPS.get(self.client_address[0], 1)
|
||||
if bancounter >= BANLIMIT:
|
||||
print("Blocking access from %s" % self.client_address[0])
|
||||
LOG.warn("Blocking access from %s" % self.client_address[0])
|
||||
self.do_BLOCK()
|
||||
return
|
||||
else:
|
||||
|
@ -3424,7 +3436,7 @@ def main(args):
|
|||
global HTTPD, CREDENTIALS
|
||||
if args:
|
||||
load_settings(args[0])
|
||||
print("Starting server")
|
||||
LOG.info("Starting server")
|
||||
server_address = (LISTENIP, LISTENPORT)
|
||||
if CREDENTIALS:
|
||||
CREDENTIALS = base64.b64encode(bytes(CREDENTIALS, "utf-8"))
|
||||
|
@ -3439,7 +3451,7 @@ def main(args):
|
|||
certfile=SSL_CERTIFICATE,
|
||||
keyfile=SSL_KEY,
|
||||
server_side=True)
|
||||
print('Listening on: %s://%s:%i' % ('https' if SSL_CERTIFICATE else 'http',
|
||||
LOG.info('Listening on: %s://%s:%i' % ('https' if SSL_CERTIFICATE else 'http',
|
||||
LISTENIP,
|
||||
LISTENPORT))
|
||||
if BASEPATH:
|
||||
|
|
26
dev.html
26
dev.html
|
@ -521,7 +521,7 @@
|
|||
<li><a href="#" data-activates="ace_settings" class="ace_settings-collapse">Editor Settings</a></li>
|
||||
<li><a href="#modal_about">About HASS-Configurator</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#modal_check_config">Check HASS Configuration</a></li>
|
||||
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
|
||||
<li><a href="#modal_reload_automations">Reload automations</a></li>
|
||||
<li><a href="#modal_reload_groups">Reload groups</a></li>
|
||||
<li><a href="#modal_restart">Restart HASS</a></li>
|
||||
|
@ -535,7 +535,7 @@
|
|||
<li><a href="#" data-activates="ace_settings" class="ace_settings-collapse">Editor Settings</a></li>
|
||||
<li><a href="#modal_about">About HASS-Configurator</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#modal_check_config">Check HASS Configuration</a></li>
|
||||
<!--<li><a href="#modal_check_config">Check HASS Configuration</a></li>-->
|
||||
<li><a href="#modal_reload_automations">Reload automations</a></li>
|
||||
<li><a href="#modal_reload_groups">Reload groups</a></li>
|
||||
<li><a href="#modal_restart">Restart HASS</a></li>
|
||||
|
@ -2170,34 +2170,22 @@
|
|||
}
|
||||
else {
|
||||
var $toastContent = $("<div><pre>" + resp[0].state + "</pre></div>");
|
||||
Materialize.toast($toastContent, 5000);
|
||||
Materialize.toast($toastContent, 2000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function reload_automations() {
|
||||
$.get("api/reload_automations", function (resp) {
|
||||
if (resp.length == 0) {
|
||||
var $toastContent = $("<div><pre>Automations reloaded.</pre></div>");
|
||||
Materialize.toast($toastContent, 2000);
|
||||
}
|
||||
else {
|
||||
var $toastContent = $("<div><pre>" + resp[0].state + "</pre></div>");
|
||||
Materialize.toast($toastContent, 5000);
|
||||
}
|
||||
var $toastContent = $("<div>Automations reloaded</div>");
|
||||
Materialize.toast($toastContent, 2000);
|
||||
});
|
||||
}
|
||||
|
||||
function reload_groups() {
|
||||
$.get("api/reload_groups", function (resp) {
|
||||
if (resp.length == 0) {
|
||||
var $toastContent = $("<div><pre>Groups reloaded.</pre></div>");
|
||||
Materialize.toast($toastContent, 2000);
|
||||
}
|
||||
else {
|
||||
var $toastContent = $("<div><pre>" + resp[0].state + "</pre></div>");
|
||||
Materialize.toast($toastContent, 5000);
|
||||
}
|
||||
var $toastContent = $("<div><pre>Groups reloaded</pre></div>");
|
||||
Materialize.toast($toastContent, 2000);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue