Reactivate CORD/ONOS apps used by cord-tester after reactivating drivers app.
Since reactivation of drivers app seems to result in apps losing reference to netcfg service.
AAA app hits an exception in config update after reactivating org.onosproject.drivers.

Change-Id: Icac6c5c9f73e35677861d1e7c1789baa89c0ab4a
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index ba62ef7..b7933f8 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -587,9 +587,9 @@
     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', 'org.opencord.config'],
+                       ['aaa', '1.2-SNAPSHOT', 'org.opencord.aaa'],
+                       ['igmp', '1.2-SNAPSHOT', 'org.opencord.igmp'],
                        )
     cord_apps_version_updated = False
     expose_port = False
@@ -994,7 +994,7 @@
     @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:
+        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)
             ##app already installed (conflicts)
@@ -1003,6 +1003,21 @@
             print('ONOS app %s, version %s %s' %(app, version, 'installed' if ok else 'failed to install'))
             time.sleep(2)
 
+    @classmethod
+    def activate_apps(cls, apps, onos_ip = None, deactivate = False):
+        for app in apps:
+            if deactivate is True:
+                OnosCtrl(app, controller = onos_ip).deactivate()
+                time.sleep(2)
+            OnosCtrl(app, controller = onos_ip).activate()
+
+        time.sleep(5)
+
+    @classmethod
+    def activate_cord_apps(cls, onos_ip = None, deactivate = True):
+        cord_apps = map(lambda a: a[2], cls.onos_cord_apps)
+        cls.activate_apps(cord_apps, onos_ip = onos_ip, deactivate = deactivate)
+
 class OnosStopWrapper(Container):
     def __init__(self, name):
         super(OnosStopWrapper, self).__init__(name, Onos.IMAGE, tag = Onos.TAG, prefix = Container.IMAGE_PREFIX)
diff --git a/src/test/utils/VolthaCtrl.py b/src/test/utils/VolthaCtrl.py
index fe2761c..2702b9a 100644
--- a/src/test/utils/VolthaCtrl.py
+++ b/src/test/utils/VolthaCtrl.py
@@ -143,6 +143,7 @@
     UPLINK_VLAN_MAP = { 'of:0000000000000001' : '222' }
     REST_PORT = 8881
     HOST = '172.17.0.1'
+    ONOS_APPS = ('org.onosproject.dhcp', 'org.onosproject.dhcp-relay', 'org.ciena.cordigmp')
 
     def __init__(self, host = HOST, rest_port = REST_PORT, uplink_vlan_map = UPLINK_VLAN_MAP, uplink_vlan_start = UPLINK_VLAN_START):
         self.host = host
@@ -201,10 +202,13 @@
             OnosCtrl('org.onosproject.drivers').deactivate()
             OnosCtrl('org.onosproject.openflow-base').deactivate()
             OnosCtrl.config(device_config)
-            time.sleep(2)
+            time.sleep(10)
             OnosCtrl('org.onosproject.drivers').activate()
             OnosCtrl('org.onosproject.openflow-base').activate()
             time.sleep(5)
+            log.info('Reactivating CORD and ONOS apps')
+            Onos.activate_cord_apps(deactivate = True)
+            Onos.activate_apps(self.ONOS_APPS, deactivate = True)
 
         return self.switch_map