summaryrefslogtreecommitdiff
path: root/debian
AgeCommit message (Collapse)Author
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-26Merge branch 'joeyconfig'Joey 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-23Merge branch 'joeyconfig'Joey Hess
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-23Merge branch 'joeyconfig'Joey Hess
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-23Merge branch 'joeyconfig'Joey Hess
2015-10-23HostName: Improve domain extraction code.Joey Hess
2015-10-23Merge branch 'joeyconfig'Joey 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-23Merge branch 'joeyconfig'Joey Hess
2015-10-23changelogJoey Hess
2015-10-22propellor spinJoey Hess
2015-10-21Merge branch 'joeyconfig'Joey Hess
2015-10-21prep releaseJoey Hess
2015-10-21Merge branch 'joeyconfig'Joey 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-20Merge branch 'joeyconfig'Joey Hess
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-20Merge branch 'joeyconfig'Joey Hess
2015-10-20prep releaseJoey Hess
2015-10-20Merge branch 'joeyconfig'Joey 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-18Merge branch 'joeyconfig'Joey Hess
2015-10-18document as api changeJoey Hess
2015-10-18Merge branch 'joeyconfig'Joey Hess
2015-10-18fix typo: propigate → propagateFelix Gruber
2015-10-16Merge branch 'joeyconfig'Joey Hess
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-16Merge branch 'joeyconfig'Joey Hess
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-16Merge branch 'joeyconfig'Joey Hess
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-10Merge branch 'joeyconfig'Joey Hess