diff --git a/jobs/pipelines/deploy-cicd-and-test-k8s.groovy b/jobs/pipelines/deploy-cicd-and-test-k8s.groovy
index 3b4d49e..baa9853 100644
--- a/jobs/pipelines/deploy-cicd-and-test-k8s.groovy
+++ b/jobs/pipelines/deploy-cicd-and-test-k8s.groovy
@@ -31,15 +31,15 @@
 
             # Prepare snapshots that may be used in tests if MANAGER=devops
             cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_k8s_deployed.ini
-            cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_sl_deployed.ini
+            cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_stacklight_deployed.ini
             #dos.py suspend ${ENV_NAME}
             #dos.py snapshot ${ENV_NAME} k8s_deployed
-            #dos.py snapshot ${ENV_NAME} sl_deployed
+            #dos.py snapshot ${ENV_NAME} stacklight_deployed
             #dos.py resume ${ENV_NAME}
             #dos.py time-sync ${ENV_NAME}
 
             # 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
@@ -50,9 +50,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 --junit-xml=nosetests.xml ${RUN_TEST_OPTS}
 
diff --git a/jobs/pipelines/deploy-cicd-and-test-openstack.groovy b/jobs/pipelines/deploy-cicd-and-test-openstack.groovy
index e22c7c2..585ad83 100644
--- a/jobs/pipelines/deploy-cicd-and-test-openstack.groovy
+++ b/jobs/pipelines/deploy-cicd-and-test-openstack.groovy
@@ -31,17 +31,17 @@
 
             # Prepare snapshots that may be used in tests if MANAGER=devops
             cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_openstack_deployed.ini
-            cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_sl_deployed.ini
+            cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_stacklight_deployed.ini
             cp \$(pwd)/${ENV_NAME}_salt_deployed.ini \$(pwd)/${ENV_NAME}_sl_os_deployed.ini
             #dos.py suspend ${ENV_NAME}
             #dos.py snapshot ${ENV_NAME} openstack_deployed
-            #dos.py snapshot ${ENV_NAME} sl_deployed
+            #dos.py snapshot ${ENV_NAME} stacklight_deployed
             #dos.py snapshot ${ENV_NAME} sl_os_deployed
             #dos.py resume ${ENV_NAME}
             #dos.py time-sync ${ENV_NAME}
 
             # 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
@@ -52,9 +52,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 OPENSTACK_INSTALLED=true              # skip k8s_deployed fixture
-            export sl_installed=true              # skip sl_deployed fixture
+            export sl_installed=true              # skip stacklight_deployed fixture
 
             py.test --junit-xml=nosetests.xml ${RUN_TEST_OPTS}
 
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 **************")
