Adding first progran Xos integration
Change-Id: I2f9f52bff7ed985fe4b76eb928048c9d0cfde03e
diff --git a/xos/models.py b/xos/models.py
new file mode 100644
index 0000000..de98a6d
--- /dev/null
+++ b/xos/models.py
@@ -0,0 +1,91 @@
+from django.db import models
+from core.models import Service, PlCoreBase, Slice, Instance, Tenant, TenantWithContainer, Node, Image, User, Flavor, Subscriber, NetworkParameter, NetworkParameterType, Port, AddressPool
+from core.models.plcorebase import StrippedCharField
+import os
+from django.db import models, transaction
+from django.forms.models import model_to_dict
+from django.db.models import Q
+from operator import itemgetter, attrgetter, methodcaller
+from core.models import Tag
+from core.models.service import LeastLoadedNodeScheduler
+import traceback
+from xos.exceptions import *
+from xos.config import Config
+
+
+class ConfigurationError(Exception):
+ pass
+
+
+PROGRAN_KIND = "Progran"
+APP_LABEL = "progran"
+
+
+
+class VProgranService(Service):
+ KIND = PROGRAN_KIND
+
+ class Meta:
+ app_label = APP_LABEL
+ verbose_name = "Progran Service"
+ proxy = True
+
+ default_attributes = {
+ "rest_hostname": "10.6.0.1",
+ "rest_port": "8183",
+ "rest_user": "onos",
+ "rest_pass": "rocks"
+ }
+
+ @property
+ def rest_hostname(self):
+ return self.get_attribute("rest_hostname", self.default_attributes["rest_hostname"])
+
+ @rest_hostname.setter
+ def rest_hostname(self, value):
+ self.set_attribute("rest_hostname", value)
+
+ @property
+ def rest_port(self):
+ return self.get_attribute("rest_port", self.default_attributes["rest_port"])
+
+ @rest_port.setter
+ def rest_port(self, value):
+ self.set_attribute("rest_port", value)
+
+ @property
+ def rest_user(self):
+ return self.get_attribute("rest_user", self.default_attributes["rest_user"])
+
+ @rest_user.setter
+ def rest_user(self, value):
+ self.set_attribute("rest_user", value)
+
+ @property
+ def rest_pass(self):
+ return self.get_attribute("rest_pass", self.default_attributes["rest_pass"])
+
+
+
+
+class VProgranImsi(PlCoreBase):
+ class Meta:
+ app_label = APP_LABEL
+ verbose_name = "vProgran Imsi"
+
+ uiid = models.IntegerField( help_text="uiid ", null=False, blank=False)
+ imsi = models.CharField(max_length=20, help_text="imsi ", null=False, blank=False)
+ profile = models.CharField(max_length=20, help_text="profile name", null=True, blank=True)
+
+
+class VProgranProfile(PlCoreBase):
+
+ class Meta:
+ app_label = APP_LABEL
+ verbose_name = "vProgran Profile"
+
+ uiid = models.IntegerField( help_text="uiid ", null=False, blank=False)
+ profile = models.CharField(max_length=20, help_text="profile name", null=False, blank=False)
+ dlrate = models.IntegerField( help_text="device download rate", null=False, blank=False)
+ ulrate = models.IntegerField( help_text="device upload rate", null=False, blank=False )
+