blob: c1471f44dea31c929168a6dcb1eee69bf1528576 [file] [log] [blame]
Matteo Scandoloc48a0fc2018-01-31 11:38:11 -08001from xos.exceptions import XOSValidationError
2
3from models_decl import MCordSubscriberService_decl
4from models_decl import MCordSubscriberInstance_decl
5
6
7
8
9class MCordSubscriberService(MCordSubscriberService_decl):
10 class Meta:
11 proxy = True
12
13
14class MCordSubscriberInstance(MCordSubscriberInstance_decl):
15 class Meta:
16 proxy = True
17
18 def save(self, *args, **kwargs):
Matteo Scandolo95f585e2018-02-14 15:21:29 -080019 # if we don't have a name, use the IMSI number has a name
20 if not self.name:
21 self.name = self.imsi_number
22
Matteo Scandoloffdd0832018-02-01 15:52:37 -080023 # prevent IMSI duplicate
24 try:
25 instance_with_same_imsi = MCordSubscriberInstance.objects.get(imsi_number=self.imsi_number)
26
27 if (not self.pk and instance_with_same_imsi) or (self.pk and self.pk != instance_with_same_imsi.pk):
28 raise XOSValidationError("An MCORDSubscriber with imsi_number '%s' already exists" % self.imsi_number)
29 except self.DoesNotExist:
30 pass
31
Matteo Scandolo8fdf4092018-02-05 13:15:54 -080032 if self.is_new and not self.created_by:
33 # NOTE if created_by is null it has been created by XOS
34 self.created_by = "XOS"
35
Matteo Scandolo95f585e2018-02-14 15:21:29 -080036 self.backend_code = 0
37 self.backend_status = "In Progress"
38
Matteo Scandoloc48a0fc2018-01-31 11:38:11 -080039 super(MCordSubscriberInstance, self).save(*args, **kwargs)