cd ${YARDSTICK_REPO_DIR}
 git_checkout ${YARDSTICK_BRANCH}
 
-# setup the environment
-source ${YARDSTICK_REPO_DIR}/tests/ci/prepare_env.sh
+if [[ "${DEPLOY_SCENARIO:0:2}" == "os" ]];then
+    # setup the environment
+    source ${YARDSTICK_REPO_DIR}/tests/ci/prepare_env.sh
+fi
 
 # execute tests
 ${YARDSTICK_REPO_DIR}/tests/ci/yardstick-verify $@
 
 
 }
 
+check_openstack(){
+    # check if some necessary variables is set
+    if [ -z "$OS_AUTH_URL" ]; then
+        echo "OS_AUTH_URL is unset or empty"
+        exit 1
+    fi
+
+    echo "OS_AUTH_URL is $OS_AUTH_URL"
+    echo
+
+    # check OpenStack services
+    if [[ $OS_INSECURE ]] && [[ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]]; then
+        SECURE="--insecure"
+    else
+        SECURE=""
+    fi
+    echo "Checking OpenStack services:"
+    for cmd in "openstack ${SECURE} image list" "openstack ${SECURE} server list" "openstack ${SECURE} stack list"; do
+        echo "  checking ${cmd} ..."
+        if ! $cmd >/dev/null; then
+            echo "error: command \"$cmd\" failed"
+            exit 1
+        fi
+    done
+
+    echo
+    echo "Checking for External network:"
+    for net in $(openstack network list --external -c Name -f value); do
+        echo "  external network: $net"
+    done
+}
+
 main()
 {
     GITROOT=$(cd $(dirname $0) && git rev-parse --show-toplevel)
     done
     echo
 
-    # check if some necessary variables is set
-    if [ -z "$OS_AUTH_URL" ]; then
-        echo "OS_AUTH_URL is unset or empty"
-        exit 1
-    fi
+    trap "error_exit" EXIT SIGTERM
 
-    echo "OS_AUTH_URL is $OS_AUTH_URL"
-    echo
+    if [[ "${DEPLOY_SCENARIO:0:2}" == "os" ]];then
+        check_openstack
 
-    # check OpenStack services
-    if [[ $OS_INSECURE ]] && [[ "$(echo $OS_INSECURE | tr '[:upper:]' '[:lower:]')" = "true" ]]; then
-        SECURE="--insecure"
-    else
-        SECURE=""
+        source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh
+        source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh
     fi
-    echo "Checking OpenStack services:"
-    for cmd in "openstack ${SECURE} image list" "openstack ${SECURE} server list" "openstack ${SECURE} stack list"; do
-        echo "  checking ${cmd} ..."
-        if ! $cmd >/dev/null; then
-            echo "error: command \"$cmd\" failed"
-            exit 1
-        fi
-    done
-
-    echo
-    echo "Checking for External network:"
-    for net in $(openstack network list --external -c Name -f value); do
-        echo "  external network: $net"
-    done
-
-    source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh
-
-    trap "error_exit" EXIT SIGTERM
 
-    source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh
     install_storperf
     run_test
     remove_storperf
 
 import logging
 import os
 import uuid
+import errno
 from collections import OrderedDict
 
 import ipaddress
 from yardstick.benchmark.contexts.model import update_scheduler_hints
 from yardstick.common.openstack_utils import get_neutron_client
 from yardstick.orchestrator.heat import HeatTemplate, get_short_key_uuid
-from yardstick.common.constants import YARDSTICK_ROOT_PATH
+from yardstick.common import constants as consts
+from yardstick.common.utils import source_env
 from yardstick.ssh import SSH
 
 LOG = logging.getLogger(__name__)
         self.key_uuid = uuid.uuid4()
         self.heat_timeout = None
         self.key_filename = ''.join(
-            [YARDSTICK_ROOT_PATH, 'yardstick/resources/files/yardstick_key-',
+            [consts.YARDSTICK_ROOT_PATH, 'yardstick/resources/files/yardstick_key-',
              get_short_key_uuid(self.key_uuid)])
         super(HeatContext, self).__init__()
 
         return sorted_networks
 
     def init(self, attrs):
+        self.check_environment()
         """initializes itself from the supplied arguments"""
         self.name = attrs["name"]
 
         self.attrs = attrs
         SSH.gen_keys(self.key_filename)
 
+    def check_environment(self):
+        try:
+            os.environ['OS_AUTH_URL']
+        except KeyError:
+            try:
+                source_env(consts.OPENRC)
+            except IOError as e:
+                if e.errno != errno.EEXIST:
+                    LOG.error('OPENRC file not found')
+                    raise
+                else:
+                    LOG.error('OS_AUTH_URL not found')
+
     @property
     def image(self):
         """returns application's default image name"""
 
 import time
 import logging
 import uuid
-import errno
 import collections
 
 from six.moves import filter
 from yardstick.common.yaml_loader import yaml_load
 from yardstick.dispatcher.base import Base as DispatcherBase
 from yardstick.common.task_template import TaskTemplate
-from yardstick.common.utils import source_env
 from yardstick.common import utils
 from yardstick.common import constants
 from yardstick.common.html_template import report_template
 
         self._set_log()
 
-        check_environment()
-
         try:
             output_config = utils.parse_ini_file(config_file)
         except Exception:
     return kw
 
 
-def check_environment():
-    auth_url = os.environ.get('OS_AUTH_URL', None)
-    if not auth_url:
-        try:
-            source_env(constants.OPENRC)
-        except IOError as e:
-            if e.errno != errno.EEXIST:
-                raise
-            LOG.debug('OPENRC file not found')
-
-
 def change_server_name(scenario, suffix):
     try:
         host = scenario['host']