Skip to content

Deployable_Deployment_and_Instance_API

Matt Wagner edited this page Oct 25, 2012 · 1 revision

Deployable, Deployment, and Instance API

Summary

Below is an outline of REST API endpoints that we would need to implement to allow users to automate futher their interactions with Conductor. The endpoints follows the actions available in the current Conductor UI flow.

Endpoints

conductor/api/deployables

# Create given name, catalog id (s), and deployable xml.
Deployable xml is validated before it can be saved.
Reference for Deployable XMLs - https://www.aeolusproject.org/redmine/projects/aeolus/wiki/Deployable_XML
# Show a deployable
# Index of deployables - list name and href to id
# Delete a deployable
# Edit a deployable
PUT new deployable xml, respond with 200 and newly saved object
Allow update of name and catalog ids

The images defined in the deployable xml must exist, but they need not be built or pushed. If there are multiple assemblies, any missing image should fail the validation.

conductor/api/deployments

# Create given name, deployable id, and optional realm
All images defined in the deployable must be built and pushed to the choosen realm
Launches instances
# Show a deployment and its instances
Each instance is listed with name and a link to the real object
# Index of deployments
# Delete a deployment
# Edit a deployment - not available

conductor/api/deployments/$id/instances\

conductor/api/instances

  1. Stop an instance
  2. Start an instance
  3. List all instances for a given deployment
  4. List all instances I can control across all deployments - TBD
  5. Show instance, status, ip address, ssh keys, etc..

conductor/api/realms

# Create a front end realm
attributes: name, description
# Show a front end realm and its realm and provider mappings
# List all realms
# Delete a realm
# Edit a realm

conductor/api/realm_mappings

  1. Create a realm or provider mapping
  2. Delete a mapping

conductor/api/provider_accounts/$id/realms

  1. List from provider accounts

conductor/api/hardware_profiles

CRUD

conductor/api/catalogs

# Create a catalog
attributes: name, pool
# List catalogs
# Show a catalog, its attributes, and deployables
# Edit a catalog
# Delete a catalog

conductor/api/pools

# Create a pool
attributes: name, quota, enabled?
# List pools
# Show a pool, its attributes, and catalogs
# Edit a pool
# Delete a pool

conductor/api/pool_families

# Create a pool family
attributes: name, maximum number of running instances (quota)
# List pool families
# Show a pool family, its attributes, and pools
# Edit a pool family
# Delete a pool family

Reference

  1. Initial planning discussion - http://etherpad-aeolusproject.rhcloud.com/p/deployables_and_instance_api
Clone this wiki locally