Exoscale offboarding MVP #282

Merged
tobru merged 4 commits from 262-exoscale-offboarding into main 2025-11-17 10:49:24 +00:00
Showing only changes of commit 3e17e03da9 - Show all commits

View file

@ -233,9 +233,12 @@ The Servala Team"""
try:
service = Service.objects.get(osb_service_id=service_id)
service_offering = ServiceOffering.objects.get(
osb_plan_id=plan_id, service=service
)
# Special handling: when plan_id is "suspend", don't lookup service_offering
service_offering = None
if plan_id != "suspend":
service_offering = ServiceOffering.objects.get(
osb_plan_id=plan_id, service=service
)
except Service.DoesNotExist:
return self._error(f"Unknown service_id: {service_id}")
except ServiceOffering.DoesNotExist:
@ -258,7 +261,7 @@ The Servala Team"""
return self.request.build_absolute_uri(admin_path)
def _create_action_helpdesk_ticket(
self, request, action, instance_id, service, service_offering, users=None
self, request, action, instance_id, service, service_offering=None, users=None
):
"""
Create an Odoo helpdesk ticket for offboarding or suspension actions.
@ -269,11 +272,12 @@ The Servala Team"""
organization = None
try:
# Look for instances with this name in the service offering's context
filter_kwargs = {"name": instance_id}
if service_offering:
filter_kwargs["context__service_offering"] = service_offering
service_instance = (
ServiceInstance.objects.filter(
name=instance_id,
context__service_offering=service_offering,
)
ServiceInstance.objects.filter(**filter_kwargs)
.select_related("organization")
.first()
)
@ -302,10 +306,11 @@ The Servala Team"""
else:
description_parts.append(f"Instance: {instance_id}")
offering_url = self._get_admin_url(
"core_serviceoffering_change", service_offering.pk
)
description_parts.append(f"Service Offering: {offering_url}")
if service_offering:
offering_url = self._get_admin_url(
"core_serviceoffering_change", service_offering.pk
)
description_parts.append(f"Service Offering: {offering_url}")
if users:
description_parts.append("<br/>Users:")