summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) "")
]