packages feed

propellor 0.9.0 → 0.9.1

raw patch · 10 files changed

+74/−20 lines, 10 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Propellor.Property.Docker: name :: String -> Property
+ Propellor.Info: findHostNoAlias :: [Host] -> HostName -> Maybe Host
+ Propellor.Property: (&^) :: IsProp p => Host -> p -> Host
+ Propellor.Property.Docker: restartAlways :: Property
+ Propellor.Property.Docker: restartNever :: Property
+ Propellor.Property.Docker: restartOnFailure :: Maybe Int -> Property

Files

CHANGELOG view
@@ -1,3 +1,12 @@+propellor (0.9.1) unstable; urgency=medium++  * Docker: Add ability to control when containers restart.+  * Docker: Default to always restarting containers, so they come back +    up after reboots and docker daemon upgrades.+  * Fix loop when a docker host that does not exist was docked.++ -- Joey Hess <joeyh@debian.org>  Fri, 24 Oct 2014 09:57:31 -0400+ propellor (0.9.0) unstable; urgency=medium    * Avoid encoding the current stable suite in propellor's code,
config-joey.hs view
@@ -53,7 +53,6 @@ 	& Apt.buildDep ["git-annex"] `period` Daily 	& Docker.configured 	! Docker.docked hosts "android-git-annex"-	! Docker.docked hosts "webserver"  clam :: Host clam = standardSystem "clam.kitenet.net" Unstable "amd64"
debian/changelog view
@@ -1,3 +1,12 @@+propellor (0.9.1) unstable; urgency=medium++  * Docker: Add ability to control when containers restart.+  * Docker: Default to always restarting containers, so they come back +    up after reboots and docker daemon upgrades.+  * Fix loop when a docker host that does not exist was docked.++ -- Joey Hess <joeyh@debian.org>  Fri, 24 Oct 2014 09:57:31 -0400+ propellor (0.9.0) unstable; urgency=medium    * Avoid encoding the current stable suite in propellor's code,
debian/control view
@@ -19,7 +19,7 @@ Maintainer: Joey Hess <joeyh@debian.org> Standards-Version: 3.9.5 Vcs-Git: git://git.kitenet.net/propellor-Homepage: http://joeyh.name/code/propellor/+Homepage: http://propellor.branchable.com/  Package: propellor Architecture: any
propellor.cabal view
@@ -1,5 +1,5 @@ Name: propellor-Version: 0.9.0+Version: 0.9.1 Cabal-Version: >= 1.6 License: BSD3 Maintainer: Joey Hess <joey@kitenet.net>
src/Propellor/Info.hs view
@@ -80,7 +80,10 @@ 	map (\h -> map (\aka -> (aka, h)) $ S.toList $ _aliases $ hostInfo h)  findHost :: [Host] -> HostName -> Maybe Host-findHost l hn = maybe (findAlias l hn) Just (M.lookup hn (hostMap l))+findHost l hn = maybe (findAlias l hn) Just (findHostNoAlias l hn)++findHostNoAlias :: [Host] -> HostName -> Maybe Host+findHostNoAlias l hn = M.lookup hn (hostMap l)  findAlias :: [Host] -> HostName -> Maybe Host findAlias l hn = M.lookup hn (aliasMap l)
src/Propellor/Property.hs view
@@ -135,7 +135,7 @@ -- -- Can add Properties and RevertableProperties (&) :: IsProp p => Host -> p -> Host-(Host hn ps as) & p = Host hn (ps ++ [toProp p]) (as <> getInfo p)+(Host hn ps is) & p = Host hn (ps ++ [toProp p]) (is <> getInfo p)  infixl 1 & @@ -144,6 +144,14 @@ h ! p = h & revert p  infixl 1 !++-- | Like (&), but adds the property as the first property of the host.+-- Normally, property order should not matter, but this is useful+-- when it does.+(&^) :: IsProp p => Host -> p -> Host+(Host hn ps is) &^ p = Host hn ([toProp p] ++ ps) (getInfo p <> is)++infixl 1 &^  -- Changes the action that is performed to satisfy a property.  adjustProperty :: Property -> (Propellor Result -> Propellor Result) -> Property
src/Propellor/Property/Docker.hs view
@@ -19,7 +19,6 @@ 	-- * Container configuration 	dns, 	hostname,-	name, 	publish, 	expose, 	user,@@ -30,6 +29,9 @@ 	cpuShares, 	link, 	ContainerAlias,+	restartAlways,+	restartOnFailure,+	restartNever, 	-- * Internal use 	chain, ) where@@ -106,7 +108,7 @@ 		let cid = ContainerId hn cn 		ensureProperties [findContainer mhost cid cn $ a cid] 		-	mhost = findHost hosts (cn2hn cn)+	mhost = findHostNoAlias hosts (cn2hn cn)  	setup cid (Container image runparams) = 		provisionContainer cid@@ -150,14 +152,18 @@ mkContainer :: ContainerId -> Host -> Maybe Container mkContainer cid@(ContainerId hn _cn) h = Container 	<$> fromVal (_dockerImage info)-	<*> pure (map (\a -> a hn) (_dockerRunParams info))+	<*> pure (map (\mkparam -> mkparam hn) (_dockerRunParams info))   where 	info = _dockerinfo $ hostInfo h' 	h' = h-		-- expose propellor directory inside the container+		-- Restart by default so container comes up on+		-- boot or when docker is upgraded.+		&^ restartAlways+		-- Expose propellor directory inside the container. 		& volume (localdir++":"++localdir)-		-- name the container in a predictable way so we-		-- and the user can easily find it later+		-- Name the container in a predictable way so we+		-- and the user can easily find it later. This property+		-- comes last, so it cannot be overridden. 		& name (fromContainerId cid)  -- | Causes *any* docker images that are not in use by running containers to@@ -217,7 +223,7 @@ hostname :: String -> Property hostname = runProp "hostname" --- | Set name for container. (Normally done automatically.)+-- | Set name of container. name :: String -> Property name = runProp "name" @@ -273,6 +279,25 @@ -- | A short alias for a linked container. -- Each container has its own alias namespace. type ContainerAlias = String++-- | This property is enabled by default for docker containers configured by+-- propellor; as well as keeping badly behaved containers running,+-- it ensures that containers get started back up after reboot or+-- after docker is upgraded.+restartAlways :: Property+restartAlways = runProp "restart" "always"++-- | Docker will restart the container if it exits nonzero.+-- If a number is provided, it will be restarted only up to that many+-- times.+restartOnFailure :: Maybe Int -> Property+restartOnFailure Nothing = runProp "restart" "on-failure"+restartOnFailure (Just n) = runProp "restart" ("on-failure:" ++ show n)++-- | Makes docker not restart a container when it exits+-- Note that this includes not restarting it on boot!+restartNever :: Property+restartNever = runProp "restart" "no"  -- | A container is identified by its name, and the host -- on which it's deployed.
src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs view
@@ -65,6 +65,7 @@ buildDepsApt :: Property buildDepsApt = combineProperties "gitannexbuilder build deps" 	[ Apt.buildDep ["git-annex"]+	, Apt.installed ["liblockfile-simple-perl"] 	, buildDepsNoHaskellLibs 	, "git-annex source build deps installed" ==> Apt.buildDepIn builddir 	]@@ -113,17 +114,14 @@ 	& os osver 	& Apt.stdSourcesList 	& Apt.installed ["systemd"]+	& Docker.tweaked 	& User.accountFor builduser 	& File.dirExists gitbuilderdir 	& File.ownerGroup homedir builduser builduser-	& buildDepsNoHaskellLibs+	& buildDepsApt 	& flagFile chrootsetup ("/chrootsetup") 		`requires` setupgitannexdir-	& Docker.tweaked-	-- TODO: automate installing haskell libs-	-- (Currently have to run-	-- git-annex/standalone/android/install-haskell-packages-	-- which is not fully automated.)+	& flagFile haskellpkgsinstalled ("/haskellpkgsinstalled")   where 	-- Use git-annex's android chroot setup script, which will install 	-- ghc-android and the NDK, all build deps, etc, in the home@@ -131,7 +129,10 @@ 	chrootsetup = scriptProperty 		[ "cd " ++ gitannexdir ++ " && ./standalone/android/buildchroot-inchroot" 		]-	osver = System (Debian (Stable "wheezy")) "i386"+	haskellpkgsinstalled = userScriptProperty "builder"+		[ "cd " ++ gitannexdir ++ " && ./standalone/android/install-haskell-packages"+		]+	osver = System (Debian Testing) "i386" -- once jessie is released, use: (Stable "jessie")  -- armel builder has a companion container using amd64 that -- runs the build first to get TH splices. They need
src/Propellor/Property/SiteSpecific/JoeySites.hs view
@@ -72,7 +72,7 @@ oldUseNetShellBox :: Property oldUseNetShellBox = propertyList "olduse.net shellbox" 	[ oldUseNetInstalled "oldusenet"-	, Service.running "oldusenet"+	, Service.running "shellinabox" 	]  oldUseNetInstalled :: Apt.Package -> Property