summaryrefslogtreecommitdiff
path: root/debian
AgeCommit message (Collapse)Author
2015-11-11Add Propellor.Property.PropellorRepo.hasUrl, an explicit way to set the git ↵Joey Hess
repository url normally implicitly set when using --spin.
2015-11-08prep releaseJoey Hess
2015-10-29merge patch from Santiago VilaJoey Hess
2015-10-29generalize what can be outputJoey Hess
This adds a dependency on Text, but I don't mind propellor depending on it and am somewhat surprised it doesn't already. Using Text also lets this use encodeUtf8 instead of the nasty hack it was using to go from String -> ByteString.
2015-10-28fix memory leak, and optimise when command output is very largeJoey Hess
2015-10-28wordingJoey Hess
2015-10-28fix bad MVar use, use STMJoey Hess
I had 2 MVars both involved in the same lock, and it seemed intractable to avoid deadlocks with them. STM makes it easy. At this point, the concurrent process stuff seems to work pretty well, but I'm not 100% sure it's not got some bugs.
2015-10-28concurrency docsJoey Hess
2015-10-27make Propellor.Message use lock to handle concurrent threads outputting messagesJoey Hess
Not yet handled: Output from concurrent programs.
2015-10-27Explicit Info/NoInfo for RevertableProperty (API change)Joey Hess
RevertableProperty used to be assumed to contain info, but this is now made explicit, with RevertableProperty HasInfo or RevertableProperty NoInfo. Transition guide: - If you define a RevertableProperty, expect some type check failures like: "Expecting one more argument to ‘RevertableProperty’". - Change it to "RevertableProperty NoInfo" - The compiler will then tell you if it needs "HasInfo" instead. - If you have code that uses the RevertableProperty constructor that fails to type check, use the more powerful <!> operator
2015-10-26changelogJoey Hess
2015-10-24improve RevertableProperty combiningJoey Hess
* Various property combinators that combined a RevertableProperty with a non-revertable property used to yield a RevertableProperty. This was a bug, because the combined property could not be fully reverted in many cases. Fixed by making the combined property instead be a Property HasInfo. * combineWith now takes an addional parameter to control how revert actions are combined (API change).
2015-10-24Added Propellor.Property.Concurrent for concurrent properties.Joey Hess
Note that no output multiplexing is currently done.
2015-10-23prep releaseJoey Hess
2015-10-23Hostname.sane and Hostname.setTo can now safely be used as a property of a ↵Joey Hess
chroot, and won't affect the hostname of the host system.
2015-10-23generalize checkJoey Hess
Hmm, do I really need my own type class for LiftPropellor? This seems like a general problem so I am probably reinventing the wheel.
2015-10-23API change..Joey Hess
2015-10-23Changed how the operating system is provided to Chroot (API change).Joey Hess
* Where before debootstrapped and bootstrapped took a System parameter, the os property should now be added to the Chroot. * Follow-on change to Systemd.container, which now takes a System parameter. Two motivations for this change: 1. When using ChrootTarball, there may be no particular System that makes sense for the contents of the tarball, so don't force the user to specify one. 2. When creating a chroot for a disk image with the same properties as an existing Host, using hostProperties host to get them, this allows inheriting the os property from the host, and doesn't require it to be redundantly passed to Chroot.debootstrapped.
2015-10-23changelogJoey Hess
2015-10-23HostName: Improve domain extraction code.Joey Hess
2015-10-23Added Mount.fstabbed property to generate /etc/fstab to replicate current ↵Joey Hess
mounts.
2015-10-23changelogJoey Hess
2015-10-22propellor spinJoey Hess
2015-10-21prep releaseJoey Hess
2015-10-21Added Ssh properties to remove authorized_keys and known_hosts lines.Joey Hess
And use when reverting conductor property. Note that I didn't convert existing ssh properties to RevertablePropery because the API change was too annoying to work through.
2015-10-21Rewrote Propellor.Property.ControlHeir one more time, renaming it to ↵Joey Hess
Propellor.Property.Conductor. Wow, really.. So, this gets back to having properties that are added to hosts to say what they conduct. I think that conducts webservers `before` conducts dnsserver is an important thing to be able to express. Untested except for eyeballing the resulting Host data.
2015-10-20prep releaseJoey Hess
2015-10-20The Propellor.Property.Spin added in the last release is replaced with a ↵Joey Hess
very different Propellor.Property.ControlHeir. Rethought it because it turned out that propigating the PrivData rendered the loop detection pointless, because when there was a loop, each host included the other's PrivData, which in turn lead to a loop. And, it was not possible to break that loop. So, changed from adding properties to hosts to a top-down hierarchy that makes changes as needed when applied to the hosts. Which makes it easy to detect and break loops. Aka: The Ur Quan know what they're up to.
2015-10-20prep releaseJoey Hess
2015-10-20Chroot: Converted to use a ChrootBootstrapper type classJoey Hess
So other ways to bootstrap chroots can easily be added in separate modules. (API change)
2015-10-18document as api changeJoey Hess
2015-10-18fix typo: propigate → propagateFelix Gruber
2015-10-16Added --unset-unusedJoey Hess
2015-10-16improve ssh user key propertiesJoey Hess
* Ssh.keyImported is replaced with Ssh.userKeys. (API change) The new property only gets the private key from the privdata; the public key is provided as a parameter, and so is available as Info that other properties can use. * Ssh.keyImported' is renamed to Ssh.userKeyAt, and also changed to only import the private key from the privdata. (API change) * While Ssh.keyImported and Ssh.keyImported' avoided updating existing keys, the new Ssh.userKeys and Ssh.userKeyAt properties will always update out of date key files. * Ssh.pubKey renamed to Ssh.hostPubKey. (API change) This makes eg, setting up ssh for spin controllers work better.
2015-10-16Added Propellor.Property.Spin, which can be used to make a host be a ↵Joey Hess
controller of other hosts. The hard part of this is avoiding loops of controllers. To make that work, a ControllerChain is passed to the host that's spun, and is added to the Info of the host being spun, where the controller property can check it to detect an avoid a loop. That needed an expansion of the CmdLine data type. I made the new ControlledRun only be used when there is a ControllerChain provided. This avoids breaking backwards compatability with old propellor deployments, as --spin still uses SimpleRun. Note: Making an old propellor deployment be controlled by a controller won't work until it's been updated to this commit, so it knows about the ControlledRun parameter. (Untested)
2015-10-14fileProperty, and properties derived from it now write the new file content ↵Joey Hess
via origfile.propellor-new~, instead of to a randomly named temp file. This allows them to clean up any temp file that may have been left by an interrupted run of propellor. Also converted the new isSymlinkedTo property to use the same implementation, with some simplifications.
2015-10-14changelogJoey Hess
2015-10-10tighten focus of Propellor module, adding Propellor.Base for all the exportsJoey Hess
2015-10-10wordingJoey Hess
2015-10-10Improved documentation, particularly of the Propellor module.Joey Hess
This involved some code changes, including some renaming of instance methods. (ABI change)
2015-10-08updateJoey Hess
2015-10-04releaseJoey Hess
2015-10-04prep releaseJoey Hess
2015-10-04Fix --add-key to not fail committing when no privdata file exists yet.Joey Hess
2015-09-30change HostContext for containersJoey Hess
Privdata that uses HostContext inside a container will now have the name of the container as its context, rather than the name of the host(s) where the container is used. This allows eg, having different passwords for a user in different containers. Note that previously, propellor would prompt using the container name as the context, but not actually use privdata using that context; so this is a bug fix. I don't entirely like the implementation; I had to put the code to change the context in PropAccum, and it's not generalized past PrivInfo.
2015-09-29add Kerberos module, contributed by Jelmer Vernooij.Joey Hess
2015-09-28Added Logcheck module, contributed by Jelmer Vernooij.Joey Hess
2015-09-25Guard against power loss etc when building propellor, by updating the ↵Joey Hess
executable atomically.
2015-09-23rm-key made the release somehowJoey Hess
(because I forgot to release it yesterday..)
2015-09-23Added --rm-key.Joey Hess