aboutsummaryrefslogtreecommitdiff
path: root/src/property.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/property.lisp')
-rw-r--r--src/property.lisp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/property.lisp b/src/property.lisp
index 9e517f2..ac66c38 100644
--- a/src/property.lisp
+++ b/src/property.lisp
@@ -512,19 +512,24 @@ Called by property :HOSTATTRS subroutines."
(setf (getf (slot-value *host* 'hostattrs) k)
(append vs (get-hostattrs k))))
-(defun pushnew-hostattrs (k &rest vs)
- "Push new static informational attributes VS of type KEY.
-
-Called by property :HOSTATTRS subroutines."
+(defun pushnew-hostattr (k v &key (test #'equal))
+ "Push new static informational attribute V of type K.
+TEST is passed on to PUSHNEW. Called by property :HOSTATTRS subroutines."
+ (pushnew-hostattrs k (list v) :test test))
+
+(defun pushnew-hostattrs (k vs &key (test #'equal))
+ "Push new static informational attributes VS of type K.
+VS is a list of items. TEST is passed on to PUSHNEW. Called by property
+:HOSTATTRS subroutines."
(dolist (v (reverse vs))
- (pushnew v (getf (slot-value *host* 'hostattrs) k))))
+ (pushnew v (getf (slot-value *host* 'hostattrs) k) :test test)))
(defun require-data (iden1 iden2)
- "Wrapper around PUSH-HOSTATTRS to indicate that a piece of prerequisite data
+ "Wrapper around PUSHNEW-HOSTATTR to indicate that a piece of prerequisite data
is needed to deploy a property.
Called by property :HOSTATTRS subroutines."
- (pushnew-hostattrs :data (cons iden1 iden2)))
+ (pushnew-hostattr :data (cons iden1 iden2)))
(defun get-hostname (&optional (host *host*))
"Get the hostname of HOST, defaulting to the host to which properties are