Install the right ONOS and cord-tester apps based on ONOS version.
Install a 1.1 olt app for ONOS 1.8 versions.

Change-Id: Id6255b897a95474f41ddf39fa067413c43731684
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index f84da49..4f65fda 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -581,10 +581,11 @@
     JAVA_OPTS_DEFAULT = JAVA_OPTS_FORMAT.format(*SYSTEM_MEMORY) #-XX:+PrintGCDetails -XX:+PrintGCTimeStamps'
     JAVA_OPTS_CLUSTER_DEFAULT = JAVA_OPTS_FORMAT.format(*INSTANCE_MEMORY)
     env = { 'ONOS_APPS' : 'drivers,openflow,proxyarp,vrouter', 'JAVA_OPTS' : JAVA_OPTS_DEFAULT }
-    onos_cord_apps = ( ('cord-config', '1.2-SNAPSHOT'),
-                       ('aaa', '1.2-SNAPSHOT'),
-                       ('igmp', '1.2-SNAPSHOT'),
+    onos_cord_apps = ( ['cord-config', '1.2-SNAPSHOT'],
+                       ['aaa', '1.2-SNAPSHOT'],
+                       ['igmp', '1.2-SNAPSHOT'],
                        )
+    cord_apps_version_updated = False
     ports = [] #[ 8181, 8101, 9876, 6653, 6633, 2000, 2620, 5005 ]
     setup_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'setup')
     host_config_dir = os.path.join(setup_dir, 'onos-config')
@@ -916,7 +917,53 @@
                 onos.install_cord_apps(onos.ipaddr)
 
     @classmethod
+    def cliEnter(cls, onos_ip = None):
+        retries = 0
+        while retries < 10:
+            cli = OnosCliDriver(controller = onos_ip, connect = True)
+            if cli.handle:
+                return cli
+            else:
+                retries += 1
+                time.sleep(3)
+
+        return None
+
+    @classmethod
+    def cliExit(cls, cli):
+        if cli:
+            cli.disconnect()
+
+    @classmethod
+    def getVersion(cls, onos_ip = None):
+        cli = cls.cliEnter(onos_ip = onos_ip)
+        try:
+            summary = json.loads(cli.summary(jsonFormat = True))
+        except:
+            cls.cliExit(cli)
+            return '1.8.0'
+        cls.cliExit(cli)
+        return summary['version']
+
+    @classmethod
+    def update_cord_apps_version(cls, onos_ip = None):
+        if cls.cord_apps_version_updated == True:
+            return
+        version = cls.getVersion(onos_ip = onos_ip)
+        major = int(version.split('.')[0])
+        minor = int(version.split('.')[1])
+        app_version = '1.2-SNAPSHOT'
+        if major > 1:
+            app_version = '2.0-SNAPSHOT'
+        elif major == 1 and minor > 10:
+            app_version = '2.0-SNAPSHOT'
+        for apps in cls.onos_cord_apps:
+            apps[1] = app_version
+        cls.cord_apps_version_updated = True
+
+    @classmethod
     def install_cord_apps(cls, onos_ip = None):
+        cls.update_cord_apps_version(onos_ip = onos_ip)
         for app, version in cls.onos_cord_apps:
             app_file = '{}/{}-{}.oar'.format(cls.cord_apps_dir, app, version)
             ok, code = OnosCtrl.install_app(app_file, onos_ip = onos_ip)