Tech Debt: Separate plan version from API version
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Solum |
Fix Released
|
Medium
|
Pierre Padrixe (stannie) |
Bug Description
At the moment the plan schema is defined by wsme objects in api/controllers
I don't see how we can support plan versions independently to the rest API
This is largely a problem with WSME objects as the are very "fixed" and don't allow you to return different types to the ones you
specify (afaik).
e.g.
@exception.
@wsme_
def post(self, data):
the body is of type Plan
Qu: can we have a base Plan that implements __new__ and based on the plan version creates Planv11 or Planv12?
Slightly wilder ideas:
A) Completely remove the plans/ resources and the python-solumclient posts the plan directly to swift and the assembly
validates the plan using voluptuous (or similar)
B) Keep the plans/ resource but make the input wtyet.text and validate the plan entirely ourselves (don't use wsme for plans)
(personally I am for "A")
Changed in solum: | |
importance: | Undecided → Medium |
status: | New → Triaged |
summary: |
- don't fix the plan version to the API version + Tech Debt: Separate plan version from API version |
Changed in solum: | |
assignee: | nobody → Murali Allada (murali-allada) |
Changed in solum: | |
assignee: | Murali Allada (murali-allada) → Pierre Padrixe (stannie) (pierre-padrixe) |
Changed in solum: | |
milestone: | none → juno-1 |
Changed in solum: | |
status: | Fix Committed → Fix Released |
tags: | added: plan-improvements-versionning-and-yaml-support |
I'm ok for A, it makes more sense. We already have "raw_content" in plan which is a little strange when you're new on the project.
But can you describe what the typical workflow of getting an application up and running will be ? And where the "git hook" part will be plugged and triggered ?
1. POST Plan
2. POST Assembly -> get back trigger URL
3. POST to trigger url
4. ....
Am I right ?