X-Git-Url: https://git.distorted.org.uk/~mdw/distorted-ansible/blobdiff_plain/7be16879925948d5b4bec73d20b4a674b230d74c..HEAD:/hosts/host-defs.lisp diff --git a/hosts/host-defs.lisp b/hosts/host-defs.lisp index ae5fd1e..1b69df6 100644 --- a/hosts/host-defs.lisp +++ b/hosts/host-defs.lisp @@ -10,7 +10,12 @@ (when foundp (hostprop-default vmhost :vm-role :host) (hostprop-default host :vm-role :guest) - (pushnew host (hostprop vmhost :guests)) + (let ((guests (or (hostprop vmhost :guests) + (setf (hostprop vmhost :guests) + (make-array 16 + :adjustable t + :fill-pointer 0))))) + (vector-push-extend host guests)) (dolist (prop '(:location :hypervisor)) (multiple-value-bind (value foundp) (hostprop vmhost prop) (when foundp (hostprop-default host prop value)))))))) @@ -44,12 +49,12 @@ (defhook (prio-groups) (let ((server-roles nil)) (dohosts (host) - (dolist (role (hostprop host :server)) - (pushnew role server-roles))) + (map 'nil (lambda (role) (pushnew role server-roles)) + (hostprop host :server))) (dolist (r server-roles) (let ((role r)) (add-group (intern (concatenate 'string (string role) "-SERVERS")) :predicate (lambda (h) - (member role (hostprop h :server)))))))) + (find role (hostprop h :server)))))))) ;;;----- That's all, folks --------------------------------------------------