[director] Add list current locks to director API
[director] Fix type when logging adquiring locks
[cli] Add command to list current locks
Merge remote-tracking branch 'origin/locks' into develop

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>

Conflicts:
	bosh_cli/lib/cli/director.rb
	bosh_cli/spec/unit/director_spec.rb
	director/lib/director/api/controller.rb
	director/spec/unit/api/controller_spec.rb
Refactor locks unit tests

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>
Add integration tests for locks

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>
formatting

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
added List() to FileBundleCollection so that one can list installed bundles

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
formatting

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
pass in current apply spec and desired apply spec to the applier

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
keep only used jobs and packages when executing apply action

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
formatting

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
remove unused jobs

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
formatting

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
remove unused packages

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
added more tests to check for idempotent behaviour of file bundle actions

Signed-off-by: dmitriy kalinin <dmitriy@pivotallabs.com>
[director] Track failed job updates in event log

This commit fixes a bug that prevented failed instance updates to be
recorded in the event log. Instead of rescuing the error (so event_log
doesn't notice there has been an error and it will record a success update),
now we log the error and raise the exception. In this way, the track method
in event_log will trap the error and it will record it in the event log file.

Also, instead of using a custom logic to check if the job update should be halted
(due to an error, canary or not), use the standard ThreadPool mechanism: if it
detects an exception, it will stop processing new actions.

Refactored also job_updater spec in order to detect all situatuibs and to check
the event log.

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>
Refactor job_updater_spec

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>
Do not assume current repo name, use relative path in tests

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>
Add an integration test for a failed job update

* Integration tests use dummy-nats-job-supervisor which controls the state
of the job

Signed-off-by: Adam Stegman <astegman@pivotallabs.com>