diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index bda9359..81df366 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -465,6 +465,7 @@
     host_config_dir = os.path.join(setup_dir, 'onos-config')
     guest_config_dir = '/root/onos/config'
     guest_data_dir = '/root/onos/apache-karaf-3.0.5/data'
+    guest_log_file = '/root/onos/apache-karaf-3.0.5/data/log/karaf.log'
     onos_gen_partitions = os.path.join(setup_dir, 'onos-gen-partitions')
     onos_form_cluster = os.path.join(setup_dir, 'onos-form-cluster')
     cord_apps_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'apps')
@@ -521,6 +522,11 @@
         if os.path.exists(host_volume_dir):
             shutil.rmtree(host_volume_dir)
 
+    @classmethod
+    def update_data_dir(cls, karaf):
+        Onos.guest_data_dir = '/root/onos/apache-karaf-{}/data'.format(karaf)
+        Onos.guest_log_file = '/root/onos/apache-karaf-{}/data/log/karaf.log'.format(karaf)
+
     def remove_data_volume(self):
         if self.data_map is not None:
             self.remove_data_map(*self.data_map)
@@ -643,7 +649,7 @@
 
     @classmethod
     def wait_for_onos_start(cls, ip, tries = 30):
-        onos_log = OnosLog(host = ip)
+        onos_log = OnosLog(host = ip, log_file = Onos.guest_log_file)
         num_tries = 0
         started = None
         while not started and num_tries < tries:
diff --git a/src/test/utils/OnosLog.py b/src/test/utils/OnosLog.py
index 0a31b80..15fb216 100644
--- a/src/test/utils/OnosLog.py
+++ b/src/test/utils/OnosLog.py
@@ -6,10 +6,14 @@
     CLI_USER = 'karaf'
     CLI_PASSWD = 'karaf'
     CLI_PORT = 8101
+    KARAF_VERSION = os.getenv('KARAF_VERSION', '3.0.5')
     HOST = os.getenv('ONOS_CONTROLLER_IP', '172.17.0.2').split(',')[0]
     last_snapshot_map = {}
 
-    def __init__(self, host = HOST):
+    def __init__(self, host = HOST, log_file = None):
+        if log_file is None:
+            log_file = '/root/onos/apache-karaf-{}/data/log/karaf.log'.format(self.KARAF_VERSION)
+        self.log_file = log_file
         self.ssh_agent = SSHTestAgent(host = host, user = self.CLI_USER,
                                       password = self.CLI_PASSWD, port = self.CLI_PORT)
         if not OnosLog.last_snapshot_map.has_key(host):
@@ -27,7 +31,7 @@
 
     def get_log(self, search_terms = None, exception = True, cache_result = True):
         """Run the command on the test host"""
-        cmd = 'cat /root/onos/apache-karaf-3.0.5/data/log/karaf.log'
+        cmd = 'cat {}'.format(self.log_file)
         st, output = self.ssh_agent.run_cmd(cmd)
         if st is False:
             return st, output
@@ -64,7 +68,7 @@
 
     def search_log_pattern(self, pattern):
         r_pat = re.compile(pattern)
-        cmd = 'cat /root/onos/apache-karaf-3.0.5/data/log/karaf.log'
+        cmd = 'cat {}'.format(self.log_file)
         st, output = self.ssh_agent.run_cmd(cmd)
         if st is False:
             return None
diff --git a/src/test/utils/TestManifest.py b/src/test/utils/TestManifest.py
index b5ec2d4..143727c 100644
--- a/src/test/utils/TestManifest.py
+++ b/src/test/utils/TestManifest.py
@@ -48,6 +48,7 @@
             self.iterations = None
             self.server = args.server
             self.jvm_heap_size = args.jvm_heap_size if args.jvm_heap_size else None
+            self.karaf_version = args.karaf
         else:
             with open(self.manifest, 'r') as fd:
                 data = json.load(fd)
@@ -72,3 +73,4 @@
             self.server = data.get('test_server', '{}:{}'.format(CORD_TEST_HOST, CORD_TEST_PORT))
             self.iterations = data.get('iterations', None)
             self.jvm_heap_size = data.get('jvm_heap_size', None)
+            self.karaf_version = data.get('karaf_version', '3.0.5')
