The uplod tools functionality, used by bootstrap and upgrade-juju, is evil and damaging partly because it's a developer hack that allows us to avoid the most common tools-location code paths, and partly because it also special-cases finding and magically distributing a local jujud binary with a faked-up version number; and this is really awful because people have discovered this and started using it.
We need to (1) drop --upload-tools across the board and (2) come up with sane mechanisms for distributing local copies of jujud tools; consider that we already have:
* the --source arg that already exists, but isn't used by upgrade-juju
* the tools[-metadata]-url in the environment config
...and the ability, with synchronous bootstrap, to put tools directly on the state server as we bootstrap.
i came across this bug while, i was about to file a bug to enable --upload-tools usage. The lookup for tools is rather complex and error prone and hard to debug for private clouds. (i had had wallyword and mgz helping a partner for over 2hrs on irc the other day). upload-tools is both simple and effective, i'd rather have a safety valve then mandate complexity, ideally allowing it even in the absence of compilation tools.