remove duplicated code from uniter, use proxyupdater (renamed from machineenvironmentworker) across the board
move InferRemoteUnit inside runner factory, integration tests passing, unit tests broken
fix operation tests
fix uniter/runner tests/code
state: removed unnecessary docID calls

Many calls to State.docID() are now unnecessary since the introduction
of envStateCollection.

This change also adds the openedPorts and subnets collections to the
list of those which contain data for multiple environments.
address review
Merge pull request #1278 from fwereade/proxy-updater

rename MachineEnvironmentWorker, extract duplicated implementation from Uniter

...and as a driveby fix all the jujud tests that were cheerfully trying to write made-up proxy settings for the ubuntu user all the time.

(Review request: http://reviews.vapour.ws/r/593/)
Do not use syscall.Stat_t on Windows.
Drop the compile tag from the windows version (the file name covers it).
Simplify.
Merge pull request #1284 from ericsnowcurrently/backups-syscall-windows

Use syscall.Stat_t only on non-Windows.



(Review request: http://reviews.vapour.ws/r/599/)
Do not use syscall in tests.
Merge pull request #1285 from ericsnowcurrently/backups-syscall-test

Do not use syscall in backups tests.



(Review request: http://reviews.vapour.ws/r/600/)
worker/certupdater: add "juju-apiserver" as DNS name

The in-tree API clients are using "juju-apiserver" as the
hostname to verify when connecting to the API server,
rather than the actual hostname. The certupdater worker
was not setting this as a DNS name in the certificates it
generates. The Azure provider doesn't record any public IP
addresses, so the verification always takes place and always
fails.

We fix this by adding "juju-apiserver" as a DNS name in the
certificates. Ideally the clients should be using the actual
hostname used to connect with, but this will break backwards-
compatibility with older versions of Juju.

Fixes https://bugs.launchpad.net/juju-core/+bug/1400348
Merge pull request #1287 from axw/lp1400348-certupdater-jujuapiserver

worker/certupdater: add "juju-apiserver" as DNS name

The in-tree API clients are using "juju-apiserver" as the
hostname to verify when connecting to the API server,
rather than the actual hostname. The certupdater worker
was not setting this as a DNS name in the certificates it
generates. The Azure provider doesn't record any public IP
addresses, so the verification always takes place and always
fails.

We fix this by adding "juju-apiserver" as a DNS name in the
certificates. Ideally the clients should be using the actual
hostname used to connect with, but this will break backwards-
compatibility with older versions of Juju.

Fixes https://bugs.launchpad.net/juju-core/+bug/1400348
Merge pull request #1283 from fwereade/runner-infer-remote-unit

move InferRemoteUnit inside runner.Factory

This is a step towards fixing the juju-run data race; by waiting until we're inside the RunCommands operation before checking args against current state, we are (1) more likely to be checking against current reality and (2) will soon be able to eliminate the race (once we've moved the relationer changes inside their own operations, and ensured that the operations themselves are serialized).

(Review request: http://reviews.vapour.ws/r/598/)
Merge pull request #1279 from mjs/docid-removal

state: removed unnecessary docID calls

Many calls to State.docID() are now unnecessary since the introduction of envStateCollection.

This change also adds the openedPorts and subnets collections to the list of those which contain data for multiple environments.

(Review request: http://reviews.vapour.ws/r/594/)