Lisp: Change Lisp-to-JSON conventions.
[distorted-ansible] / hosts / host-defs.lisp
index ae5fd1e..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))))))))
 (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 --------------------------------------------------