Module lib.webpage.systempage
Function define the web page to manage board
Expand source code
# Distributed under Pycameresp License
# Copyright (c) 2023 Remi BERTHOLET
""" Function define the web page to manage board """
import server.httpserver
import wifi.station
from htmltemplate import *
import webpage.mainpage
import tools.lang
import tools.archiver
import tools.filesystem
import tools.logger
import tools.system
import tools.tasking
@server.httpserver.HttpServer.add_route(b'/system', menu=tools.lang.menu_system, item=tools.lang.item_system)
async def system_page(request, response, args):
""" Function define the web page to manage system of the board """
page = webpage.mainpage.main_frame(request, response, args, tools.lang.system_management_s%wifi.station.Station.get_hostname(),
Form([
FormGroup([
Label(text=tools.lang.configuration ), Br(),
UploadFile (text=tools.lang.upload, path=b"/system/upload_config", alert=tools.lang.configuration_uploaded, accept=b".cfs"), Space(),
DownloadFile(text=tools.lang.download, path=b"/system/download_config", filename=b"%s.config.cfs"%wifi.station.Station.get_hostname()),
]),
FormGroup([
Label(text=tools.lang.file_system), Br(),
UploadFile (text=tools.lang.upload, path=b"/system/upload_file_system", alert=tools.lang.upload_in_progress, accept=b".cfs"), Space(),
DownloadFile(text=tools.lang.download, path=b"/system/download_file_system", filename=b"%s.filesystem.cfs"%wifi.station.Station.get_hostname()),
]),
FormGroup([
Label(text=tools.lang.syslog), Br(),
DownloadFile(text=tools.lang.download, path=b"/system/download_syslog", filename=b"%s.syslog.log"%wifi.station.Station.get_hostname()),
]),
FormGroup([
Label(text=tools.lang.reboot_device), Br(),
ButtonCmd(text=tools.lang.reboot,path=b"/system/reboot",confirm=tools.lang.confirm_reboot, name=b"reboot")
])
])
)
await response.send_page(page)
@server.httpserver.HttpServer.add_route(b'/system/upload_config')
async def upload_config(request, response, args):
""" Upload configuration """
tools.tasking.Tasks.slow_down()
file = request.get_content_filename()
tools.archiver.upload_files(file)
await response.send_ok()
@server.httpserver.HttpServer.add_route(b'/system/download_config')
async def download_config(request, response, args):
""" Download configuration """
tools.tasking.Tasks.slow_down()
tools.archiver.download_files("config.cfg", path="./config", pattern="*.json", excludes=["*.tmp","sd/*",".DS_Store"], recursive=False)
await response.send_file(b"config.cfg", headers=request.headers)
tools.filesystem.remove("config.cfg")
@server.httpserver.HttpServer.add_route(b'/system/upload_file_system')
async def upload_file_system(request, response, args):
""" Upload file system """
tools.tasking.Tasks.slow_down()
tools.archiver.upload_files(request.get_content_filename())
await reboot(request, response, args)
@server.httpserver.HttpServer.add_route(b'/system/download_file_system')
async def download_file_system(request, response, args):
""" Download file system """
tools.tasking.Tasks.slow_down()
tools.archiver.download_files("fileSystem.cfs", path="./",pattern="*.*", excludes=["*.tmp","config/*","sd/*","syslog.*","www/bootstrap.*",".DS_Store"], recursive=True)
await response.send_file(b"fileSystem.cfs", headers=request.headers)
tools.filesystem.remove("fileSystem.cfs")
@server.httpserver.HttpServer.add_route(b'/system/download_syslog')
async def download_syslog(request, response, args):
""" Download syslog """
tools.tasking.Tasks.slow_down()
await response.send_file([b"syslog.log.4",b"syslog.log.3",b"syslog.log.2",b"syslog.log.1",b"syslog.log"], headers=request.headers)
@server.httpserver.HttpServer.add_route(b'/system/reboot')
async def reboot(request, response, args):
""" Reboot device """
try:
await response.send_ok()
except Exception as err:
tools.logger.syslog(err)
try:
tools.system.reboot("Reboot asked on system html page")
except Exception as err:
tools.logger.syslog(err)
Functions
async def download_config(request, response, args)-
Download configuration
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/download_config') async def download_config(request, response, args): """ Download configuration """ tools.tasking.Tasks.slow_down() tools.archiver.download_files("config.cfg", path="./config", pattern="*.json", excludes=["*.tmp","sd/*",".DS_Store"], recursive=False) await response.send_file(b"config.cfg", headers=request.headers) tools.filesystem.remove("config.cfg") async def download_file_system(request, response, args)-
Download file system
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/download_file_system') async def download_file_system(request, response, args): """ Download file system """ tools.tasking.Tasks.slow_down() tools.archiver.download_files("fileSystem.cfs", path="./",pattern="*.*", excludes=["*.tmp","config/*","sd/*","syslog.*","www/bootstrap.*",".DS_Store"], recursive=True) await response.send_file(b"fileSystem.cfs", headers=request.headers) tools.filesystem.remove("fileSystem.cfs") async def download_syslog(request, response, args)-
Download syslog
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/download_syslog') async def download_syslog(request, response, args): """ Download syslog """ tools.tasking.Tasks.slow_down() await response.send_file([b"syslog.log.4",b"syslog.log.3",b"syslog.log.2",b"syslog.log.1",b"syslog.log"], headers=request.headers) async def reboot(request, response, args)-
Reboot device
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/reboot') async def reboot(request, response, args): """ Reboot device """ try: await response.send_ok() except Exception as err: tools.logger.syslog(err) try: tools.system.reboot("Reboot asked on system html page") except Exception as err: tools.logger.syslog(err) async def system_page(request, response, args)-
Function define the web page to manage system of the board
Expand source code
@server.httpserver.HttpServer.add_route(b'/system', menu=tools.lang.menu_system, item=tools.lang.item_system) async def system_page(request, response, args): """ Function define the web page to manage system of the board """ page = webpage.mainpage.main_frame(request, response, args, tools.lang.system_management_s%wifi.station.Station.get_hostname(), Form([ FormGroup([ Label(text=tools.lang.configuration ), Br(), UploadFile (text=tools.lang.upload, path=b"/system/upload_config", alert=tools.lang.configuration_uploaded, accept=b".cfs"), Space(), DownloadFile(text=tools.lang.download, path=b"/system/download_config", filename=b"%s.config.cfs"%wifi.station.Station.get_hostname()), ]), FormGroup([ Label(text=tools.lang.file_system), Br(), UploadFile (text=tools.lang.upload, path=b"/system/upload_file_system", alert=tools.lang.upload_in_progress, accept=b".cfs"), Space(), DownloadFile(text=tools.lang.download, path=b"/system/download_file_system", filename=b"%s.filesystem.cfs"%wifi.station.Station.get_hostname()), ]), FormGroup([ Label(text=tools.lang.syslog), Br(), DownloadFile(text=tools.lang.download, path=b"/system/download_syslog", filename=b"%s.syslog.log"%wifi.station.Station.get_hostname()), ]), FormGroup([ Label(text=tools.lang.reboot_device), Br(), ButtonCmd(text=tools.lang.reboot,path=b"/system/reboot",confirm=tools.lang.confirm_reboot, name=b"reboot") ]) ]) ) await response.send_page(page) async def upload_config(request, response, args)-
Upload configuration
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/upload_config') async def upload_config(request, response, args): """ Upload configuration """ tools.tasking.Tasks.slow_down() file = request.get_content_filename() tools.archiver.upload_files(file) await response.send_ok() async def upload_file_system(request, response, args)-
Upload file system
Expand source code
@server.httpserver.HttpServer.add_route(b'/system/upload_file_system') async def upload_file_system(request, response, args): """ Upload file system """ tools.tasking.Tasks.slow_down() tools.archiver.upload_files(request.get_content_filename()) await reboot(request, response, args)