Hi,
Below is an outline of REST API endpoints that we would need to implement to allow users to automate further their interactions with Conductor. The endpoints follows the actions available in the current Conductor UI flow.
The contents is also up this wiki page https://www.aeolusproject.org/redmine/projects/aeolus/wiki/Deployable_Deploy...
Endpoints
conductor/api/deployables 1. 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 2. Show a deployable 3. Index of deployables - list name and href to id 4. Delete a deployable 5. 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 1. 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 2. Show a deployment and its instances Each instance is listed with name and a link to the real object 3. Index of deployments 4. Delete a deployment 5. 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 1. Create, map to provider, map to provider realm 2. Show a realm 3. List all realms 4. Delete a realm 5. Edit a realm and mappings
conductor/api/provider_accounts/$id/realms 1. List from provider accounts
conductor/api/hardware_profiles/ CRUD
conductor/api/catalogs CRUD
conductor/api/pools CRUD, catalogs are mapped to a pool
--- Reference
Initial planning discussion - http://etherpad-aeolusproject.rhcloud.com/p/deployables_and_instance_api