Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but you can also compare across forks.

base fork: cloudfoundry-attic/vcap
head fork: cloudfoundry-attic/vcap
Commits on Oct 03, 2011
mpage Scaffolding for staging plugins
This diff includes the skeleton for the new staging plugins.
Future commits will flesh out the functionality of the ActionProxy.

Test plan:
- New unit tests pass.

Change-Id: Icfe1ef6fc4652f105999a1e1573984fdef20f756
Commits on Oct 06, 2011
mpage Add support for generating start/stop scripts
This provides the foundation to allow framework/feature plugins to
generate start/stop scripts. The 'startup' script (called by the dea)
calls all generated feature start scripts, then invokes the framework
start script. The framework start script is expected to write the pid
of the appserver into the file '' (expected by the dea) in the root
droplet directory. Similarly, the 'stop' script (also called by the dea)
calls all generated feature stop scripts first, then invokes the framework
stop script.

Test plan:
- Unit tests pass
- Able to start/stop sinatra apps created using a rudimentary sinatra plugin
  and the plugin orchestrator.

Change-Id: I2ce9c43af81d06c3700d874417be467454f00fdd
mpage Begin porting the existing sinatra plugin over to the new plugin fram…

Creates a starting point for porting the sinatra plugin over to the new
staging plugin framework. This is a very minimal implementation, but will
generate the necessary startup/stop files. The next step is adding support
for gems.

Test plan:
- Unit tests!
- Used this plugin, along with the plugin orchestrator to stage a simple
  sinatra app. Was able to start/stop it.

Change-Id: Ic4c755708ae9e4fa83ba8182ffb777b1a9d301d6
Commits on Oct 27, 2011
mpage Merge "Scaffolding for staging plugins" into staging_plugin 22ef9dc
mpage Merge "Add support for generating start/stop scripts" into staging_pl…
mpage Merge "Begin porting the existing sinatra plugin over to the new plug…
…in framework" into staging_plugin
Commits on Nov 07, 2011
mpage Add client gem for communicating with stagers
This provides a gem that provides a small rpc interface to stagers.
Although this is a bit of yak shaving, it does clean up the interaction
between the CC and Stagers and paves the way for adding support for allowing
staging plugins to perform actions on behalf of users.

Test plan:
- All existing unit tests pass
- New stager_ipc unit tests pass
- BVTs pass

Change-Id: I18d059cbc044fd628680dbb1bfd8428b4ced0c16
mpage Refactor staging task management into a separate class.
Add a class for representing/managing staging tasks that are active.
Both the staging controller and the services controller will reference
this when stagers make requests on behalf of a user during staging.

Test plan:
- Existing unit tests pass
- Added new unit tests
- BVTs pass

Change-Id: I3a73e377915414bfa79dc28fc791b5e4f47e96a9
mpage Look up user associated with staging_task (if provided)
This will allow staging plugins to execute services related operations
on behalf of the user whose app is being staged.

Test plan:
- New unit tests pass

Change-Id: Ifffe7b97047f540b63c1774e6a605b5e80e76855
mpage Add ipc gem for talking with the CC
Change-Id: I8560b381dce3483b5f26b28df897e1331d768c3f
mpage Remove staging user/pass
Inclusion of a user/pass used to authenticate stagers was redundant, since
we generate a random token that is only valid while the staging task is
active on the CC. Use only the token to authenticate stagers.

Test plan:
- Unit tests pass
- Deployed an app locally

Change-Id: I032749c4c3518fefef240f1a45c23e08693c6474
mpage Pass cc host/port/task_id to stager
Supply the stager with the information it needs to interact with CC

Test plan:
- Unit tests pass
- Can deploy an app

Change-Id: I646e2d681696a03a5b204d69d7faca4e9dd84a88
mpage Stick the staging task id in request headers for services requests
This is more in keeping with current practices of sticking auth tokens
into header fields.

Test plan:
- Updated unit test passes.

Change-Id: I7e190f3db9f85b13b8fba59ee81d3fd233c0fbfb
mpage Update CC ipc gem to pass headers
Test plan:
- Unit tests pass

