toaster.do/clojure_frontend/src/toaster/jobs.clj

37 lines
1.2 KiB
Clojure

(ns toaster.jobs
(:require
[clojure.string :as str]
[clojure.java.io :as io]
[failjure.core :as f]
[taoensso.timbre :as log :refer [debug]]
[me.raynes.conch :as sh :refer [with-programs]]
[toaster.webpage :as web]
[hiccup.form :as hf]))
(defn add [path config account]
(with-programs [ssh scp]
(let [jobname "test@dyne.org-vm_amd64-12345678" ;; TODO:
jobdir (str "/srv/toaster/" jobname)]
(f/attempt-all
[r_mkdir (ssh "-i" "../id_ed25519" "jenkins@sdk.bridge" "mkdir" "-p" jobdir )
r_scp (scp "-i" "../id_ed25519" path (str "jenkins@sdk.bridge:" jobdir))
r_ssh (ssh "-i" "../id_ed25519" "jenkins@sdk.bridge" "sync_jobs.py" "-a" jobname {:verbose true})]
(f/when-failed [e]
(web/render-error-page
(str "Job add failure: " (f/message e))))))))
(defn listall [config]
(with-programs [ssh]
(f/attempt-all
[r_ssh (ssh "-i" "../id_ed25519" "jenkins@sdk.bridge" "sync_jobs.py" "-l" "all" {:verbose true})]
;; (let [jobs (str/split (:stdout r_ssh) #" ")]
;; jobs)
(:stdout r_ssh)
(f/when-failed [e]
(web/render-error-page
(str "Job list failure: " (f/message e)))))))