summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2014-06-07 00:14:05 -0400
committerJoey Hess2014-06-07 00:14:05 -0400
commit582be8ebe00838509d978091d3c97ebeb1bf99de (patch)
treeffef9bbb4ef25db03cf48962058146258993652f
parent969db1ed56157aa202359c0f47fff783baba6eac (diff)
combineProperties no longer stops when a property fails; now it continues trying to satisfy all properties on the list before propigating the failure.
Audited all of my calls to combineProperties and they should be fine with this behavior.. which suggests it's the right behavior.
-rw-r--r--debian/changelog8
-rw-r--r--propellor.cabal2
-rw-r--r--src/Propellor/Property.hs12
-rw-r--r--src/Propellor/Property/Ssh.hs2
4 files changed, 12 insertions, 12 deletions
diff --git a/debian/changelog b/debian/changelog
index 046cf607..5b6cdcbc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+propellor (0.7.0) UNRELEASED; urgency=medium
+
+ * combineProperties no longer stops when a property fails; now it continues
+ trying to satisfy all properties on the list before propigating the
+ failure.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 07 Jun 2014 00:12:44 -0400
+
propellor (0.6.0) unstable; urgency=medium
* Docker containers now propagate DNS attributes out to the host they're
diff --git a/propellor.cabal b/propellor.cabal
index 350215fd..41486dd8 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -1,5 +1,5 @@
Name: propellor
-Version: 0.6.0
+Version: 0.7.0
Cabal-Version: >= 1.6
License: BSD3
Maintainer: Joey Hess <joey@kitenet.net>
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs
index c7a03765..8e419a6b 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -26,7 +26,8 @@ propertyList :: Desc -> [Property] -> Property
propertyList desc ps = Property desc (ensureProperties ps) (combineAttrs ps)
-- | Combines a list of properties, resulting in one property that
--- ensures each in turn, stopping on failure.
+-- ensures each in turn. Does not stop on failure; does propigate
+-- overall success/failure.
combineProperties :: Desc -> [Property] -> Property
combineProperties desc ps = Property desc (go ps NoChange) (combineAttrs ps)
where
@@ -37,15 +38,6 @@ combineProperties desc ps = Property desc (go ps NoChange) (combineAttrs ps)
FailedChange -> return FailedChange
_ -> go ls (r <> rs)
--- | Does not stop on failure (but does propigate failure at the end).
-combineProperties' :: Desc -> [Property] -> Property
-combineProperties' desc ps = Property desc (go ps NoChange) (combineAttrs ps)
- where
- go [] rs = return rs
- go (l:ls) rs = do
- r <- ensureProperty l
- go ls (r <> rs)
-
-- | Combines together two properties, resulting in one property
-- that ensures the first, and if the first succeeds, ensures the second.
-- The property uses the description of the first property.
diff --git a/src/Propellor/Property/Ssh.hs b/src/Propellor/Property/Ssh.hs
index ba0311cc..061f440c 100644
--- a/src/Propellor/Property/Ssh.hs
+++ b/src/Propellor/Property/Ssh.hs
@@ -97,7 +97,7 @@ hostKey keytype = combineProperties desc
-- | Sets up a user with a ssh private key and public key pair
-- from the site's PrivData.
keyImported :: SshKeyType -> UserName -> Property
-keyImported keytype user = combineProperties' desc
+keyImported keytype user = combineProperties desc
[ property desc (install writeFile (SshPubKey keytype user) ".pub")
, property desc (install writeFileProtected (SshPrivKey keytype user) "")
]