Add encrypted configuration backup and planned restore
This commit is contained in:
1 parent
18adaf4a52
commit
e7a1deaab0
22 files changed
+844
-28
No files matched your search
@@ -143,6 +143,12 @@ class Manager:
|
||||
return self.video_status(config)
|
||||
def dispatch(self,data):
|
||||
if not isinstance(data,dict):raise ValueError('Ungültige Helferanfrage.')
|
||||
if data.get('action')=='backup-export' and set(data)=={'action'}:
|
||||
import docker_backup
|
||||
return docker_backup.export(self)
|
||||
if data.get('action')=='backup-restore' and set(data)=={'action','container'}:
|
||||
import docker_backup
|
||||
return docker_backup.restore(self,data['container'])
|
||||
if set(data)=={'action','service'} and data['action'] in ('video-start','video-stop'):
|
||||
return self.video_action(data['service'],data['action']=='video-start')
|
||||
if set(data)!={'action'}:raise ValueError('Ungültige Helferanfrage.')
|
||||
@@ -197,8 +203,8 @@ class Handler(socketserver.StreamRequestHandler):
|
||||
try:
|
||||
_,uid,_=struct.unpack('3i',self.connection.getsockopt(socket.SOL_SOCKET,socket.SO_PEERCRED,12))
|
||||
if uid not in (0,self.server.client_uid):raise ValueError('Client nicht erlaubt.')
|
||||
raw=self.rfile.readline(4097)
|
||||
if len(raw)>4096:raise ValueError('Anfrage zu groß.')
|
||||
raw=self.rfile.readline(67108865)
|
||||
if len(raw)>67108864:raise ValueError('Anfrage zu groß.')
|
||||
data=json.loads(raw)
|
||||
if isinstance(data,dict) and data.get('action')=='video-http':
|
||||
self.connection.settimeout(3600);video_http(self.server.manager,data,self.rfile,self.wfile);return
|
||||
|
||||
Reference in new issue
Block a user