diff --git a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
index 6bcc7bc7f..77172c438 100644
--- a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
+++ b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py
@@ -146,7 +146,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('heatclient.common.template_utils.'
                 'process_environment_and_files', autospec=True)
@@ -270,7 +270,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('heatclient.common.template_utils.'
                 'process_environment_and_files', autospec=True)
@@ -380,7 +380,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('heatclient.common.template_utils.'
                 'process_environment_and_files', autospec=True)
@@ -475,7 +475,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('heatclient.common.template_utils.'
                 'process_environment_and_files', autospec=True)
@@ -809,7 +809,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('tripleoclient.utils.check_nic_config_with_ansible')
     @mock.patch('tripleoclient.utils.copy_clouds_yaml')
@@ -925,7 +925,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('tripleoclient.utils.get_ctlplane_attrs', autospec=True,
                 return_value={})
@@ -1337,7 +1337,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
     @mock.patch(
         'tripleo_common.image.kolla_builder.container_images_prepare_multi',
         return_value={})
-    @mock.patch('tripleoclient.workflows.roles.get_roles_data',
+    @mock.patch('tripleoclient.utils.get_roles_data',
                 autospec=True, return_value={})
     @mock.patch('tripleoclient.utils.process_multiple_environments',
                 autospec=True)
diff --git a/tripleoclient/utils.py b/tripleoclient/utils.py
index 69d52ca56..e7c3775b7 100644
--- a/tripleoclient/utils.py
+++ b/tripleoclient/utils.py
@@ -74,7 +74,6 @@ from tripleo_common import update
 from tripleoclient import constants
 from tripleoclient import exceptions
 from tripleoclient import heat_launcher
-from tripleoclient.workflows import roles
 
 
 LOG = logging.getLogger(__name__ + ".utils")
@@ -2862,6 +2861,14 @@ def get_undercloud_host_entry():
     return cleanup_host_entry(out)
 
 
+def get_roles_data(working_dir, stack_name):
+    abs_roles_file = get_roles_file_path(working_dir, stack_name)
+    with open(abs_roles_file, 'r') as fp:
+        roles_data = yaml.safe_load(fp)
+
+    return roles_data
+
+
 def build_enabled_sevices_image_params(env_files, parsed_args,
                                        new_tht_root, user_tht_root,
                                        working_dir):
@@ -2876,7 +2883,7 @@ def build_enabled_sevices_image_params(env_files, parsed_args,
         env_files, new_tht_root, user_tht_root,
         cleanup=(not parsed_args.no_cleanup))
 
-    roles_data = roles.get_roles_data(working_dir, parsed_args.stack)
+    roles_data = get_roles_data(working_dir, parsed_args.stack)
 
     params.update(kolla_builder.get_enabled_services(env, roles_data))
     params.update(plan_utils.default_image_params())
diff --git a/tripleoclient/workflows/roles.py b/tripleoclient/workflows/roles.py
index 688c66136..a784a2572 100644
--- a/tripleoclient/workflows/roles.py
+++ b/tripleoclient/workflows/roles.py
@@ -12,21 +12,11 @@
 
 import logging
 
-import yaml
-
 from tripleoclient import utils
 
 LOG = logging.getLogger(__name__)
 
 
-def get_roles_data(working_dir, stack_name):
-    abs_roles_file = utils.get_roles_file_path(working_dir, stack_name)
-    with open(abs_roles_file, 'r') as fp:
-        roles_data = yaml.safe_load(fp)
-
-    return roles_data
-
-
 def get_roles(clients,
               stack_name,
               template,
@@ -34,7 +24,7 @@ def get_roles(clients,
               env_files,
               working_dir,
               detail=False, valid=False):
-    roles_data = get_roles_data(working_dir, stack_name)
+    roles_data = utils.get_roles_data(working_dir, stack_name)
 
     if detail:
         return roles_data