diff --git a/tcp_tests/fixtures/ceph_fixtures.py b/tcp_tests/fixtures/ceph_fixtures.py
index 94315c4..44ab7d2 100644
--- a/tcp_tests/fixtures/ceph_fixtures.py
+++ b/tcp_tests/fixtures/ceph_fixtures.py
@@ -38,7 +38,7 @@
 @pytest.mark.revert_snapshot(ext.SNAPSHOT.ceph_deployed)
 @pytest.fixture(scope='function')
 def ceph_deployed(revert_snapshot, request, config,
-                  hardware, underlay, common_services_deployed,
+                  hardware, underlay, core_deployed,
                   salt_deployed, ceph_actions):
     """Fixture to get or install Ceph services on environment
 
@@ -48,7 +48,7 @@
     :param config: fixture provides oslo.config
     :param hardware: fixture provides enviromnet manager
     :param underlay: fixture provides underlay manager
-    :param common_services_deployed: fixture provides CommonServicesManager
+    :param core_deployed: fixture provides CoreManager
     :param ceph_actions: fixture provides CephManager instance
     :rtype: CephManager
 
diff --git a/tcp_tests/fixtures/common_services_fixtures.py b/tcp_tests/fixtures/common_services_fixtures.py
deleted file mode 100644
index 7d1c73f..0000000
--- a/tcp_tests/fixtures/common_services_fixtures.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#    Copyright 2016 Mirantis, Inc.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import pytest
-
-from tcp_tests import logger
-from tcp_tests.helpers import ext
-from tcp_tests.managers import common_services_manager
-
-LOG = logger.logger
-
-
-@pytest.fixture(scope='function')
-def common_services_actions(config, underlay, salt_actions):
-    """Fixture that provides various actions for CommonServices
-
-    :param config: fixture provides oslo.config
-    :param underlay: fixture provides underlay manager
-    :rtype: CommonServicesManager
-    """
-    return common_services_manager.CommonServicesManager(config, underlay,
-                                                         salt_actions)
-
-
-@pytest.mark.revert_snapshot(ext.SNAPSHOT.common_services_deployed)
-@pytest.fixture(scope='function')
-def common_services_deployed(revert_snapshot, request, config,
-                             hardware, underlay, salt_deployed,
-                             common_services_actions):
-    """Fixture to get or install common services on the environment
-
-    :param revert_snapshot: fixture that reverts snapshot that is specified
-                            in test with @pytest.mark.revert_snapshot(<name>)
-    :param request: fixture provides pytest data
-    :param config: fixture provides oslo.config
-    :param hardware: fixture provides enviromnet manager
-    :param underlay: fixture provides underlay manager
-    :param common_services_actions: fixture provides CommonServicesManager
-                                    instance
-    :rtype: CommonServicesManager
-
-    If config.common_services.common_services_installed is not set, this
-    fixture assumes that the common services were not installed
-    , and do the following:
-    - install common services
-    - make snapshot with name 'common_services_deployed'
-    - return CommonServicesManager
-
-    If config.common_services.common_services_installed was set, this fixture
-    assumes that the common services were already installed, and do
-    the following:
-    - return CommonServicesManager instance
-
-    If you want to revert 'common_services_deployed' snapshot, please use mark:
-    @pytest.mark.revert_snapshot("common_services_deployed")
-    """
-    # Create Salt cluster
-    if not config.common_services.common_services_installed:
-        steps_path = config.common_services_deploy.common_services_steps_path
-        commands = underlay.read_template(steps_path)
-        common_services_actions.install(commands)
-        hardware.create_snapshot(ext.SNAPSHOT.common_services_deployed)
-        salt_deployed.sync_time()
-
-    else:
-        # 1. hardware environment created and powered on
-        # 2. config.underlay.ssh contains SSH access to provisioned nodes
-        #    (can be passed from external config with TESTS_CONFIGS variable)
-        # 3. config.tcp.* options contain access credentials to the already
-        #    installed TCP API endpoint
-        pass
-
-    return common_services_actions
diff --git a/tcp_tests/fixtures/core_fixtures.py b/tcp_tests/fixtures/core_fixtures.py
new file mode 100644
index 0000000..cb058a3
--- /dev/null
+++ b/tcp_tests/fixtures/core_fixtures.py
@@ -0,0 +1,83 @@
+#    Copyright 2016 Mirantis, Inc.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import pytest
+
+from tcp_tests import logger
+from tcp_tests.helpers import ext
+from tcp_tests.managers import core_manager
+
+LOG = logger.logger
+
+
+@pytest.fixture(scope='function')
+def core_actions(config, underlay, salt_actions):
+    """Fixture that provides various actions for Core
+
+    :param config: fixture provides oslo.config
+    :param underlay: fixture provides underlay manager
+    :rtype: CoreManager
+    """
+    return core_manager.CoreManager(config, underlay, salt_actions)
+
+
+@pytest.mark.revert_snapshot(ext.SNAPSHOT.core_deployed)
+@pytest.fixture(scope='function')
+def core_deployed(revert_snapshot, request, config,
+                  hardware, underlay, salt_deployed,
+                  core_actions):
+    """Fixture to get or install common services on the environment
+
+    :param revert_snapshot: fixture that reverts snapshot that is specified
+                            in test with @pytest.mark.revert_snapshot(<name>)
+    :param request: fixture provides pytest data
+    :param config: fixture provides oslo.config
+    :param hardware: fixture provides enviromnet manager
+    :param underlay: fixture provides underlay manager
+    :param core_actions: fixture provides CoreManager
+                                    instance
+    :rtype: CoreManager
+
+    If config.core.core_installed is not set, this
+    fixture assumes that the common services were not installed
+    , and do the following:
+    - install common services
+    - make snapshot with name 'core_deployed'
+    - return CoreManager
+
+    If config.core.core_installed was set, this fixture
+    assumes that the common services were already installed, and do
+    the following:
+    - return CoreManager instance
+
+    If you want to revert 'core_deployed' snapshot, please use mark:
+    @pytest.mark.revert_snapshot("core_deployed")
+    """
+    # Create Salt cluster
+    if not config.core.core_installed:
+        steps_path = config.core_deploy.core_steps_path
+        commands = underlay.read_template(steps_path)
+        core_actions.install(commands)
+        hardware.create_snapshot(ext.SNAPSHOT.core_deployed)
+        salt_deployed.sync_time()
+
+    else:
+        # 1. hardware environment created and powered on
+        # 2. config.underlay.ssh contains SSH access to provisioned nodes
+        #    (can be passed from external config with TESTS_CONFIGS variable)
+        # 3. config.tcp.* options contain access credentials to the already
+        #    installed TCP API endpoint
+        pass
+
+    return core_actions
diff --git a/tcp_tests/fixtures/k8s_fixtures.py b/tcp_tests/fixtures/k8s_fixtures.py
index f59ff61..a85473d 100644
--- a/tcp_tests/fixtures/k8s_fixtures.py
+++ b/tcp_tests/fixtures/k8s_fixtures.py
@@ -40,7 +40,7 @@
 @pytest.mark.revert_snapshot(ext.SNAPSHOT.k8s_deployed)
 @pytest.fixture(scope='function')
 def k8s_deployed(revert_snapshot, request, config, hardware, underlay,
-                 common_services_deployed, salt_deployed, k8s_actions):
+                 core_deployed, salt_deployed, k8s_actions):
     """Fixture to get or install k8s on environment
 
     :param revert_snapshot: fixture that reverts snapshot that is specified
