AWS Micro BOSH improvements

- get bosh-release apply_spec from the agent

- Bosh::Deployer::InstanceManager plugins (aws,vsphere)

- set default logging.file regardless of logging.level

- 'bosh micro' manages a local aws registry instance

- reverse ssh tunnel gives bosh http_agent access to local registry

Change-Id: I4bad0523fb6350d91d44d59991f3765873b39d0c
remove lsof guard

- change umount_guard to retry only on EBUSY.
  the kernel umount impl will return EBUSY when there are still
  processes with open file references to the filesystem

- redirect `umount` stderr to stdout

- double GUARD_RETRIES so we retry for the same amount of time

- change MigrateDisk to use (new) umount_guard

Change-Id: I13225a57aa6f124a60f36c54872384c9b4bc961f
Merge "AWS Micro BOSH improvements"
Merge "remove lsof guard"
Rescue all known agent exceptions to avoid restarting

Change-Id: I2b48ae51255cd5374969d9a4071bf4c548dbe575
updated nats to 0.4.22

Change-Id: I21756e1416076e207443967d94345d4b985566a9
added cpi flag to package_compiler & director info

Change-Id: I06c9da937a0382d4ef0dc331068c29a4deea745b
Bump chef_deployer's bundler from 1.0.10 to 1.1.3 [CF-27]

This version of bundler supports 'install --deployment'
when Gemfile references gemspec with dependencies

Change-Id: I558c80ded4c25a6da9e9be9207115cefe2572136
Minor wording changes in CLI

Change-Id: Icac83f4d6085de345476bc0ea54f8f186af3f4a2
Release alternative src directory support

Using submodules in release repo might be painful for developers,
as they have to replace submodule with a symlink. This change adds
support for alternative src directory. Any glob in package spec will
try to match in src_alt before src, and if it yields any files, no
further src match will be attempted.

Change-Id: I19a05ea6f8b652e602ca76cbeb4a805eaa648a44
Merge "Release alternative src directory support"
hide REVISION error message

Change-Id: I1dd462a20f32b0e6de2054554e2b0fc5a91b9776
new unresponsive agent resolution: delete vm reference 

Change-Id: Ie49b9b953a0e74b1feb80a2757b2cc2973d1b8a8
AWS CPI 'wait_resource' fix and integration test.

'wait_resource' was prone to race conditions and random
state transitions as it was breaking the loop if any non-target
state transition took place. Fixed to be more robust and only
break the loop on :error and :failed states (EC2 Ruby API heuristic).

Also added basic integration test for VM lifecycle. Later it can be
evolved into something more comprehensive.

To run integration test:

1. Prepare AWS CPI configuration file;
2. Start AWS registry manually;
3. Set CPI_CONFIG_FILE env variable to point to AWS config file;
4. Run bundle exec rspec --color spec/integration/cpi_test.rb

Change-Id: I36c20e4d323bd0fb6bbe66b36929cb01fe469509
Release composition support

Previously BOSH Director assumed only one release being referenced
in the deployment manifest. This change allows the deployment to
contain jobs from multiple releases.

Deployment manifest now supports 'releases' section where multiple
releases can be referenced: if this section is present, every job
needs to have a reference to its release.

This change should be fully backward compatible with old deployment
manifests.

Test plan:

- tested with cf-release only (using old manifest);
- tested a combination of cf-release, bosh-release and oss-release.

Things to be aware of:

- the very first bosh deployment with this version of director will
  trigger updating all jobs, as job state now has slightly different
  key set;

- properties are still global to the whole deployment, so if job
  templates from the different releases use the same property name
  having different semantics, it should be overriden for the
  individual job in the manifest.

Example manifest section:

releases:
- name: release-1
  version: 1
- name: release-2
  version: 4

...

jobs:
- name: foo
  release: release-1
  template: bar
  ...

- name: baz
  release: release-2
  template: zaz
  ...

Change-Id: Ib268ac09eb361a8f77f20fd7f3f1469344497d73
pass env configuration param to create_vm

Change-Id: I51c53403c578fbe38cdd21a116f4cc7816eaee08
Merge "Release composition support"
disk locality in aws (CF-13)

- create_vm() uses disk_locatility as az, explicit setting or default az
  - raises an error unless all specifed availability zones are the same
- create_disk() uses az from supplied instance or default az if none is given
- fixes https://cloudfoundry.atlassian.net/browse/CF-13

Change-Id: I17c07e0a629ba5df6cc2d9ef28b8bcc38febb35c
Changes to rename job

The agent change is to fix the following.

In this example I renamed postgresql_node to postgresql_db.

root@dfebf955-73e5-4708-bb20-0461cb693583:/var/vcap/monit/job# ls -l
total 4
lrwxrwxrwx 1 root root 60 2012-05-09 22:51 postgresql_db.monitrc ->
/var/vcap/data/jobs/postgresql_node/12/postgresql_db.monitrc

Today we delete the symlink but not the target of the symlink, with this change
we delete the target as well.

Usage:
To rename a job. The user does 2 things.
1. Updates his deployment manifest with the new name of the job to be renamed.
2. Runs, bosh rename <old_job_name> <new_job_name>

Testing Done:
Renamed services jobs. Verified that cf apps using the service were not
affected.

patch to try to retrigger build

Change-Id: I8f1817d0fb1fc4b95d7d46b501bdcbded38066ce
Use final release version as base for dev version

Change-Id: I0eab53f2d51b9c51c1a16bd706d2d5e651cb19e5