Exoscale OSB Offboarding and Suspension MVP #262
Labels
No labels
API
Billing
UI/UX
dependencies
bug
change
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: servala/servala-portal#262
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stories
As the Exoscale Portal, I want to offboard or suspend a service instance.
Implementation Notes
To complete the Exoscale implementation API-wise, we implement an MVP for Offboarding and Suspension so that we can continue the testing and rollout without having to wait for the full feature sets in #235, #236 and #245 to be finished.
This means we need to handle the following OSB API requests:
DELETE v2/service_instances/:instance_id?service_id=service-test-guid&plan_id=plan1-test-guidPATCH v2/service_instances/:instance_idBoth API requests must get accepted and validated, and as an action, have an Odoo helpdesk issue created with the information about the action (Suspend, Offboard) and the organization and service name.
This allows us to move forward a bit faster and buys us time to properly implement the flow.
My biggest question here relates to the service instance ID that is passed: Does that refer to an actual instance ID? Or to an instance name? Because we currently do not use/save the instance ID that exoscale passes on its provisioning request anywhere, so we have no mapping to know what to do with the DELETE/PATCH calls. (This also means that we cannot match the incoming Exoscale call to an Organization/Odoo helpdesk ID).
That aside, some less urgent questions: Should the following parts of the documentation be part of this issue or as a separate issue?
Do we want to defined the suspension plan right away, or is that a thing for later implementation and we really just send the helpdesk issue for now?
Let's do the simplest possible thing for this MVP: Get the information passed in the OSB API calls and create a helpdesk issue with all this information. This is the first step to have these endpoints available. Further processes will be implemented at a later stage. For now, we just need to make sure we have these endpoints available.
I thought about this again and again. For now, I'm pretty sure we can ignore the OSB instance ID because of how the Exoscale OSB API works. In https://docs.servala.com/exoscale-osb.html#_exoscale_organizations the screenshot shows the example of MongoDB; there is only an "Enable" button. This button triggers the already implemented onboarding flow, which in this case makes MongoDB available to this organization. The OSB API call includes an instance ID, but we have no use for it because the user creates the service instance directly in the Servala portal. When the user triggers the offboarding by pressing the "Disable" button, we will just revoke access to the MongoDB service offering and have no need to correlate a instance ID. In this issue, we don't care yet about revoking access or so; this will then be properly handled in #235.
With that, I think we can really safely ignore the OSB instance ID and just use it as an informational parameter.