aboutsummaryrefslogtreecommitdiff
path: root/src/deployment.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-10-06 11:36:25 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-10-29 11:48:41 -0700
commit7e73746220aacc750c30340e9a960f839baa228e (patch)
tree1faf054619fa0f99966cdebe6846608657594b8b /src/deployment.lisp
parent8837b71e02d93787de60d454a493a8801a6427a5 (diff)
downloadconsfigurator-7e73746220aacc750c30340e9a960f839baa228e.tar.gz
add & propagate :NO-SERVICES connattr and respect in LIBVIRT:STARTED
This change was prompted by the realisation that RECONNECTS nullifies any enclosing SERVICE:WITHOUT-STARTING-SERVICES because *HOST* during RECONNECTS is a distinct HOST value, computed at hostattrs time, which can't be affected by an enclosing combinator that works by temporarily pushing hostattrs at :APPLY time. So, for example, if we chroot and subsequently establish a :SETUID connection, properties might try to start services as the non-root user and there is no way for them to know they shouldn't. We can avoid this problem by using a connattr instead because we have a mechanism for propagating connattrs to subsequently established connections. And as in most cases the reason for not starting services is solely due to the way in which we're connecting to the host, a connattr is more appropriate. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/deployment.lisp')
-rw-r--r--src/deployment.lisp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/deployment.lisp b/src/deployment.lisp
index 444972a..097bb9b 100644
--- a/src/deployment.lisp
+++ b/src/deployment.lisp
@@ -306,7 +306,11 @@ PROPERTIES, like DEPLOY-THESE."
(defprop reconnects :posix (connections properties)
"Connect back to the same host with CONNECTIONS and apply PROPERTIES.
Mainly useful for using a connection type like :AS to apply properties as a
-different user."
+different user.
+
+Combinators that work by temporarily pushing hostattrs at :APPLY time will not
+be able to affect PROPERTIES in an application of RECONNECTS they enclose.
+Connection attributes, by contrast, are propagated as usual."
(:desc (declare (ignore properties))
(format nil "~S reconnection" connections))
(:preprocess