| Age | Commit message (Collapse) | Author |
|
When spinning a remote host, we do want to rebuild propellor on it,
and this use of --continue that did a rebuild was different from all the
other uses of --continue that avoided a rebuild.
This fixes a build loop involving that special case. When --continue
SimpleRun ran a rebuild, it re-execed propellor with --continue SimpleRun,
and so would rebuild again, and re-exec again if the binary kept changing.
Backwards compatability should be ok; old versions of propellor,
when run with --serialized SimpleRun by the new version, do a buildFirst,
followed by another (redundant) buildFirst, and then run. The one redundant
buildFirst is not a problem in the upgrade scenario.
(Unfortunately, I can't rename SimpleRun to something nicer despite only
spin using it; backwards compatability does prevent that.)
|
|
|
|
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
(cherry picked from commit 9d44dcd39bb88408ed4cfc94a7b4dfa34a1b5591)
|
|
- check that we're on the branch specified in git config value
propellor.spin-branch
- check that there are no uncommitted changes if git config value
propellor.forbid-dirty-spin is true
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
(cherry picked from commit 8f374d73ae5b2bb53f82835c6d6b5c0194590006)
|
|
|
|
Force console mode when --spin calls SimpleRun
|
|
This reverts commit 2891006d9f18b9f50b7d8dfc6d32e326499913f0.
|
|
|
|
|
|
This interface will fix the current deadlock when a process is running
and the thread that ran it wants to output to the console.
The locking and buffering is not implemented yet.
|
|
Found problem.. actionMessage is blocking.
|
|
|
|
|
|
|
|
|
|
|
|
Controlling host inherits the privdata for the host it spins, and sends it
along to that host.
|
|
Much less invasive than the other implementation.
|
|
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)
|
|
|
|
|
|
Convert Info to use Data.Dynamic, so properties can export and consume
info of any type that is Typeable and a Monoid, including data types
private to a module. (API change)
Thanks to Joachim Breitner for the idea.
|
|
--upload-pack to send a git push when running propellor --spin.
|
|
|
|
|
|
address.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
host, and if not, sshes to the host by IP address.
|
|
|
|
--allow-empty added to commit, because the spins could all be empty
|
|
|
|
Note that if it fails to spin a host, it will stop. I think this is better
than continuing to the next, because there might be a reason to spin hosts
in some specific order (ie, update dns first and then use it).
|
|
|
|
|
|
it may get messy if old stuff is left, but there is state in there
|
|
uploaded"
This reverts commit 40bec41f569a73a8e95d9acf91f0ae7465b0f8c0.
|
|
There's some state in there..
Moved it to a shim subdir, which can be deleted and the tarball unpacked to
recreate it.
|
|
The localdir still has no .git repo, so it looped.
|
|
|