@@ -49,7 +49,7 @@
     :param config: fixture provides oslo.config
     :param hardware: fixture provides enviromnet manager
     :param underlay: fixture provides underlay manager
-    :param common_services_deployed: fixture provides CommonServicesManager
+    :param core_deployed: fixture provides CoreManager
     :param k8s_actions: fixture provides K8SManager instance
     :rtype: K8SManager
 
diff --git a/tcp_tests/fixtures/openstack_fixtures.py b/tcp_tests/fixtures/openstack_fixtures.py
index 8f997a3..480a548 100644
--- a/tcp_tests/fixtures/openstack_fixtures.py
+++ b/tcp_tests/fixtures/openstack_fixtures.py
@@ -39,7 +39,7 @@
 @pytest.mark.revert_snapshot(ext.SNAPSHOT.openstack_deployed)
 @pytest.fixture(scope='function')
 def openstack_deployed(revert_snapshot, request, config,
-                       hardware, underlay, common_services_deployed,
+                       hardware, underlay, core_deployed,
                        salt_deployed, openstack_actions, rally):
     """Fixture to get or install OpenStack services on environment
 
@@ -49,7 +49,7 @@
     :param config: fixture provides oslo.config
     :param hardware: fixture provides enviromnet manager
     :param underlay: fixture provides underlay manager
-    :param common_services_deployed: fixture provides CommonServicesManager
+    :param core_deployed: fixture provides CoreManager
     :param openstack_actions: fixture provides OpenstackManager instance
     :param rally: fixture provides RallyManager instance
     :rtype: OpenstackManager
diff --git a/tcp_tests/fixtures/oss_fixtures.py b/tcp_tests/fixtures/oss_fixtures.py
index 95bbc54..6162e27 100644
--- a/tcp_tests/fixtures/oss_fixtures.py
+++ b/tcp_tests/fixtures/oss_fixtures.py
@@ -88,8 +88,8 @@
                        oss_deployed):
     """Fixture to get or install SL and OpenStack services on environment
 
-    Uses fixtures openstack_deployed and sl_deployed, with 'sl_deployed'
-    top-level snapshot.
+    Uses fixtures openstack_deployed and stacklight_deployed,
+    with 'stacklight_deployed' top-level snapshot.
 
     Returns SLManager instance object
     """
diff --git a/tcp_tests/fixtures/stacklight_fixtures.py b/tcp_tests/fixtures/stacklight_fixtures.py
index c1747b8..2c30530 100644
--- a/tcp_tests/fixtures/stacklight_fixtures.py
+++ b/tcp_tests/fixtures/stacklight_fixtures.py
@@ -35,11 +35,11 @@
     return sl_manager.SLManager(config, underlay, salt_deployed)
 
 
-@pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+@pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
 @pytest.fixture(scope='function')
-def sl_deployed(revert_snapshot, request, config,
-                hardware, underlay, common_services_deployed,
-                salt_deployed, sl_actions):
+def stacklight_deployed(revert_snapshot, request, config,
+                        hardware, underlay, core_deployed,
+                        salt_deployed, sl_actions):
     """Fixture to get or install SL services on environment
 
     :param revert_snapshot: fixture that reverts snapshot that is specified
@@ -56,7 +56,7 @@
         steps_path = config.sl_deploy.sl_steps_path
         commands = underlay.read_template(steps_path)
         sl_actions.install(commands)
-        hardware.create_snapshot(ext.SNAPSHOT.sl_deployed)
+        hardware.create_snapshot(ext.SNAPSHOT.stacklight_deployed)
         salt_deployed.sync_time()
 
     else:
@@ -70,16 +70,16 @@
     return sl_actions
 
 
-@pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+@pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
 @pytest.fixture(scope='function')
 def sl_os_deployed(revert_snapshot,
                    openstack_deployed,
-                   sl_deployed):
+                   stacklight_deployed):
     """Fixture to get or install SL and OpenStack services on environment
 
-    Uses fixtures openstack_deployed and sl_deployed, with 'sl_deployed'
-    top-level snapshot.
+    Uses fixtures openstack_deployed and stacklight_deployed,
+    with 'stacklight_deployed' top-level snapshot.
 
     Returns SLManager instance object
     """
-    return sl_deployed
+    return stacklight_deployed
diff --git a/tcp_tests/helpers/ext.py b/tcp_tests/helpers/ext.py
index 800367d..19bdf08 100644
--- a/tcp_tests/helpers/ext.py
+++ b/tcp_tests/helpers/ext.py
@@ -43,11 +43,11 @@
     'hardware',
     'underlay',
     'salt_deployed',
-    'common_services_deployed',
+    'core_deployed',
     'oss_deployed',
     'drivetrain_deployed',
     'openstack_deployed',
-    'sl_deployed',
+    'stacklight_deployed',
     'virtlet_deployed',
     'virtlet_ceph_deployed',
     'k8s_deployed',
diff --git a/tcp_tests/managers/common_services_manager.py b/tcp_tests/managers/core_manager.py
similarity index 97%
rename from tcp_tests/managers/common_services_manager.py
rename to tcp_tests/managers/core_manager.py
index 4e1e34a..50767aa 100644
--- a/tcp_tests/managers/common_services_manager.py
+++ b/tcp_tests/managers/core_manager.py
@@ -19,8 +19,8 @@
 LOG = logger.logger
 
 
-class CommonServicesManager(ExecuteCommandsMixin):
-    """docstring for CommonServicesManager"""
+class CoreManager(ExecuteCommandsMixin):
+    """docstring for CoreManager"""
 
     __config = None
     __underlay = None
@@ -29,13 +29,13 @@
         self.__config = config
         self.__underlay = underlay
         self._salt = salt
-        super(CommonServicesManager, self).__init__(
+        super(CoreManager, self).__init__(
             config=config, underlay=underlay)
 
     def install(self, commands):
         self.execute_commands(commands,
                               label='Install common services')
-        self.__config.common_services.common_services_installed = True
+        self.__config.core.core_installed = True
 
     def get_keepalived_vip_minion_id(self, vip):
         """Get minion ID where keepalived VIP is at the moment"""
diff --git a/tcp_tests/settings_oslo.py b/tcp_tests/settings_oslo.py
index 45b871d..5ef8811 100644
--- a/tcp_tests/settings_oslo.py
+++ b/tcp_tests/settings_oslo.py
@@ -34,9 +34,9 @@
     __name__, 'environment/')
 _default_templates_dir = pkg_resources.resource_filename(
     __name__, 'templates/')
