exim-config: Advance to new upstream version.
[distorted-ansible] / hosts / host-defs.lisp
index 5e6039b..1b69df6 100644 (file)
       (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))))))))
@@ -26,7 +31,7 @@
 (defhook (prio-groups)
   (dohosts (host)
     (when (eq (hostprop host :vm-role) :host)
-      (add-group (intern (concatenate 'string (string host) "-guests"))
+      (add-group (intern (concatenate 'string (string host) "-GUESTS"))
                 :predicate (lambda (h) (eql (hostprop h :vm-host) host))))))
 
 ;; For each `:os' flavour, define a group of hosts running it.
        (when foundp (pushnew os oses))))
     (dolist (os-mut oses)
       (let ((os os-mut))
-       (add-group (intern (concatenate 'string (string os) "-hosts"))
+       (add-group (intern (concatenate 'string (string os) "-HOSTS"))
                   :predicate (lambda (h) (eql (hostprop h :os) os)))))))
 
 ;; For each ROLE listed in a `:server' list, define a `ROLE-servers' group.
 (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"))
+       (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 --------------------------------------------------