Adding UNI to be onboarded via Tosca
Change-Id: Ib1f38203372575c1e2638fd1d961221972f4f1f7
diff --git a/xos/models.py b/xos/models.py
index 4ebda3b..580bb4f 100644
--- a/xos/models.py
+++ b/xos/models.py
@@ -461,3 +461,43 @@
def __init__(self, *args, **kwargs):
super(VnodGlobalService, self).__init__(*args, **kwargs)
+
+
+class UserNetworkInterface(PlCoreBase):
+
+ class Meta:
+ app_label = METRONETWORK_KIND
+ verbose_name = "User Network Interface"
+
+ id = models.AutoField(verbose_name="id", primary_key=True, editable=False)
+ enabled = models.IntegerField(verbose_name="State of UNI", editable=True)
+ capacity = models.IntegerField(verbose_name="UNI Capacity", editable=True)
+ bw_used = models.IntegerField(verbose_name="UNI bandwidth used", editable=True)
+ vlanIds = models.CharField(verbose_name="VlanIds in this UNI", max_length=256, editable=True)
+ location = models.CharField(verbose_name="Location", max_length=256, editable=True, blank=True)
+ latlng = models.CharField(verbose_name="Latitude/Longitude", max_length=50, editable=True, blank=True)
+ name = models.CharField(unique=True, verbose_name="Name", max_length=256, editable=True)
+
+ def __init__(self, *args, **kwargs):
+ super(UserNetworkInterface, self).__init__(*args, **kwargs)
+
+ def __unicode__(self): return u'%s' % (self.name)
+
+ def save(self, *args, **kwargs):
+
+ if self.latlng:
+ try:
+ latlng_value = getattr(self, 'latlng').strip()
+ if (latlng_value.startswith('[') and latlng_value.endswith(']') and latlng_value.index(',') > 0):
+ lat = latlng_value[1: latlng_value.index(',')].strip()
+ lng = latlng_value[latlng_value.index(',') + 1: len(latlng_value) - 1].strip()
+
+ # If lat and lng are not floats, the code below should result in an error.
+ lat_validation = float(lat)
+ lng_validation = float(lng)
+ else:
+ raise ValueError("The lat/lng value is not formatted correctly.")
+ except:
+ raise ValueError("The lat/lng value is not formatted correctly.")
+
+ super(UserNetworkInterface, self).save(*args, **kwargs)
\ No newline at end of file