Descriptionenvirons: extract tools package
This is much simpler than it looks. Motivation is as follows:
1) I'm trying to make our tools logic consistent, so we have some sort of
chance of different parts of the system acting in concert (bootstrap,
start-instance, sync-tools, upgrade-juju, juju upgrades, ...?). It is
currently very difficult to build a mental model of how these things are
related, and a common vocabulary will help.
2) I'd be crazy to try to do everything at once (ha!). So I'll leave the
existing tools *selection* logic (FindTools, BestTools) in place while
I focus on just uploads/downloads.
3) Move tool-storagey code from environs to environs/tools:
* environs.listTools -> tools.ReadList
(environs.ListTools now uses tools.ReadList)
* environs.PutTools -> tools.Upload
(lots of code moved to storage.go and build.go in tools/)
* environs.ToolsStoragePath -> tools.StorageName
(it's a name, not a path, according to the storage metaphor)
...hmm. Lots of renames.
4) But wait, I can't do this, I need to use environs.Storage, and there's
an import loop. To keep the diff small, define tools.URLLister and
tools.URLPutter.
6) The tests are starting to look somewhat repetitive, and I fear subtle
differences creeping in. Let's bulk up environs/testing a little.
Ah, that's better.
From a review perspective, this branch is largely mechanical. The only code
that is new, as opposed to moved or mechanically replaced, is:
* the tests for tools.ReadList (made explicit now it's exported).
* the tests for environs.EmptyStorage (yes, it's trivial. yes, it should
still be tested.)
* environs/testing/tools.go (mostly new, and used in several places).
* UpgradeJujuCommand (surprising behaviour corrected, clarifying test
added).
https://code.launchpad.net/~fwereade/juju-core/environs-tools-storage/+merge/157770
Requires: https://code.launchpad.net/~fwereade/juju-core/environs-tools-list/+merge/157964
(do not edit description out of merge proposal)
Patch Set 1 #Patch Set 2 : environs: extract tools package #
Total comments: 25
Patch Set 3 : environs: extract tools package #
MessagesTotal messages: 4
|