diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py
index ebc2878..362661b 100644
--- a/src/servala/core/models/service.py
+++ b/src/servala/core/models/service.py
@@ -10,7 +10,6 @@ from django.core.exceptions import ValidationError
from django.db import IntegrityError, models, transaction
from django.utils import timezone
from django.utils.functional import cached_property
-from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _
from encrypted_fields.fields import EncryptedJSONField
from kubernetes import client, config
@@ -20,10 +19,6 @@ from servala.core import rules as perms
from servala.core.models.mixins import ServalaModelMixin
from servala.core.validators import kubernetes_name_validator
-SUPPORT_MESSAGE_TEMPLATE = _(
- "Need help? We're happy to help via the support form."
-)
-
class ServiceCategory(ServalaModelMixin, models.Model):
"""
@@ -620,9 +615,10 @@ class ServiceInstance(ServalaModelMixin, models.Model):
context=context,
)
except IntegrityError:
- raise cls._format_error_with_support(
- "An instance with this name already exists in this organization. Please choose a different name.",
- organization,
+ raise ValidationError(
+ _(
+ "An instance with this name already exists in this organization. Please choose a different name."
+ )
)
try:
@@ -661,16 +657,10 @@ class ServiceInstance(ServalaModelMixin, models.Model):
try:
error_body = json.loads(e.body)
reason = error_body.get("message", str(e))
- raise cls._format_error_with_support(
- "Kubernetes API error: {error}.", organization, error=reason
- )
+ raise ValidationError(_("Kubernetes API error: {}").format(reason))
except (ValueError, TypeError):
- raise cls._format_error_with_support(
- "Kubernetes API error: {error}.", organization, error=str(e)
- )
- raise cls._format_error_with_support(
- "Error creating instance: {error}.", organization, error=str(e)
- )
+ raise ValidationError(_("Kubernetes API error: {}").format(str(e)))
+ raise ValidationError(_("Error creating instance: {}").format(str(e)))
return instance
def update_spec(self, spec_data, updated_by):
@@ -691,27 +681,28 @@ class ServiceInstance(ServalaModelMixin, models.Model):
self.save() # Updates updated_at timestamp
except ApiException as e:
if e.status == 404:
- raise self._format_error_with_support(
- "Service instance not found in Kubernetes. It may have been deleted externally.",
- self.organization,
+ raise ValidationError(
+ _(
+ "Service instance not found in Kubernetes. It may have been deleted externally."
+ )
)
try:
error_body = json.loads(e.body)
reason = error_body.get("message", str(e))
- raise self._format_error_with_support(
- "Kubernetes API error updating instance: {error}.",
- self.organization,
- error=reason,
+ raise ValidationError(
+ _("Kubernetes API error updating instance: {error}").format(
+ error=reason
+ )
)
except (ValueError, TypeError):
- raise self._format_error_with_support(
- "Kubernetes API error updating instance: {error}.",
- self.organization,
- error=str(e),
+ raise ValidationError(
+ _("Kubernetes API error updating instance: {error}").format(
+ error=str(e)
+ )
)
except Exception as e:
- raise self._format_error_with_support(
- "Error updating instance: {error}.", self.organization, error=str(e)
+ raise ValidationError(
+ _("Error updating instance: {error}").format(error=str(e))
)
@transaction.atomic
@@ -863,24 +854,3 @@ class ServiceInstance(ServalaModelMixin, models.Model):
return {"error": str(e)}
except Exception as e:
return {"error": str(e)}
-
- @classmethod
- def _format_error_with_support(cls, message, organization, **kwargs):
- """
- Helper method to format error messages with support links.
-
- Args:
- message: The error message template (without support text)
- organization: The organization object to get the support URL
- **kwargs: Additional format parameters for the message
-
- Returns:
- A ValidationError with the formatted message including support link
- """
- support_url = organization.urls.support
- # Combine the main message with the support message template
- full_message = _("{message} {support_message}").format(
- message=_(message).format(**kwargs),
- support_message=SUPPORT_MESSAGE_TEMPLATE.format(support_url=support_url),
- )
- return ValidationError(mark_safe(full_message))
diff --git a/src/servala/frontend/templates/includes/message.html b/src/servala/frontend/templates/includes/message.html
index d5debc9..59260d2 100644
--- a/src/servala/frontend/templates/includes/message.html
+++ b/src/servala/frontend/templates/includes/message.html
@@ -9,7 +9,7 @@