summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-farm-jobset.el29
-rw-r--r--build-farm-url.el11
2 files changed, 33 insertions, 7 deletions
diff --git a/build-farm-jobset.el b/build-farm-jobset.el
index 705c663..11953e4 100644
--- a/build-farm-jobset.el
+++ b/build-farm-jobset.el
@@ -36,6 +36,10 @@
(nrfailed . failed)
(nrtotal . total)))
+(defun build-farm-jobset-id (project jobset)
+ "Return jobset ID from PROJECT name and JOBSET name."
+ (concat project "/" jobset))
+
(defun build-farm-jobset-get-display (search-type &rest args)
"Search for jobsets and show results.
See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS."
@@ -47,7 +51,9 @@ See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS."
(defun build-farm-jobset-filter-id (entry)
"Add 'ID' parameter to 'jobset' ENTRY."
- (cons `(id . ,(bui-entry-non-void-value entry 'name))
+ (cons `(id . ,(build-farm-jobset-id
+ (bui-entry-non-void-value entry 'project)
+ (bui-entry-non-void-value entry 'name)))
entry))
@@ -101,9 +107,7 @@ See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS."
(defun build-farm-jobset-info-insert-url (entry)
"Insert URL for the jobset ENTRY."
- (bui-insert-button (build-farm-jobset-url
- (bui-entry-non-void-value entry 'project)
- (bui-entry-non-void-value entry 'name))
+ (bui-insert-button (build-farm-jobset-url (bui-entry-id entry))
'bui-url)
(bui-newline))
@@ -155,6 +159,23 @@ for all ARGS."
(interactive (list (build-farm-read-project)))
(build-farm-jobset-get-display 'project project))
+;; Info returned for multiple jobsets (from "api/jobsets") and for a
+;; single jobset (from "jobset") are completely different! Compare:
+;;
+;; (build-farm-receive-data "https://hydra.nixos.org/jobset/hydra/master")
+;; (build-farm-receive-data "https://hydra.nixos.org/api/jobsets?project=hydra")
+;;
+;; How this duality can be supported? Maybe make another
+;; "jobset-configuration" interface? Anyway, `build-farm-jobset'
+;; command is not available yet.
+
+;; (defun build-farm-jobset (project jobset)
+;; "Display JOBSET of PROJECT."
+;; (interactive (list (build-farm-read-project)
+;; (build-farm-read-jobset project)))
+;; (build-farm-jobset-get-display
+;; 'id (build-farm-jobset-id project jobset)))
+
(provide 'build-farm-jobset)
;;; build-farm-jobset.el ends here
diff --git a/build-farm-url.el b/build-farm-url.el
index 1b47d64..0280d24 100644
--- a/build-farm-url.el
+++ b/build-farm-url.el
@@ -123,9 +123,14 @@ Skip ARG, if VALUE is nil or an empty string."
(build-farm-api-url "queue"
`(("nr" . ,number))))
-(defun build-farm-jobset-url (project jobset)
- "Return URL of a PROJECT's JOBSET."
- (build-farm-url "jobset/" project "/" jobset))
+(defun build-farm-jobset-url (project-or-id &optional jobset)
+ "Return URL of a PROJECT's JOBSET.
+If a single argument (PROJECT-OR-ID) is specified, it should have
+a form 'project/jobset'."
+ (let ((jobset-id (if jobset
+ (concat project-or-id "/" jobset)
+ project-or-id)))
+ (build-farm-url "jobset/" jobset-id)))
(defun build-farm-jobset-api-url (project)
"Return API URL for jobsets by PROJECT."