Change-Id: If36922acdf4621aff4491891264c214310420865
mpage Refactor cc ipc tests, add method for unprovision
Test plan:
- Unit tests pass

Change-Id: I26fa4a405778c7f587275b5be84b9af9d7e1ad62
mpage Add method to bind services to cc_ipc gem
Test plan:
- Unit tests pass

Change-Id: Icd481842b25b5fdaeb7700b4c2774657f4f0f0f3
mpage Add unbind service method to cc ipc gem
Test plan:
- Unit tests pass

Change-Id: I5c14a020f418fbd8baa2884fc714e2647fd0dffb
mpage Remove unnecessary app_properties container, pass services client to …
…plugin action proxy.

Test plan:
- Unit tests pass

Change-Id: I5d5e490908ef26ff33777b3f6b72d4ea14c72b47
mpage Rename PluginOrchestrator to PluginRunner
Test plan:
- Unit tests pass

Change-Id: I38f73612d0a541dc2031885b9be8a55b23c5a1d3
mpage Consolidate errors
Consolidate separate error files into errors.rb

Test plan:
- Unit tests pass

Change-Id: I54d6853dbc5033c1ae7578c36854dd0ff781d00a
mpage Move PluginRegistry functionality into PluginRunner
Test plan:
- Unit tests pass

Change-Id: Ibccbcbee4d271e547ea307db522cfb4de981c32c
mpage Generate Gemfile for plugin runner dynamically
Add a template and method for generating the Gemfile needed for
stand alone staging script

Test plan:
- New unit test passes
- Existing unit tests pass

Change-Id: Iab3a188e6b79cbf6843fb536d68b62b3e9beb9c4
mpage Add support for setting environment variables in staging plugins
This adds support for setting environment variables to be exported
in the application's environment.

Test plan:
- New unit tests pass.

Change-Id: I952097713f3b2f49c5e8104d866e8270b5bc5d0b
mpage Add method to abort staging
This provides a hook for staging plugins to abort staging with a message
that will be propagated back to the user.

Test plan:
- Unit test passes

Change-Id: I14cd811a68156ac3305cd22d6a1749c1eafbbfb7
Commits on Nov 09, 2011
mpage Hook plugins up to the normal staging flow
- Add a stub script to execute plugins inside of a 'container'.
- Hook plugins up to normal staging flow

Test plan:
- Unit tests pass

Change-Id: I95d96630b5ef824281339f3f14c1161f53cf134f
Commits on Nov 15, 2011
mpage Move plugin registry to vcap/common
vcap/common is a more natural home for the plugin registry, and will
allow us to reuse it across components.

Test plan:
- Unit tests pass

Change-Id: Ifcc36837179029ce7db3ac40e1eaa3596f4723c3
mpage Minor refactoring
Passing in the set of plugins that can be run is more logical,
cleaner, and makes testing easier.

Test plan:
- Unit tests pass

Change-Id: Id52d09f778417b42a56fd30a0a53967555d76f71
mpage Add node staging plugin
This migrates the existing node staging code over to the new plugin

Test plan:
- Unit tests pass
- Enabled node plugins on the stager, deployed a node app

Change-Id: I6ebc2297496716aae9f2f47925290420b768846c
mpage Minor misc changes to enable new-style staging plugins
Allow new-style staging plugins to be used in the stager by adding them
to the 'enabled_framework_plugins' property. Enable node support using
the new style plugins.

Test plan:
- Deployed a node app using the new-style plugins

Change-Id: If5d79af7ce456d1d0f602e7194d8761aac823e56
Commits on Nov 18, 2011
mpage Update skeleton sinatra plugin
Modify the skeleton sinatra plugin to conform to the new staging
plugin changes.

Test plan:
- Unit tests
- Enabled the plugin on the stager, deployed the env app

Change-Id: Ic600bf710320dfef53c94539838aa49e79c15f12
mpage Staging task should return the app's owner when #user is called
Test plan:
- New unit test

Change-Id: Ide403ebf8595718665029deb0024182849405689