diff --git a/docker/common/kolla-ansible/kolla_keystone_service.py b/docker/common/kolla-ansible/kolla_keystone_service.py
deleted file mode 100644
index 455aaf578e2ae8af6d1e44edfbd3f18efd06a2be..0000000000000000000000000000000000000000
--- a/docker/common/kolla-ansible/kolla_keystone_service.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/python
-
-# Copyright 2015 Sam Yaple
-#
-# 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.
-
-# This file is a barebones file needed to file a gap until Ansible 2.0. No error
-# checking, no deletions, no updates. Idempotent creation only.
-
-# If you look closely, you will see we arent _really_ using the shade module
-# we just use it to slightly abstract the authentication model. As patches land
-# in upstream shade we will be able to use more of the shade module. Until then
-# if we want to be 'stable' we really need to be using it as a passthrough
-
-import shade
-
-def main():
-    module = AnsibleModule(
-        argument_spec = openstack_full_argument_spec(
-            description = dict(required=True, type='str'),
-            service_name = dict(required=True, type='str'),
-            service_type = dict(required=True, type='str'),
-            admin_url = dict(required=True, type='str'),
-            internal_url = dict(required=True, type='str'),
-            public_url = dict(required=True, type='str'),
-            endpoint_region = dict(required=True, type='str')
-        )
-    )
-
-    try:
-        description = module.params.pop('description')
-        service_name = module.params.pop('service_name')
-        service_type = module.params.pop('service_type')
-        admin_url = module.params.pop('admin_url')
-        internal_url = module.params.pop('internal_url')
-        public_url = module.params.pop('public_url')
-        endpoint_region = module.params.pop('endpoint_region')
-
-        changed = False
-        service = None
-        endpoint = None
-
-        cloud = shade.operator_cloud(**module.params)
-
-        for _service in cloud.keystone_client.services.list():
-            if _service.type == service_type:
-                service = _service
-
-        if service is not None:
-            for _endpoint in cloud.keystone_client.endpoints.list():
-                if _endpoint.service_id == service.id:
-                    endpoint = _endpoint
-        else:
-            service = cloud.keystone_client.services.create(name=service_name,
-                                                            service_type=service_type,
-                                                            description=description)
-
-        if endpoint is None:
-            changed = True
-            cloud.keystone_client.endpoints.create(service_id=service.id,
-                                                   adminurl=admin_url,
-                                                   internalurl=public_url,
-                                                   publicurl=public_url,
-                                                   region=endpoint_region)
-
-        module.exit_json(changed=changed)
-    except Exception as e:
-        module.exit_json(failed=True, changed=True, msg=e)
-
-# import module snippets
-from ansible.module_utils.basic import *
-from ansible.module_utils.openstack import *
-if __name__ == '__main__':
-    main()
diff --git a/docker/common/kolla-ansible/kolla_keystone_user.py b/docker/common/kolla-ansible/kolla_keystone_user.py
deleted file mode 100644
index 5d295c1e276a4186b7305cbb9bc6ce8182279aa8..0000000000000000000000000000000000000000
--- a/docker/common/kolla-ansible/kolla_keystone_user.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/python
-
-# Copyright 2015 Sam Yaple
-#
-# 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.
-
-# This file is a barebones file needed to file a gap until Ansible 2.0. No error
-# checking, no deletions, no updates. Idempotent creation only.
-
-# If you look closely, you will see we arent _really_ using the shade module
-# we just use it to slightly abstract the authentication model. As patches land
-# in upstream shade we will be able to use more of the shade module. Until then
-# if we want to be 'stable' we really need to be using it as a passthrough
-
-import shade
-
-def main():
-    module = AnsibleModule(
-        argument_spec = openstack_full_argument_spec(
-            password = dict(required=True, type='str'),
-            project = dict(required=True, type='str'),
-            role = dict(required=True, type='str'),
-            user = dict(required=True, type='str')
-        )
-    )
-
-    try:
-        password = module.params.pop('password')
-        project_name = module.params.pop('project')
-        role_name = module.params.pop('role')
-        user_name = module.params.pop('user')
-
-        changed = False
-        project = None
-        role = None
-        user = None
-
-        cloud = shade.operator_cloud(**module.params)
-
-        for _project in cloud.keystone_client.tenants.list():
-            if _project.name == project_name:
-                project = _project
-
-        for _role in cloud.keystone_client.roles.list():
-            if _role.name == role_name:
-                role = _role
-
-        for _user in cloud.keystone_client.users.list():
-            if _user.name == user_name:
-                user = _user
-
-        if not project:
-            changed = True
-            project = cloud.keystone_client.tenants.create(tenant_name=project_name)
-
-        if not role:
-            changed = True
-            role = cloud.keystone_client.roles.create(name=role_name)
-
-        if not user:
-            changed = True
-            user = cloud.keystone_client.users.create(name=user_name, password=password, tenant_id=project.id)
-            cloud.keystone_client.roles.add_user_role(role=role.id, user=user.id, tenant=project.id)
-
-        module.exit_json(changed=changed)
-    except Exception as e:
-        module.exit_json(failed=True, changed=True, msg=e)
-
-# import module snippets
-from ansible.module_utils.basic import *
-from ansible.module_utils.openstack import *
-if __name__ == '__main__':
-    main()
diff --git a/docker_templates/kolla-ansible/kolla_keystone_service.py b/docker_templates/kolla-ansible/kolla_keystone_service.py
deleted file mode 120000
index 5e5632f17004b7a25f4db3f77053b95ea03b7a05..0000000000000000000000000000000000000000
--- a/docker_templates/kolla-ansible/kolla_keystone_service.py
+++ /dev/null
@@ -1 +0,0 @@
-../../docker/common/kolla-ansible/kolla_keystone_service.py
\ No newline at end of file
diff --git a/docker_templates/kolla-ansible/kolla_keystone_service.py b/docker_templates/kolla-ansible/kolla_keystone_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..455aaf578e2ae8af6d1e44edfbd3f18efd06a2be
--- /dev/null
+++ b/docker_templates/kolla-ansible/kolla_keystone_service.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+
+# Copyright 2015 Sam Yaple
+#
+# 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.
+
+# This file is a barebones file needed to file a gap until Ansible 2.0. No error
+# checking, no deletions, no updates. Idempotent creation only.
+
+# If you look closely, you will see we arent _really_ using the shade module
+# we just use it to slightly abstract the authentication model. As patches land
+# in upstream shade we will be able to use more of the shade module. Until then
+# if we want to be 'stable' we really need to be using it as a passthrough
+
+import shade
+
+def main():
+    module = AnsibleModule(
+        argument_spec = openstack_full_argument_spec(
+            description = dict(required=True, type='str'),
+            service_name = dict(required=True, type='str'),
+            service_type = dict(required=True, type='str'),
+            admin_url = dict(required=True, type='str'),
+            internal_url = dict(required=True, type='str'),
+            public_url = dict(required=True, type='str'),
+            endpoint_region = dict(required=True, type='str')
+        )
+    )
+
+    try:
+        description = module.params.pop('description')
+        service_name = module.params.pop('service_name')
+        service_type = module.params.pop('service_type')
+        admin_url = module.params.pop('admin_url')
+        internal_url = module.params.pop('internal_url')
+        public_url = module.params.pop('public_url')
+        endpoint_region = module.params.pop('endpoint_region')
+
+        changed = False
+        service = None
+        endpoint = None
+
+        cloud = shade.operator_cloud(**module.params)
+
+        for _service in cloud.keystone_client.services.list():
+            if _service.type == service_type:
+                service = _service
+
+        if service is not None:
+            for _endpoint in cloud.keystone_client.endpoints.list():
+                if _endpoint.service_id == service.id:
+                    endpoint = _endpoint
+        else:
+            service = cloud.keystone_client.services.create(name=service_name,
+                                                            service_type=service_type,
+                                                            description=description)
+
+        if endpoint is None:
+            changed = True
+            cloud.keystone_client.endpoints.create(service_id=service.id,
+                                                   adminurl=admin_url,
+                                                   internalurl=public_url,
+                                                   publicurl=public_url,
+                                                   region=endpoint_region)
+
+        module.exit_json(changed=changed)
+    except Exception as e:
+        module.exit_json(failed=True, changed=True, msg=e)
+
+# import module snippets
+from ansible.module_utils.basic import *
+from ansible.module_utils.openstack import *
+if __name__ == '__main__':
+    main()
diff --git a/docker_templates/kolla-ansible/kolla_keystone_user.py b/docker_templates/kolla-ansible/kolla_keystone_user.py
deleted file mode 120000
index 4d88dd8d53250f5d87e9a433b9f4d60fb85024f9..0000000000000000000000000000000000000000
--- a/docker_templates/kolla-ansible/kolla_keystone_user.py
+++ /dev/null
@@ -1 +0,0 @@
-../../docker/common/kolla-ansible/kolla_keystone_user.py
\ No newline at end of file
diff --git a/docker_templates/kolla-ansible/kolla_keystone_user.py b/docker_templates/kolla-ansible/kolla_keystone_user.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d295c1e276a4186b7305cbb9bc6ce8182279aa8
--- /dev/null
+++ b/docker_templates/kolla-ansible/kolla_keystone_user.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+
+# Copyright 2015 Sam Yaple
+#
+# 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.
+
+# This file is a barebones file needed to file a gap until Ansible 2.0. No error
+# checking, no deletions, no updates. Idempotent creation only.
+
+# If you look closely, you will see we arent _really_ using the shade module
+# we just use it to slightly abstract the authentication model. As patches land
+# in upstream shade we will be able to use more of the shade module. Until then
+# if we want to be 'stable' we really need to be using it as a passthrough
+
+import shade
+
+def main():
+    module = AnsibleModule(
+        argument_spec = openstack_full_argument_spec(
+            password = dict(required=True, type='str'),
+            project = dict(required=True, type='str'),
+            role = dict(required=True, type='str'),
+            user = dict(required=True, type='str')
+        )
+    )
+
+    try:
+        password = module.params.pop('password')
+        project_name = module.params.pop('project')
+        role_name = module.params.pop('role')
+        user_name = module.params.pop('user')
+
+        changed = False
+        project = None
+        role = None
+        user = None
+
+        cloud = shade.operator_cloud(**module.params)
+
+        for _project in cloud.keystone_client.tenants.list():
+            if _project.name == project_name:
+                project = _project
+
+        for _role in cloud.keystone_client.roles.list():
+            if _role.name == role_name:
+                role = _role
+
+        for _user in cloud.keystone_client.users.list():
+            if _user.name == user_name:
+                user = _user
+
+        if not project:
+            changed = True
+            project = cloud.keystone_client.tenants.create(tenant_name=project_name)
+
+        if not role:
+            changed = True
+            role = cloud.keystone_client.roles.create(name=role_name)
+
+        if not user:
+            changed = True
+            user = cloud.keystone_client.users.create(name=user_name, password=password, tenant_id=project.id)
+            cloud.keystone_client.roles.add_user_role(role=role.id, user=user.id, tenant=project.id)
+
+        module.exit_json(changed=changed)
+    except Exception as e:
+        module.exit_json(failed=True, changed=True, msg=e)
+
+# import module snippets
+from ansible.module_utils.basic import *
+from ansible.module_utils.openstack import *
+if __name__ == '__main__':
+    main()