mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
commissioning: the layer, the acceptance tests, the harness rule, the docs, and the bench drills
meta-forgefirm: the forgefirm-users init replays the account at boot; sshd refuses root and empty passwords and runs only while the panel turns it on; the release image keeps an empty root password for the console; the console banner; avahi announces forgefirm.local; https in libmicrohttpd and ulfius; the panel on 80 and 443; the license bundle on the rootfs; release.sh checks the root policy on the built rootfs. forgetest: the commission suites (commission, commission_dark, commission_sheet: 23 cases); the runner turns cloud mode on with the typed phrase for a test that declares it; the baseline's motor_lock is 0; the log-export test checks the bundle for the camera key; the record helpers write bytes as given and join the daemon's paths as POSIX. The stream harness gains rule 24: a hold verdict is held again after a resume. Bench drills: lens_travel.py and lens_stop_accel.py. Docs: BRINGUP carries the present state; CAMPAIGN-LOG carries the dated record.
This commit is contained in:
@@ -108,6 +108,7 @@ class FakeForgectrl:
|
||||
}
|
||||
self.posts = []
|
||||
self.on_post = None
|
||||
self.on_get = None # (path, query) -> (status, body) | (status, bytes, ctype) | None
|
||||
fake = self
|
||||
|
||||
class H(http.server.BaseHTTPRequestHandler):
|
||||
@@ -123,7 +124,18 @@ class FakeForgectrl:
|
||||
self.wfile.write(data)
|
||||
|
||||
def do_GET(self):
|
||||
path = self.path.split("?", 1)[0]
|
||||
path, _, query = self.path.partition("?")
|
||||
if fake.on_get:
|
||||
r = fake.on_get(path, dict(_up.parse_qsl(query, keep_blank_values=True)))
|
||||
if r is not None:
|
||||
if isinstance(r[1], (bytes, bytearray)):
|
||||
self.send_response(r[0])
|
||||
self.send_header("Content-Type", r[2] if len(r) > 2 else "application/octet-stream")
|
||||
self.send_header("Content-Length", str(len(r[1])))
|
||||
self.end_headers()
|
||||
self.wfile.write(r[1])
|
||||
return
|
||||
return self._send(r[0], r[1])
|
||||
key = {"/mode": "mode", "/status": "status", "/cool/status": "cool", "/cam/status": "cam",
|
||||
"/diag/status": "diag", "/settings": "settings",
|
||||
"/logs/tail": "logs_tail"}.get(path)
|
||||
|
||||
Reference in New Issue
Block a user