Nokia: Putting in support for metro network services within XOS for E-CORD

Change-Id: Idbc7e09ca53b0d9705d24bf1730fd9b05347a241
diff --git a/xos/synchronizer/providers/metronetworkprovider.py b/xos/synchronizer/providers/metronetworkprovider.py
new file mode 100644
index 0000000..db651c3
--- /dev/null
+++ b/xos/synchronizer/providers/metronetworkprovider.py
@@ -0,0 +1,95 @@
+from xos.logger import Logger, logging
+from core.models.netw import *
+
+logger = Logger(level=logging.INFO)
+
+
+class MetroNetworkProvider(object):
+    networkdevice = None
+
+    def __init__(self, networkdevice, **args):
+        self.networkdevice = networkdevice
+        pass
+
+    # Methods to support for Synchronization - effectively list all interfaces
+    #
+    # Method for retrieving all network ports from the backend system
+    # Intended for use when doing a re-sync
+    def get_network_ports(self):
+        # Default method needs to be overriden
+        logger.debug("get_network_ports default called - should be overriden")
+
+    # Method for getting a list of network ports to delete
+    # The default imnplementation just gets a list from the local DB
+    # Intended for use when doing a re-sync
+    def get_network_ports_for_deletion(self):
+        # Default method needs to be overriden
+        logger.debug("get_network_ports for deletion called - default is all ports in the db related to this id")
+        objs = []
+        # ports = NetworkPort.objects.filter(networkdevice=self.networkdevice.id)
+        ports = NetworkPort.objects.all()
+        for port in ports:
+            objs.append(port)
+
+        return objs
+
+    # Method for retrieving all network links from the backend system
+    # Includes Connectivity Objects
+    # Intended for use when doing a re-sync
+    def get_network_links(self):
+        # Default method needs to be overriden
+        logger.debug("get_network_links default called - should be overriden")
+        objs = []
+        return objs
+
+    # Method for getting a list of network links to delete
+    # Includes Connectivity Objects
+    # Intended for use when doing a re-sync
+    def get_network_links_for_deletion(self):
+        # Default method needs to be overriden
+        logger.debug("get_network_links for deletion called - should be overidden")
+        objs = []
+        return objs
+
+    # Methods to support Event Management - movement of changes from the Domain to XOS
+    #
+    # Method for Create and Update - Create and Update are together given the base design
+    def get_updated_or_created_objects(self):
+        # Default method needs to be overriden
+        logger.debug("get_updated_or_created_objects default called - should be overriden")
+        objs = []
+        return objs
+
+    # Method for Delete - Create and Update are together given the base design
+    def get_deleted_objects(self):
+        # Default method needs to be overriden
+        logger.debug("get_deleted_objects default called - should be overriden")
+        objs = []
+        return objs
+
+    # Methods to support Movement of changes from XOS into the Domain
+    #
+    # Method for creating point to point connectivity object
+    #
+    # obj     - Connection object - with all configuration variables set
+    # returns - Boolean - indicating whether or not the request succeeded - in either case the Admin/Oper
+    #                     states are assigned - if False the backend_status field
+    #                     should be assigned with the appropriate error code - in the case of True the
+    #                     backend_status will be assigned by the system and should be unassigned
+
+    def create_point_to_point_connectivity(self, obj):
+        # Default method needs to be overriden
+        logger.debug("create_point_to_point_connectivity called - should be overriden")
+        return False
+
+    # Method for deleting point to point connectivity object
+    #
+    # obj     - Connection object
+    # returns - Boolean - indicating whether or not the request succeeded - in either case the Admin/Oper
+    #                     states are assigned - if False the backend_status field
+    #                     should be assigned with the appropriate error code - in the case of True the
+    #                     backend_status will be assigned by the system and should be unassigned
+    def delete_point_to_point_connectivity(self, obj):
+        # Default method needs to be overriden
+        logger.debug("delete_point_to_point_connectivity called - should be overriden")
+        return False