Added support for invokers, non-docker runtime. Added ETREE and ELAN models, admin GUI, REST API and test domain

Change-Id: Iade143ba72f967390f0782a4e46e5aa289f9ffbb
diff --git a/xos/synchronizer/invokers/invokerfactory.py b/xos/synchronizer/invokers/invokerfactory.py
new file mode 100644
index 0000000..786f99d
--- /dev/null
+++ b/xos/synchronizer/invokers/invokerfactory.py
@@ -0,0 +1,20 @@
+from services.metronetwork.models import *
+from synchronizers.metronetwork.invokers.networkmultipointtomultipointinvoker import NetworkMultipointToMultipointInvoker
+from synchronizers.metronetwork.invokers.networkedgetoedgepointinvoker import NetworkEdgeToEdgePointInvoker
+from synchronizers.metronetwork.invokers.networkedgetomultipointinvoker import NetworkEdgeToMultipointInvoker
+
+
+class InvokerFactory(object):
+    @staticmethod
+    def getinvoker(obj):
+        #
+        # Here is where we build various invokers
+        #
+        if isinstance(obj, NetworkMultipointToMultipointConnection):
+            return NetworkMultipointToMultipointInvoker()
+        elif isinstance(obj, NetworkEdgeToEdgePointConnection):
+            return NetworkEdgeToEdgePointInvoker()
+        elif isinstance(obj, NetworkEdgeToMultipointConnection):
+            return NetworkEdgeToMultipointInvoker()
+        else:
+            return None