-_default_common_services_steps = pkg_resources.resource_filename(
+_default_core_steps = pkg_resources.resource_filename(
     __name__,
-    'templates/{0}/common-services.yaml'.format(
+    'templates/{0}/core.yaml'.format(
         settings.LAB_CONFIG_NAME))
 _default_oss_steps = pkg_resources.resource_filename(
     __name__,
@@ -155,14 +155,14 @@
            help="", default='6969'),
 ]
 
-common_services_deploy_opts = [
-    ct.Cfg('common_services_steps_path', ct.String(),
+core_deploy_opts = [
+    ct.Cfg('core_steps_path', ct.String(),
            help="Path to YAML with steps to deploy common services",
-           default=_default_common_services_steps),
+           default=_default_core_steps),
 ]
 
-common_services_opts = [
-    ct.Cfg('common_services_installed', ct.Boolean(),
+core_opts = [
+    ct.Cfg('core_installed', ct.Boolean(),
            help="", default=False),
 ]
 
@@ -403,8 +403,8 @@
     ('underlay', underlay_opts),
     ('salt_deploy', salt_deploy_opts),
     ('salt', salt_opts),
-    ('common_services_deploy', common_services_deploy_opts),
-    ('common_services', common_services_opts),
+    ('core_deploy', core_deploy_opts),
+    ('core', core_opts),
     ('oss_deploy', oss_deploy_opts),
     ('oss', oss_opts),
     ('drivetrain_deploy', drivetrain_deploy_opts),
@@ -442,16 +442,16 @@
                           title="salt config and credentials", help=""))
     config.register_opts(group='salt', opts=salt_opts)
 
-    config.register_group(cfg.OptGroup(name='common_services',
+    config.register_group(cfg.OptGroup(name='core',
                           title="Common services for Openstack", help=""))
-    config.register_opts(group='common_services', opts=common_services_opts)
+    config.register_opts(group='core', opts=core_opts)
 
     config.register_group(
-        cfg.OptGroup(name='common_services_deploy',
+        cfg.OptGroup(name='core_deploy',
                      title="Common services for Openstack deploy config",
                      help=""))
-    config.register_opts(group='common_services_deploy',
-                         opts=common_services_deploy_opts)
+    config.register_opts(group='core_deploy',
+                         opts=core_deploy_opts)
 
     config.register_group(cfg.OptGroup(name='oss',
                           title="Operational Support System Tools", help=""))
diff --git a/tcp_tests/templates/cookied-bm-contrail-maas/common-services.yaml b/tcp_tests/templates/cookied-bm-contrail-maas/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-contrail-maas/common-services.yaml
rename to tcp_tests/templates/cookied-bm-contrail-maas/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-contrail-nfv-maas/common-services.yaml b/tcp_tests/templates/cookied-bm-contrail-nfv-maas/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-contrail-nfv-maas/common-services.yaml
rename to tcp_tests/templates/cookied-bm-contrail-nfv-maas/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-contrail40/common-services.yaml b/tcp_tests/templates/cookied-bm-contrail40/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-contrail40/common-services.yaml
rename to tcp_tests/templates/cookied-bm-contrail40/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-dpdk-pipeline/common-services.yaml b/tcp_tests/templates/cookied-bm-dpdk-pipeline/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-dpdk-pipeline/common-services.yaml
rename to tcp_tests/templates/cookied-bm-dpdk-pipeline/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail-nfv/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail-nfv/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-contrail-nfv/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-ocata-contrail-nfv/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-ocata-contrail/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ovs-dpdk/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-ovs-dpdk/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ovs-dpdk/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-ovs-dpdk/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-pike-k8s-contrail/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-pike-k8s-contrail/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-pike-k8s-contrail/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-pike-k8s-contrail/core.yaml
diff --git a/tcp_tests/templates/cookied-bm-ocata-cicd-pipeline/common-services.yaml b/tcp_tests/templates/cookied-bm-ocata-cicd-pipeline/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-ocata-cicd-pipeline/common-services.yaml
rename to tcp_tests/templates/cookied-bm-ocata-cicd-pipeline/core.yaml
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/deploy-and-test.groovy b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/deploy-and-test.groovy
index 616ad61..d0f69b7 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/deploy-and-test.groovy
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/deploy-and-test.groovy
@@ -37,7 +37,7 @@
             . ./tcp_tests/utils/env_k8s
 
             # Initialize variables used in tcp-qa tests
-            export CURRENT_SNAPSHOT=sl_deployed  # provide the snapshot name required by the test
+            export CURRENT_SNAPSHOT=stacklight_deployed  # provide the snapshot name required by the test
             export TESTS_CONFIGS=\$(pwd)/${ENV_NAME}_salt_deployed.ini  # some SSH data may be filled separatelly
 
             export MANAGER=empty  # skip 'hardware' fixture, disable snapshot/revert features
@@ -46,9 +46,9 @@
             export salt_master_port=6969
             export SALT_USER=\$SALTAPI_USER
             export SALT_PASSWORD=\$SALTAPI_PASS
-            export COMMON_SERVICES_INSTALLED=true  # skip common_services_deployed fixture
+            export CORE_INSTALLED=true  # skip core_deployed fixture
             export K8S_INSTALLED=true              # skip k8s_deployed fixture
-            export sl_installed=true              # skip sl_deployed fixture
+            export sl_installed=true              # skip stacklight_deployed fixture
 
             py.test -vvv -s -p no:django -p no:ipdb --junit-xml=nosetests.xml -m k8s_calico_sl
 
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico/deploy-and-test.groovy b/tcp_tests/templates/cookied-cicd-k8s-calico/deploy-and-test.groovy
index 2d691fb..83335a9 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico/deploy-and-test.groovy
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico/deploy-and-test.groovy
@@ -46,7 +46,7 @@
             export salt_master_port=6969
             export SALT_USER=\$SALTAPI_USER
             export SALT_PASSWORD=\$SALTAPI_PASS
-            export COMMON_SERVICES_INSTALLED=true  # skip common_services_deployed fixture
+            export CORE_INSTALLED=true  # skip core_deployed fixture
             export K8S_INSTALLED=true              # skip k8s_deployed fixture
 
             py.test -vvv -s -p no:django -p no:ipdb --junit-xml=nosetests.xml -m k8s_calico
diff --git a/tcp_tests/templates/cookied-mcp-mitaka-dvr/common-services.yaml b/tcp_tests/templates/cookied-mcp-mitaka-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-mitaka-dvr/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-mitaka-dvr/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-mitaka-ovs/common-services.yaml b/tcp_tests/templates/cookied-mcp-mitaka-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-mitaka-ovs/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-mitaka-ovs/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-ocata-dop-sl2/common-services.yaml b/tcp_tests/templates/cookied-mcp-ocata-dop-sl2/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-ocata-dop-sl2/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-ocata-dop-sl2/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/common-services.yaml b/tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-ocata-dvr-vxlan/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-pike-dpdk/common-services.yaml b/tcp_tests/templates/cookied-mcp-pike-dpdk/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-pike-dpdk/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-pike-dpdk/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-pike-dvr-ssl/common-services.yaml b/tcp_tests/templates/cookied-mcp-pike-dvr-ssl/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-pike-dvr-ssl/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-pike-dvr-ssl/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-pike-dvr/common-services.yaml b/tcp_tests/templates/cookied-mcp-pike-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-pike-dvr/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-pike-dvr/core.yaml
diff --git a/tcp_tests/templates/cookied-mcp-pike-ovs/common-services.yaml b/tcp_tests/templates/cookied-mcp-pike-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-mcp-pike-ovs/common-services.yaml
rename to tcp_tests/templates/cookied-mcp-pike-ovs/core.yaml
diff --git a/tcp_tests/templates/k8s-ha-calico/common-services.yaml b/tcp_tests/templates/k8s-ha-calico/core.yaml
similarity index 100%
rename from tcp_tests/templates/k8s-ha-calico/common-services.yaml
rename to tcp_tests/templates/k8s-ha-calico/core.yaml
diff --git a/tcp_tests/templates/k8s-ha-contrail/common-services.yaml b/tcp_tests/templates/k8s-ha-contrail/core.yaml
similarity index 100%
rename from tcp_tests/templates/k8s-ha-contrail/common-services.yaml
rename to tcp_tests/templates/k8s-ha-contrail/core.yaml
diff --git a/tcp_tests/templates/mcp-ocata-local-repo-dvr/common-services.yaml b/tcp_tests/templates/mcp-ocata-local-repo-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/mcp-ocata-local-repo-dvr/common-services.yaml
rename to tcp_tests/templates/mcp-ocata-local-repo-dvr/core.yaml
diff --git a/tcp_tests/templates/physical-mcp-ocata-offline-ovs/common-services.yaml b/tcp_tests/templates/physical-mcp-ocata-offline-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/physical-mcp-ocata-offline-ovs/common-services.yaml
rename to tcp_tests/templates/physical-mcp-ocata-offline-ovs/core.yaml
diff --git a/tcp_tests/templates/shared-common-services.yaml b/tcp_tests/templates/shared-core.yaml
similarity index 100%
rename from tcp_tests/templates/shared-common-services.yaml
rename to tcp_tests/templates/shared-core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ceph-offline/common-services.yaml b/tcp_tests/templates/virtual-mcp-ocata-ceph-offline/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-ocata-ceph-offline/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-ocata-ceph-offline/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-ocata-dvr/common-services.yaml b/tcp_tests/templates/virtual-mcp-ocata-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-ocata-dvr/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-ocata-dvr/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ovs-ceph/common-services.yaml b/tcp_tests/templates/virtual-mcp-ocata-ovs-ceph/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-ocata-ovs-ceph/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-ocata-ovs-ceph/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ovs/common-services.yaml b/tcp_tests/templates/virtual-mcp-ocata-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-ocata-ovs/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-ocata-ovs/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-dvr-ceph-rgw/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-maas/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-maas/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-dvr-maas/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-dvr-maas/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-dvr-ssl-barbican/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr-ssl/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-dvr-ssl/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-dvr-ssl/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-dvr/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-dvr/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-dvr/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-ovs-ceph/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-ovs-ceph/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-ovs-ceph/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-ovs-l2gw-bgpvpn/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-ovs-l2gw-bgpvpn/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-ovs-l2gw-bgpvpn/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-ovs-l2gw-bgpvpn/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-pike-ovs/common-services.yaml b/tcp_tests/templates/virtual-mcp-pike-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-pike-ovs/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-pike-ovs/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-sl-os/common-services.yaml b/tcp_tests/templates/virtual-mcp-sl-os/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-sl-os/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-sl-os/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp-trusty/common-services.yaml b/tcp_tests/templates/virtual-mcp-trusty/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp-trusty/common-services.yaml
rename to tcp_tests/templates/virtual-mcp-trusty/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-dvr/common-services.yaml b/tcp_tests/templates/virtual-mcp11-dvr/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-dvr/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-dvr/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-calico-minimal/common-services.yaml b/tcp_tests/templates/virtual-mcp11-k8s-calico-minimal/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-k8s-calico-minimal/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-k8s-calico-minimal/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-calico/common-services.yaml b/tcp_tests/templates/virtual-mcp11-k8s-calico/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-k8s-calico/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-k8s-calico/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-contrail/common-services.yaml b/tcp_tests/templates/virtual-mcp11-k8s-contrail/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-k8s-contrail/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-k8s-contrail/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-ovs-dpdk/common-services.yaml b/tcp_tests/templates/virtual-mcp11-ovs-dpdk/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-ovs-dpdk/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-ovs-dpdk/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-ovs.new/common-services.yaml b/tcp_tests/templates/virtual-mcp11-ovs.new/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-ovs.new/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-ovs.new/core.yaml
diff --git a/tcp_tests/templates/virtual-mcp11-ovs/common-services.yaml b/tcp_tests/templates/virtual-mcp11-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-mcp11-ovs/common-services.yaml
rename to tcp_tests/templates/virtual-mcp11-ovs/core.yaml
diff --git a/tcp_tests/templates/virtual-offline-pike-ovs-dpdk/common-services.yaml b/tcp_tests/templates/virtual-offline-pike-ovs-dpdk/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-offline-pike-ovs-dpdk/common-services.yaml
rename to tcp_tests/templates/virtual-offline-pike-ovs-dpdk/core.yaml
diff --git a/tcp_tests/templates/virtual-offline-pike-ovs/common-services.yaml b/tcp_tests/templates/virtual-offline-pike-ovs/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-offline-pike-ovs/common-services.yaml
rename to tcp_tests/templates/virtual-offline-pike-ovs/core.yaml
diff --git a/tcp_tests/templates/virtual-offline-ssl/common-services.yaml b/tcp_tests/templates/virtual-offline-ssl/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-offline-ssl/common-services.yaml
rename to tcp_tests/templates/virtual-offline-ssl/core.yaml
diff --git a/tcp_tests/templates/virtual-pike-ovs-dpdk/common-services.yaml b/tcp_tests/templates/virtual-pike-ovs-dpdk/core.yaml
similarity index 100%
rename from tcp_tests/templates/virtual-pike-ovs-dpdk/common-services.yaml
rename to tcp_tests/templates/virtual-pike-ovs-dpdk/core.yaml
diff --git a/tcp_tests/tests/component/conftest.py b/tcp_tests/tests/component/conftest.py
index d16387d..f33b1b4 100644
--- a/tcp_tests/tests/component/conftest.py
+++ b/tcp_tests/tests/component/conftest.py
@@ -18,7 +18,7 @@
 from tcp_tests.fixtures.underlay_fixtures import *  # noqa
 from tcp_tests.fixtures.rally_fixtures import *  # noqa
 from tcp_tests.fixtures.salt_fixtures import *  # noqa
-from tcp_tests.fixtures.common_services_fixtures import *  # noqa
+from tcp_tests.fixtures.core_fixtures import *  # noqa
 from tcp_tests.fixtures.openstack_fixtures import *  # noqa
 from tcp_tests.fixtures.opencontrail_fixtures import *  # noqa
 from tcp_tests.fixtures.oss_fixtures import *  # noqa
@@ -39,8 +39,8 @@
     'rally',
     # salt_fixtures
     'salt_actions',
-    # common_services_fixtures
-    'common_services_actions',
+    # core_fixtures
+    'core_actions',
     # openstack_fixtures
     'openstack_actions',
     # oss_fixtures
diff --git a/tcp_tests/tests/environment/conftest.py b/tcp_tests/tests/environment/conftest.py
index 47ca68a..a1db84c 100644
--- a/tcp_tests/tests/environment/conftest.py
+++ b/tcp_tests/tests/environment/conftest.py
@@ -17,7 +17,7 @@
 from tcp_tests.fixtures.underlay_fixtures import *  # noqa
 from tcp_tests.fixtures.rally_fixtures import *  # noqa
 from tcp_tests.fixtures.salt_fixtures import *  # noqa
-from tcp_tests.fixtures.common_services_fixtures import *  # noqa
+from tcp_tests.fixtures.core_fixtures import *  # noqa
 from tcp_tests.fixtures.openstack_fixtures import *  # noqa
 from tcp_tests.fixtures.opencontrail_fixtures import *  # noqa
 
@@ -36,9 +36,9 @@
     # salt_fixtures
     'salt_actions',
     'salt_deployed',
-    # common_services_fixtures
-    'common_services_actions',
-    'common_services_deployed',
+    # core_fixtures
+    'core_actions',
+    'core_deployed',
     # openstack_fixtures
     'openstack_actions',
     'openstack_deployed',
diff --git a/tcp_tests/tests/system/conftest.py b/tcp_tests/tests/system/conftest.py
index 61dd8e2..0bd4232 100644
--- a/tcp_tests/tests/system/conftest.py
+++ b/tcp_tests/tests/system/conftest.py
@@ -18,7 +18,7 @@
 from tcp_tests.fixtures.underlay_fixtures import *  # noqa
 from tcp_tests.fixtures.rally_fixtures import *  # noqa
 from tcp_tests.fixtures.salt_fixtures import *  # noqa
-from tcp_tests.fixtures.common_services_fixtures import *  # noqa
+from tcp_tests.fixtures.core_fixtures import *  # noqa
 from tcp_tests.fixtures.openstack_fixtures import *  # noqa
 from tcp_tests.fixtures.opencontrail_fixtures import *  # noqa
 from tcp_tests.fixtures.oss_fixtures import *  # noqa
@@ -46,9 +46,9 @@
     # salt_fixtures
     'salt_actions',
     'salt_deployed',
-    # common_services_fixtures
-    'common_services_actions',
-    'common_services_deployed',
+    # core_fixtures
+    'core_actions',
+    'core_deployed',
     # openstack_fixtures
     'openstack_actions',
     'openstack_deployed',
@@ -66,7 +66,7 @@
     'opencontrail',
     # stacklight_fixtures
     'sl_actions',
-    'sl_deployed',
+    'stacklight_deployed',
     'sl_os_deployed',
     'ceph_deployed',
     'ceph_action',
diff --git a/tcp_tests/tests/system/test_failover_ceph.py b/tcp_tests/tests/system/test_failover_ceph.py
index 2f1bc25..934e28b 100644
--- a/tcp_tests/tests/system/test_failover_ceph.py
+++ b/tcp_tests/tests/system/test_failover_ceph.py
@@ -110,7 +110,7 @@
     @pytest.mark.fail_snapshot
     def test_restart_cmn_node(self, func_name, underlay, config,
                               openstack_deployed, ceph_deployed,
-                              common_services_actions,
+                              core_actions,
                               salt_actions, openstack_actions,
                               rally, show_step, hardware):
         """Test restart ceph cmn node
@@ -177,7 +177,7 @@
     @pytest.mark.fail_snapshot
     def test_restart_rgw_node(self, func_name, underlay, config,
                               openstack_deployed, ceph_deployed,
-                              common_services_actions, hardware,
+                              core_actions, hardware,
                               salt_actions, openstack_actions,
                               rally, show_step):
         """Test restart ceph rgw node
diff --git a/tcp_tests/tests/system/test_failover_k8s.py b/tcp_tests/tests/system/test_failover_k8s.py
index 1ad43b9..a334a42 100644
--- a/tcp_tests/tests/system/test_failover_k8s.py
+++ b/tcp_tests/tests/system/test_failover_k8s.py
@@ -24,7 +24,7 @@
     @pytest.mark.grap_versions
     @pytest.mark.fail_snapshot
     def test_k8s_master_vip_migration(self, show_step, k8s_deployed, underlay,
-                                      k8s_actions, common_services_actions,
+                                      k8s_actions, core_actions,
                                       config, hardware):
         """Test restart and shutdown master with VIP
 
@@ -40,12 +40,12 @@
         """
         show_step(1)
         show_step(2)
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
 
         show_step(3)
         vip = k8s_actions.get_keepalived_vip()
         LOG.info("VIP ip address: {}".format(vip))
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         show_step(4)
@@ -54,16 +54,16 @@
         show_step(5)
         try:
             new_minion_vip =\
-                common_services_actions.get_keepalived_vip_minion_id(vip)
+                core_actions.get_keepalived_vip_minion_id(vip)
         except Exception:
                 time.sleep(15)
                 new_minion_vip = \
-                    common_services_actions.get_keepalived_vip_minion_id(vip)
+                    core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} migrated to {1}".format(vip, new_minion_vip))
         assert new_minion_vip != minion_vip
 
         show_step(6)
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
 
         show_step(7)
         curl_output = ''.join(underlay.check_call(
diff --git a/tcp_tests/tests/system/test_failover_nodes.py b/tcp_tests/tests/system/test_failover_nodes.py
index 87a7de8..1f628c4 100644
--- a/tcp_tests/tests/system/test_failover_nodes.py
+++ b/tcp_tests/tests/system/test_failover_nodes.py
@@ -139,7 +139,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_restart_mon01_node(self, openstack_actions, hardware, underlay,
                                 sl_os_deployed, show_step):
         """Test restart mon01
@@ -190,7 +190,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_warm_shutdown_mon01_node(self, underlay, hardware, sl_os_deployed,
                                       openstack_actions, show_step):
         """Test warm shutdown mon01
@@ -237,10 +237,10 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_restart_mon_with_vip(self, underlay, hardware, sl_os_deployed,
                                   openstack_actions, salt_actions,
-                                  common_services_actions, show_step):
+                                  core_actions, show_step):
         """Test restart mon with VIP
 
         Scenario:
@@ -256,7 +256,7 @@
 
         """
         # TR case #4753939
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         # STEP #1,2,3
@@ -280,7 +280,7 @@
             tgt="mon0*",
             pillar="_param:cluster_vip_address")[0]
         vip = [vip for minion_id, vip in mon_vip_pillar.items()][0]
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         # STEP #6
@@ -290,13 +290,13 @@
         # STEP #7
         show_step(7)
         # Check that VIP has been actually migrated to a new node
-        new_minion_vip = common_services_actions.get_keepalived_vip_minion_id(
+        new_minion_vip = core_actions.get_keepalived_vip_minion_id(
             vip)
         LOG.info("Migrated VIP {0} is on {1}".format(vip, new_minion_vip))
         assert new_minion_vip != minion_vip, (
             "VIP {0} wasn't migrated from {1} after node reboot!"
             .format(vip, new_minion_vip))
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
 
         # STEP #8
         show_step(8)
@@ -315,7 +315,7 @@
     @pytest.mark.revert_snapshot(ext.SNAPSHOT.openstack_deployed)
     def test_restart_ctl_with_vip(self, underlay, hardware, openstack_deployed,
                                   openstack_actions, salt_actions,
-                                  common_services_actions, show_step):
+                                  core_actions, show_step):
         """Test restart clt with VIP
 
         Scenario:
@@ -330,7 +330,7 @@
 
         """
         # TR case #3385671
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         # STEP #1,2,3
@@ -344,7 +344,7 @@
             tgt="I@nova:controller:enabled:True",
             pillar="_param:cluster_vip_address")[0]
         vip = [vip for minion_id, vip in ctl_vip_pillar.items()][0]
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         # STEP #5
@@ -354,13 +354,13 @@
         # STEP #6
         show_step(6)
         # Check that VIP has been actually migrated to a new node
-        new_minion_vip = common_services_actions.get_keepalived_vip_minion_id(
+        new_minion_vip = core_actions.get_keepalived_vip_minion_id(
             vip)
         LOG.info("Migrated VIP {0} is on {1}".format(vip, new_minion_vip))
         assert new_minion_vip != minion_vip, (
             "VIP {0} wasn't migrated from {1} after node reboot!"
             .format(vip, new_minion_vip))
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
 
         # STEP #7
         show_step(7)
diff --git a/tcp_tests/tests/system/test_failover_openstack_services.py b/tcp_tests/tests/system/test_failover_openstack_services.py
index 08a928b..d06c2af 100644
--- a/tcp_tests/tests/system/test_failover_openstack_services.py
+++ b/tcp_tests/tests/system/test_failover_openstack_services.py
@@ -96,7 +96,7 @@
     @pytest.mark.with_rally(rally_node="gtw01.", prepare_openstack=True)
     def test_restart_keepalived(self, func_name, underlay, config,
                                 openstack_deployed,
-                                common_services_actions,
+                                core_actions,
                                 salt_actions, openstack_actions,
                                 rally, show_step):
         """Test restart keepalived on ctl* nodes
@@ -114,7 +114,7 @@
             - OpenStack cluster
         """
         # TR case #4756965
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         ctl_node_names = underlay.get_target_node_names(
@@ -165,7 +165,7 @@
     @pytest.mark.with_rally(rally_node="gtw01.", prepare_openstack=True)
     def test_stop_keepalived(self, func_name, underlay, config,
                              openstack_deployed,
-                             common_services_actions,
+                             core_actions,
                              salt_actions, openstack_actions,
                              rally, show_step):
         """Test stop keepalived on ctl node with VIP under load
@@ -184,7 +184,7 @@
             - OpenStack cluster
         """
         # TR case #3385682
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         ctl_node_names = underlay.get_target_node_names(
@@ -201,7 +201,7 @@
             tgt="I@nova:controller:enabled:True",
             pillar="_param:cluster_vip_address")[0]
         vip = [vip for minion_id, vip in ctl_vip_pillar.items()][0]
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         # STEP #2
@@ -252,7 +252,7 @@
     @pytest.mark.with_rally(rally_node="gtw01.", prepare_openstack=True)
     def test_kill_keepalived(self, func_name, underlay, config,
                              openstack_deployed,
-                             common_services_actions,
+                             core_actions,
                              salt_actions, openstack_actions,
                              rally, show_step):
         """Test kill keepalived and haproxy on ctl node with VIP under load
@@ -283,7 +283,7 @@
             - Salt cluster
             - OpenStack cluster
         """
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         ctl_node_names = underlay.get_target_node_names(
@@ -301,7 +301,7 @@
             tgt="I@nova:controller:enabled:True",
             pillar="_param:cluster_vip_address")[0]
         vip = [vip for minion_id, vip in ctl_vip_pillar.items()][0]
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         # STEP #2
@@ -362,13 +362,13 @@
         # STEP #6
         show_step(6)
         # Check that VIP has been actually migrated to a new node
-        new_minion_vip = common_services_actions.get_keepalived_vip_minion_id(
+        new_minion_vip = core_actions.get_keepalived_vip_minion_id(
             vip)
         LOG.info("Migrated VIP {0} is on {1}".format(vip, new_minion_vip))
         assert new_minion_vip != minion_vip, (
             "VIP {0} wasn't migrated from {1} after killing keepalived!"
             .format(vip, new_minion_vip))
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
 
         # Haproxy case
         # STEP #7
@@ -431,7 +431,7 @@
     @pytest.mark.with_rally(rally_node="gtw01.", prepare_openstack=True)
     def test_kill_rabbit_galera(self, func_name, underlay, config,
                                 openstack_deployed,
-                                common_services_actions,
+                                core_actions,
                                 salt_actions, openstack_actions,
                                 rally, show_step):
         """Test kill rabbitmq and galera on ctl node with VIP under load
@@ -455,7 +455,7 @@
             - Salt cluster
             - OpenStack cluster
         """
-        common_services_actions.check_keepalived_pillar()
+        core_actions.check_keepalived_pillar()
         salt = salt_actions
 
         ctl_node_names = underlay.get_target_node_names(
@@ -476,7 +476,7 @@
             pillar="_param:cluster_vip_address")[0]
         vip = [vip for minion_id, vip in ctl_vip_pillar.items()][0]
         ctl_minions = ctl_vip_pillar.keys()
-        minion_vip = common_services_actions.get_keepalived_vip_minion_id(vip)
+        minion_vip = core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} is on {1}".format(vip, minion_vip))
 
         # STEP #2
@@ -533,7 +533,7 @@
 
         # Check haproxy status on the node with VIP and find the mysql backend
         # which is receiving the connections
-        haproxy_status = common_services_actions.get_haproxy_status(minion_vip)
+        haproxy_status = core_actions.get_haproxy_status(minion_vip)
         mysql_status = haproxy_status['mysql_cluster']
         mysql_tgt = ''
         scur = 0
diff --git a/tcp_tests/tests/system/test_failover_stacklight_services.py b/tcp_tests/tests/system/test_failover_stacklight_services.py
index 3bb47eb..4f4381f 100644
--- a/tcp_tests/tests/system/test_failover_stacklight_services.py
+++ b/tcp_tests/tests/system/test_failover_stacklight_services.py
@@ -24,10 +24,11 @@
     """Test class for testing OpenStack nodes failover"""
 
     @staticmethod
-    def check_influxdb_xfail(sl_deployed, node_name, value):
+    def check_influxdb_xfail(stacklight_deployed, node_name, value):
 
         def check_influxdb_data():
-            return value in sl_deployed.check_data_in_influxdb(node_name)
+            return value in stacklight_deployed.check_data_in_influxdb(
+                node_name)
 
         try:
             helpers.wait(
@@ -43,7 +44,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_kill_influxdb_relay_mon01_node(self, sl_os_deployed,
                                             show_step):
         """Test kill influxdb relay on mon01 node
@@ -111,7 +112,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_kill_influxdb_mon01_node(self, sl_os_deployed, show_step):
         """Test kill influxdb on mon01 node
 
@@ -177,7 +178,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_stop_influxdb_relay_mon_nodes(self, sl_os_deployed,
                                            show_step):
         """Test stop influxdb relay on mon01 node
@@ -246,7 +247,7 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
-    @pytest.mark.revert_snapshot(ext.SNAPSHOT.sl_deployed)
+    @pytest.mark.revert_snapshot(ext.SNAPSHOT.stacklight_deployed)
     def test_stop_influxdb_mon_nodes(self, sl_os_deployed, show_step):
         """Test stop influxdb on mon01 node
 
diff --git a/tcp_tests/tests/system/test_install_cookied_ocata.py b/tcp_tests/tests/system/test_install_cookied_ocata.py
index a6d2313..7aa41b2 100644
--- a/tcp_tests/tests/system/test_install_cookied_ocata.py
+++ b/tcp_tests/tests/system/test_install_cookied_ocata.py
@@ -60,7 +60,7 @@
     @pytest.mark.fail_snapshot
     def test_cookied_ocata_cicd_oss_install(self, underlay, salt_actions,
                                             openstack_deployed,
-                                            oss_deployed, sl_deployed,
+                                            oss_deployed, stacklight_deployed,
                                             show_step):
         """Test for deploying an mcp environment and check it
         Scenario:
@@ -87,7 +87,7 @@
                                  'monitoring_remote_collector',
                                  'monitoring_pushgateway']
         show_step(6)
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
         show_step(7)
@@ -98,14 +98,15 @@
             # InfluxDB is used if prometheus relay service is not installed
             expected_service_list.append('monitoring_remote_storage_adapter')
 
-        sl_deployed.check_docker_services(mon_nodes, expected_service_list)
+        stacklight_deployed.check_docker_services(mon_nodes,
+                                                  expected_service_list)
 
         show_step(8)
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         show_step(9)
         # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
@@ -113,7 +114,7 @@
 
         show_step(10)
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_install_k8s.py b/tcp_tests/tests/system/test_install_k8s.py
index f19aeb0..ec90863 100644
--- a/tcp_tests/tests/system/test_install_k8s.py
+++ b/tcp_tests/tests/system/test_install_k8s.py
@@ -30,7 +30,7 @@
     @pytest.mark.k8s_calico_sl
     def test_k8s_install_calico_lma(self, config, show_step,
                                     k8s_deployed,
-                                    sl_deployed):
+                                    stacklight_deployed):
         """Test for deploying MCP with k8s+stacklight_calico and check it
 
         Scenario:
@@ -49,7 +49,7 @@
         """
         # STEP #5
         # k8s_actions = k8s_deployed
-        sl_actions = sl_deployed
+        sl_actions = stacklight_deployed
         show_step(5)
         k8sclient = k8s_deployed.api
         assert k8sclient.nodes.list() is not None, "Can not get nodes list"
@@ -87,7 +87,7 @@
                 'Mandotory metric {0} is missing in {1}'.format(
                     metric, res.text)
 
-        prometheus_client = sl_deployed.api
+        prometheus_client = stacklight_deployed.api
         try:
             current_targets = prometheus_client.get_targets()
             LOG.debug('Current targets after install {0}'
@@ -114,14 +114,14 @@
             # with acceptance criteria
         show_step(10)
         # Run SL component tests
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
@@ -131,7 +131,7 @@
     @pytest.mark.cz8115
     def test_k8s_install_contrail_lma(self, config, show_step,
                                       k8s_deployed,
-                                      sl_deployed):
+                                      stacklight_deployed):
         """Test for deploying MCP with k8s+stacklight+contrail and check it
 
         Scenario:
@@ -145,13 +145,13 @@
 
         """
         k8s_actions = k8s_deployed
-        sl_actions = sl_deployed
+        sl_actions = stacklight_deployed
         # STEP #5
         show_step(5)
         k8sclient = k8s_deployed.api
         assert k8sclient.nodes.list() is not None, "Can not get nodes list"
 
-        prometheus_client = sl_deployed.api
+        prometheus_client = stacklight_deployed.api
         try:
             current_targets = prometheus_client.get_targets()
             LOG.debug('Current targets after install {0}'
@@ -167,20 +167,20 @@
             current_targets = prometheus_client.get_targets()
             LOG.debug('Current targets after install {0}'
                       .format(current_targets))
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
         show_step(6)
         # Run SL component tests
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
 
diff --git a/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py b/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
index 9579139..4f78c0d 100644
--- a/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
+++ b/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
@@ -52,7 +52,7 @@
     @pytest.mark.cz8119
     def test_mcp11_ocata_ovs_sl_install(self, underlay, config,
                                         openstack_deployed,
-                                        sl_deployed):
+                                        stacklight_deployed):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -64,20 +64,20 @@
         7. Run SL component tests
         8. Download SL component tests report
         """
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
@@ -110,7 +110,7 @@
     @pytest.mark.cz8120
     def test_mcp11_ocata_dvr_sl_install(self, underlay, config,
                                         openstack_deployed,
-                                        sl_deployed):
+                                        stacklight_deployed):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -123,20 +123,20 @@
         8. Download SL component tests report
         """
 
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tests
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
index d21eca7..eca7a20 100644
--- a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
+++ b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
@@ -52,7 +52,7 @@
     @pytest.mark.pike_ovs_sl
     def test_mcp_pike_ovs_sl_install(self, underlay, config,
                                      openstack_deployed,
-                                     sl_deployed):
+                                     stacklight_deployed):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -64,20 +64,20 @@
         7. Run SL component tests
         8. Download SL component tests report
         """
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
@@ -110,7 +110,7 @@
     @pytest.mark.pike_ovs_dvr_sl
     def test_mcp_pike_dvr_sl_install(self, underlay, config,
                                      openstack_deployed,
-                                     sl_deployed):
+                                     stacklight_deployed):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -123,20 +123,20 @@
         8. Download SL component tests report
         """
 
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tests
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
@@ -167,7 +167,7 @@
     def test_mcp_pike_cookied_ovs_install(self, underlay,
                                           openstack_deployed,
                                           openstack_actions,
-                                          sl_deployed,
+                                          stacklight_deployed,
                                           tempest_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
@@ -192,7 +192,7 @@
                                           underlay,
                                           openstack_deployed,
                                           openstack_actions,
-                                          sl_deployed,
+                                          stacklight_deployed,
                                           tempest_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
diff --git a/tcp_tests/tests/system/test_install_mcp_sl_os.py b/tcp_tests/tests/system/test_install_mcp_sl_os.py
index d416875..6e5452c 100644
--- a/tcp_tests/tests/system/test_install_mcp_sl_os.py
+++ b/tcp_tests/tests/system/test_install_mcp_sl_os.py
@@ -48,7 +48,7 @@
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
     def test_mcp_sl_os_install(self, underlay, config, openstack_deployed,
-                               sl_deployed, openstack_actions):
+                               stacklight_deployed, openstack_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -60,20 +60,20 @@
         7. Run SL component tests
         8. Download SL component tests report
         """
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_install_mcp_trusty.py b/tcp_tests/tests/system/test_install_mcp_trusty.py
index 8c91faa..c86c79c 100644
--- a/tcp_tests/tests/system/test_install_mcp_trusty.py
+++ b/tcp_tests/tests/system/test_install_mcp_trusty.py
@@ -49,7 +49,7 @@
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
     def test_mcp_trusty_sl_os_install(self, underlay, config,
-                                      openstack_deployed, sl_deployed,
+                                      openstack_deployed, stacklight_deployed,
                                       openstack_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
@@ -62,20 +62,20 @@
         7. Run SL component tests
         8. Download SL component tests report
         """
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
-        sl_deployed.check_prometheus_targets(mon_nodes)
+        stacklight_deployed.check_prometheus_targets(mon_nodes)
 
         # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests/prometheus',
             'test_alerts.py')
 
         # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_install_opencontrail.py b/tcp_tests/tests/system/test_install_opencontrail.py
index 74b5d2b..efc37c8 100644
--- a/tcp_tests/tests/system/test_install_opencontrail.py
+++ b/tcp_tests/tests/system/test_install_opencontrail.py
@@ -27,7 +27,8 @@
     @pytest.mark.fail_snapshot
     @pytest.mark.with_rally(rally_node="ctl01.")
     def test_opencontrail_simple(self, config, underlay, salt_deployed,
-                                 openstack_deployed, sl_deployed, show_step):
+                                 openstack_deployed, stacklight_deployed,
+                                 show_step):
         """Runner for Juniper contrail-tests
 
         Scenario:
@@ -50,14 +51,14 @@
         # Run SL component tetsts
         if settings.RUN_SL_TESTS:
             show_step(5)
-            sl_deployed.run_sl_functional_tests(
+            stacklight_deployed.run_sl_functional_tests(
                 'ctl01',
                 '/root/stacklight-pytest/stacklight_tests/',
                 'tests/prometheus',
                 'test_alerts.py')
             show_step(8)
             # Download report
-            sl_deployed.download_sl_test_report(
+            stacklight_deployed.download_sl_test_report(
                 'ctl01',
                 '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
@@ -65,7 +66,8 @@
     @pytest.mark.fail_snapshot
     @pytest.mark.with_rally(rally_node="ctl01.")
     def test_opencontrail3_maas(self, config, underlay, salt_actions,
-                                openstack_deployed, show_step, sl_deployed):
+                                openstack_deployed, show_step,
+                                stacklight_deployed):
         """Runner for Juniper contrail-tests
 
         Scenario:
@@ -94,7 +96,7 @@
                                  'monitoring_alertmanager',
                                  'monitoring_remote_collector',
                                  'monitoring_pushgateway']
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
         prometheus_relay_enabled = salt_actions.get_pillar(
@@ -104,18 +106,19 @@
             # InfluxDB is used if prometheus relay service is not installed
             expected_service_list.append('monitoring_remote_storage_adapter')
         show_step(6)
-        sl_deployed.check_docker_services(mon_nodes, expected_service_list)
+        stacklight_deployed.check_docker_services(mon_nodes,
+                                                  expected_service_list)
         # Run SL component tetsts
         if settings.RUN_SL_TESTS:
             show_step(7)
-            sl_deployed.run_sl_functional_tests(
+            stacklight_deployed.run_sl_functional_tests(
                 'ctl01',
                 '/root/stacklight-pytest/stacklight_tests/',
                 'tests/prometheus',
                 'test_alerts.py')
             show_step(8)
             # Download report
-            sl_deployed.download_sl_test_report(
+            stacklight_deployed.download_sl_test_report(
                 'ctl01',
                 '/root/stacklight-pytest/stacklight_tests/report.xml')
 
diff --git a/tcp_tests/tests/system/test_offline.py b/tcp_tests/tests/system/test_offline.py
index 83f3766..44b82f0 100644
--- a/tcp_tests/tests/system/test_offline.py
+++ b/tcp_tests/tests/system/test_offline.py
@@ -162,7 +162,7 @@
         LOG.info("*************** DONE **************")
 
     def test_deploy_day1(self, show_step, config, underlay, hardware,
-                         common_services_deployed, salt_deployed):
+                         core_deployed, salt_deployed):
         """Test for deploying an mcp from day01 images
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_oss_install.py b/tcp_tests/tests/system/test_oss_install.py
index f62f1c8..15bdf3e 100644
--- a/tcp_tests/tests/system/test_oss_install.py
+++ b/tcp_tests/tests/system/test_oss_install.py
@@ -26,7 +26,7 @@
     @pytest.mark.fail_snapshot
     def test_oss_install_default(self, underlay, show_step,
                                  oss_deployed, openstack_deployed,
-                                 sl_deployed):
+                                 stacklight_deployed):
         """Test for deploying an OSS environment and check it
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_pipeline_deploy.py b/tcp_tests/tests/system/test_pipeline_deploy.py
index 1d2e79f..c98db38 100644
--- a/tcp_tests/tests/system/test_pipeline_deploy.py
+++ b/tcp_tests/tests/system/test_pipeline_deploy.py
@@ -27,7 +27,7 @@
 
     @pytest.mark.fail_snapshot
     def test_pipeline(self, show_step, underlay,
-                      common_services_deployed, salt_deployed):
+                      core_deployed, salt_deployed):
         """Runner for Juniper contrail-tests
 
         Scenario:
diff --git a/tcp_tests/tests/system/test_upgrade_stacklight.py b/tcp_tests/tests/system/test_upgrade_stacklight.py
index e946185..afad0c8 100644
--- a/tcp_tests/tests/system/test_upgrade_stacklight.py
+++ b/tcp_tests/tests/system/test_upgrade_stacklight.py
@@ -25,7 +25,7 @@
     @pytest.mark.grab_versions
     @pytest.mark.fail_snapshot
     def test_upgrade_stacklight(self, underlay, config,
-                                hardware, sl_actions, sl_deployed):
+                                hardware, sl_actions, stacklight_deployed):
         """Runner
 
         Scenario:
@@ -42,19 +42,19 @@
         sl_actions.install(commands, label='Upgrade SL services')
         hardware.create_snapshot(name='sl_v1_upgraded')
 
-        mon_nodes = sl_deployed.get_monitoring_nodes()
+        mon_nodes = stacklight_deployed.get_monitoring_nodes()
         LOG.debug('Mon nodes list {0}'.format(mon_nodes))
 
 
 # Run SL component tetsts
-        sl_deployed.run_sl_functional_tests(
+        stacklight_deployed.run_sl_functional_tests(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/',
             'tests',
             'tests/prometheus')
 
 # Download report
-        sl_deployed.download_sl_test_report(
+        stacklight_deployed.download_sl_test_report(
             'cfg01',
             '/root/stacklight-pytest/stacklight_tests/report.xml')
         LOG.info("*************** DONE **************")
