diff options
| author | Joey Hess <joeyh@joeyh.name> | 2015-12-05 17:52:43 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2015-12-05 17:53:16 -0400 |
| commit | 12548bae3d8feecce6a322162d91b827289ae824 (patch) | |
| tree | 45f5ec5131817aab5133c9c1e4dbcf3364953e76 /src/Propellor/Property/Docker.hs | |
| parent | b816e40e2618a8932144bceb7c7039adc5c44c11 (diff) | |
UncheckedProperty for cmdProperty et al
* Properties that run an arbitrary command, such as cmdProperty
and scriptProperty are converted to use UncheckedProperty, since
they cannot tell on their own if the command truely made a change or not.
(API Change)
Transition guide:
- When GHC complains about an UncheckedProperty, add:
`assume` MadeChange
- Since these properties used to always return MadeChange, that
change is always safe to make.
- Or, if you know that the command should modifiy a file, use:
`changesFile` filename
* A few properties have had their Result improved, for example
Apt.buldDep and Apt.autoRemove now check if a change was made or not.
Diffstat (limited to 'src/Propellor/Property/Docker.hs')
| -rw-r--r-- | src/Propellor/Property/Docker.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Propellor/Property/Docker.hs b/src/Propellor/Property/Docker.hs index 0cc8212b..932ba2c1 100644 --- a/src/Propellor/Property/Docker.hs +++ b/src/Propellor/Property/Docker.hs @@ -160,6 +160,7 @@ imageBuilt directory ctr = describe built msg where msg = "docker image " ++ (imageIdentifier image) ++ " built from " ++ directory built = Cmd.cmdProperty' dockercmd ["build", "--tag", imageIdentifier image, "./"] workDir + `assume` MadeChange workDir p = p { cwd = Just directory } image = getImageName ctr @@ -169,6 +170,7 @@ imagePulled ctr = describe pulled msg where msg = "docker image " ++ (imageIdentifier image) ++ " pulled" pulled = Cmd.cmdProperty dockercmd ["pull", imageIdentifier image] + `assume` MadeChange image = getImageName ctr propagateContainerInfo :: (IsProp (Property i)) => Container -> Property i -> Property HasInfo @@ -224,8 +226,11 @@ garbageCollected = propertyList "docker garbage collected" -- the pam config, to work around <https://github.com/docker/docker/issues/5663> -- which affects docker 1.2.0. tweaked :: Property NoInfo -tweaked = trivial $ - cmdProperty "sh" ["-c", "sed -ri 's/^session\\s+required\\s+pam_loginuid.so$/session optional pam_loginuid.so/' /etc/pam.d/*"] +tweaked = cmdProperty "sh" + [ "-c" + , "sed -ri 's/^session\\s+required\\s+pam_loginuid.so$/session optional pam_loginuid.so/' /etc/pam.d/*" + ] + `assume` NoChange `describe` "tweaked for docker" -- | Configures the kernel to respect docker memory limits. @@ -237,7 +242,7 @@ tweaked = trivial $ memoryLimited :: Property NoInfo memoryLimited = "/etc/default/grub" `File.containsLine` cfg `describe` "docker memory limited" - `onChange` cmdProperty "update-grub" [] + `onChange` (cmdProperty "update-grub" [] `assume` MadeChange) where cmdline = "cgroup_enable=memory swapaccount=1" cfg = "GRUB_CMDLINE_LINUX_DEFAULT=\""++cmdline++"\"" |
