Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions agent/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,17 @@ def get_bench(self, bench):
except KeyError:
raise BenchNotExistsException(bench)

@job("Append Authorized Key to frappe", priority="low")
def append_authorized_key(self, text):
import io, os, stat
if not text:
return
path = "/home/frappe/.ssh/authorized_keys"
with open(path, "a") as f:
f.seek(0, io.SEEK_END)
f.write(f"\n{text}")
os.chmod(path, stat.S_IRUSR | stat.S_IWUSR)

@property
def job_record(self):
if self.job is None:
Expand Down
6 changes: 6 additions & 0 deletions agent/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,12 @@ def retrieve_ssh_session_log(filename):
return {"log_details": Security().retrieve_ssh_session_log(filename)}


@application.route("/server/append_authorized_key", methods=["POST"])
def append_authorized_key():
text = request.json or None
return {"job": Server().append_authorized_key(text)}


@application.route(
"/benches/<string:bench>/sites/<string:site>/sid", methods=["GET", "POST"]
)
Expand Down