37 lines
1.2 KiB
Clojure
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)))))))
|
|
|
|
|
|
|