diff options
| author | Joey Hess <joey@kitenet.net> | 2014-10-23 12:11:07 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-10-23 12:11:43 -0400 |
| commit | 73a75cbefc242133b921fe7314e596ea12bdfbea (patch) | |
| tree | 17c184354d7bd4d2f5ce3d862ebdff2e13d124c6 | |
| parent | 5c480fc9e7279d76e5fe4dbab8b339a71de3bc67 (diff) | |
Fix loop when a docker host that does not exist was docked.
The problem is it fell back to looking for an alias for the bad hostname,
but to get the aliases, it needs to know which hosts are docked where,
so looped.
| -rw-r--r-- | debian/changelog | 1 | ||||
| -rw-r--r-- | src/Propellor/Info.hs | 5 | ||||
| -rw-r--r-- | src/Propellor/Property/Docker.hs | 2 |
3 files changed, 6 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog index 9e90877d..69a580b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ propellor (0.9.1) UNRELEASED; 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> Thu, 23 Oct 2014 03:05:22 -0400 diff --git a/src/Propellor/Info.hs b/src/Propellor/Info.hs index 1b89c008..f44d1de3 100644 --- a/src/Propellor/Info.hs +++ b/src/Propellor/Info.hs @@ -80,7 +80,10 @@ aliasMap = M.fromList . concat . 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) diff --git a/src/Propellor/Property/Docker.hs b/src/Propellor/Property/Docker.hs index b717fe19..c91530c3 100644 --- a/src/Propellor/Property/Docker.hs +++ b/src/Propellor/Property/Docker.hs @@ -107,7 +107,7 @@ docked hosts cn = RevertableProperty 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 |
