Fix interaction with VOLT service

With Voltha 2.x we expect that onu_device value in RCord is a combiation of
ONU serial number and UNI port.

Change-Id: I082d4539400dfbb406bfce42a60293f9c1576a90
diff --git a/VERSION b/VERSION
index 31e5c84..40b6307 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.3
+1.4.0-dev
\ No newline at end of file
diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
index 94f96fa..80d6025 100644
--- a/xos/synchronizer/models/models.py
+++ b/xos/synchronizer/models/models.py
@@ -72,7 +72,7 @@
         # unused_s_tags_for_c_tag() this function will return a list of unused s_tags for that c_tag
 
         tag = random.choice(self.unused_s_tags_for_c_tag())
- 
+
         # Check that combination(c_tag,s_tag) is unique.
         # If the combination is not unique it will keep on calling this function recursively till it gets a unique combination.
 
@@ -150,7 +150,7 @@
         return RCORDSubscriber.objects.filter(c_tag=self.c_tag, s_tag=self.s_tag)
 
     def get_used_c_tags(self):
-        same_onu_subscribers = self.get_same_onu_subscribers() 
+        same_onu_subscribers = self.get_same_onu_subscribers()
         same_onu_subscribers = [s for s in same_onu_subscribers if s.id != self.id]
         used_tags = [s.c_tag for s in same_onu_subscribers]
         return used_tags
@@ -162,7 +162,7 @@
         if len(same_s_c_tag_subscribers) > 0:
             return same_s_c_tag_subscribers[0].id
         else:
-            return None 
+            return None
 
     def validate_tech_profile_id(self):
         if self.owner.leaf_model.access != "voltha":
@@ -175,7 +175,8 @@
             if provider_service.name.lower() == "volt":
                 volt = provider_service
 
-        technology = volt.get_olt_technology_from_unu_sn(self.onu_device)
+        # When interacting with VOLT-service remove the -X from onu_device
+        technology = volt.get_olt_technology_from_unu_sn(self.onu_device.split('-')[0])
 
         try:
             tp = volt.get_tech_profile(technology, self.tech_profile_id)
@@ -229,7 +230,7 @@
             id = self.get_used_s_c_tag_subscriber_id()
             if None != id and not is_update_with_same_tag:
                 raise XOSValidationError("The c_tag(%s) and s_tag(%s) pair you specified,has already been used by Subscriber with Id (%s)" % (self.c_tag,self.s_tag,id))
-                
+
 
         if not self.c_tag:
             self.c_tag = self.generate_c_tag()
@@ -250,7 +251,8 @@
                 provider_service = ps.leaf_model
                 if provider_service.name.lower() == "volt":
                     volt_service = provider_service
-                    if not volt_service.has_access_device(self.onu_device):
+                    # When interacting with VOLT-service remove the -X from onu_device
+                    if not volt_service.has_access_device(self.onu_device.split('-')[0]):
                        raise XOSValidationError("The onu_device you specified (%s) does not exists" % self.onu_device)
 
             # if the access network is managed by voltha, validate that the tech_profile_id actually exists
@@ -260,4 +262,4 @@
         super(RCORDSubscriber, self).save(*args, **kwargs)
         self.invalidate_related_objects()
         return
-                     
+
diff --git a/xos/synchronizer/models/test_models.py b/xos/synchronizer/models/test_models.py
index 16b0114..13ec5a4 100644
--- a/xos/synchronizer/models/test_models.py
+++ b/xos/synchronizer/models/test_models.py
@@ -79,6 +79,7 @@
         self.rcord_subscriber.id = None  # this is a new model
         self.rcord_subscriber.is_new = True
         self.rcord_subscriber.onu_device = "BRCM1234"
+        self.rcord_subscriber.onu_device_uni = "BRCM1234-1"
         self.rcord_subscriber.c_tag = 111
         self.rcord_subscriber.s_tag = 222
         self.rcord_subscriber.ips = Mock()
@@ -236,7 +237,7 @@
         s.c_tag = "111"
         s.s_tag = "223"
         s.onu_device = "BRCM1234"
-        
+
         self.rcord_subscriber.get_same_onu_subscribers = Mock()
         self.rcord_subscriber.get_same_onu_subscribers.return_value = [s]