CORD-1913: Restore execution of custom service save() methods in attics
Change-Id: I989aef8f1efa9a61ea6ca88fec2eec7f1e24ac83
(cherry picked from commit df97081abcd640f857b9287f0ab75822cf290e37)
diff --git a/xos/attic/monitoringchannel_model.py b/xos/attic/monitoringchannel_model.py
index 458759a..250d6c1 100644
--- a/xos/attic/monitoringchannel_model.py
+++ b/xos/attic/monitoringchannel_model.py
@@ -30,7 +30,7 @@
#Allow creation of this model instances for non-admin users also
return True
-def save(self, *args, **kwargs):
+def __xos_save_base(self, *args, **kwargs):
if not self.creator:
if not getattr(self, "caller", None):
# caller must be set when creating a monitoring channel since it creates a slice
@@ -45,8 +45,8 @@
if channel_count > 0:
raise XOSValidationError("Already %s channels exist for user Can only create max 1 MonitoringChannel instance per user" % str(channel_count))
- super(MonitoringChannel, self).save(*args, **kwargs)
model_policy_monitoring_channel(self.pk)
+ return False
def delete(self, *args, **kwargs):
self.cleanup_container()
@@ -183,4 +183,4 @@
ceilometer_services = CeilometerService.get_service_objects().all()
if not ceilometer_services:
return None
- return ceilometer_services[0].kafka_url
\ No newline at end of file
+ return ceilometer_services[0].kafka_url
diff --git a/xos/attic/onosservicemonitoringpublisher_model.py b/xos/attic/onosservicemonitoringpublisher_model.py
index 1f6137f..037227e 100644
--- a/xos/attic/onosservicemonitoringpublisher_model.py
+++ b/xos/attic/onosservicemonitoringpublisher_model.py
@@ -21,7 +21,7 @@
#Don't allow creation of this model instances for non-admin users also
return False
-def save(self, *args, **kwargs):
+def __xos_save_base(self, *args, **kwargs):
if not self.creator:
if not getattr(self, "caller", None):
# caller must be set when creating a monitoring channel since it creates a slice
@@ -36,4 +36,4 @@
if publisher_count > 0:
raise XOSValidationError("Already %s openstack publishers exist for user Can only create max 1 ONOSServiceMonitoringPublisher instance per user" % str(publisher_count))
- super(ONOSServiceMonitoringPublisher, self).save(*args, **kwargs)
\ No newline at end of file
+ return False
diff --git a/xos/attic/openstackservicemonitoringpublisher_model.py b/xos/attic/openstackservicemonitoringpublisher_model.py
index 23102f5..c6dfa7e 100644
--- a/xos/attic/openstackservicemonitoringpublisher_model.py
+++ b/xos/attic/openstackservicemonitoringpublisher_model.py
@@ -21,7 +21,7 @@
#Don't allow creation of this model instances for non-admin users also
return False
-def save(self, *args, **kwargs):
+def __xos_save_base(self, *args, **kwargs):
if not self.creator:
if not getattr(self, "caller", None):
# caller must be set when creating a monitoring channel since it creates a slice
@@ -36,4 +36,5 @@
if publisher_count > 0:
raise XOSValidationError("Already %s openstack publishers exist for user Can only create max 1 OpenStackServiceMonitoringPublisher instance per user" % str(publisher_count))
- super(OpenStackServiceMonitoringPublisher, self).save(*args, **kwargs)
\ No newline at end of file
+ return False
+
diff --git a/xos/attic/sflowtenant_model.py b/xos/attic/sflowtenant_model.py
index 3132df1..2c0227c 100644
--- a/xos/attic/sflowtenant_model.py
+++ b/xos/attic/sflowtenant_model.py
@@ -56,7 +56,7 @@
raise XOSProgrammingError("SFlowTenant: Only UDP listening endpoint URLs are accepted...valid syntax is: udp://ip:port")
self.set_attribute("listening_endpoint", value)
-def save(self, *args, **kwargs):
+def __xos_save_base(self, *args, **kwargs):
if not self.creator:
if not getattr(self, "caller", None):
# caller must be set when creating a SFlow tenant since it creates a slice
@@ -74,7 +74,7 @@
if channel_count > 0:
raise XOSValidationError("Already %s sflow channels exist for user Can only create max 1 tenant per user and listening endpoint" % str(channel_count))
- super(SFlowTenant, self).save(*args, **kwargs)
+ return False
def delete(self, *args, **kwargs):
super(MonitoringChannel, self).delete(*args, **kwargs)
diff --git a/xos/attic/userservicemonitoringpublisher_model.py b/xos/attic/userservicemonitoringpublisher_model.py
index 9bee3eb..5ac3335 100644
--- a/xos/attic/userservicemonitoringpublisher_model.py
+++ b/xos/attic/userservicemonitoringpublisher_model.py
@@ -90,7 +90,7 @@
self.cached_service_monitoring_agent = None
self.set_attribute("service_monitoring_agent", value)
-def save(self, *args, **kwargs):
+def __xos_save_base(self, *args, **kwargs):
if not self.creator:
if not getattr(self, "caller", None):
# caller must be set when creating a monitoring channel since it creates a slice
@@ -128,4 +128,6 @@
tenancy_from_target_service.delete()
if service_monitoring_agent:
service_monitoring_agent.delete()
- raise
\ No newline at end of file
+ raise
+
+ return True # Indicate that we called super.save()