diff --git a/plugins/module_utils/cache.py b/plugins/module_utils/cache.py new file mode 100644 index 00000000000..42c53de5a14 --- /dev/null +++ b/plugins/module_utils/cache.py @@ -0,0 +1,55 @@ +# Copyright [yyyy] [name of copyright owner] +# +# 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. + + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +import os + +from ansible.module_utils.six import PY3 + + +def get_user(): + if hasattr(os, 'getlogin'): + try: + user = os.getlogin() + if user: + return str(user) + except OSError: + pass + if hasattr(os, 'getuid'): + try: + user = os.getuid() + if user: + return str(user) + except OSError: + pass + user = os.environ.get("USERNAME") + if user: + return str(user) + return None + + +def get_default_cache_id(client): + user = get_user() + if user: + cache_id = "{0}-{1}".format(client.configuration.host, user) + else: + cache_id = client.configuration.host + + if PY3: + return cache_id.encode('utf-8') + + return cache_id diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index 5dcd5a4195d..baf39ee6bac 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -29,9 +29,10 @@ from distutils.version import LooseVersion from ansible_collections.kubernetes.core.plugins.module_utils.args_common import (AUTH_ARG_MAP, AUTH_ARG_SPEC) +from ansible_collections.kubernetes.core.plugins.module_utils.cache import get_user, get_default_cache_id from ansible.module_utils.basic import AnsibleModule, missing_required_lib -from ansible.module_utils.six import iteritems, string_types, PY3 +from ansible.module_utils.six import iteritems, string_types from ansible.module_utils._text import to_native, to_bytes, to_text from ansible.module_utils.common.dict_transformations import dict_merge from ansible.module_utils.parsing.convert_bool import boolean @@ -102,40 +103,6 @@ K8S_IMP_ERR = traceback.format_exc() -def get_user(): - if hasattr(os, 'getlogin'): - try: - user = os.getlogin() - if user: - return str(user) - except OSError: - pass - if hasattr(os, 'getuid'): - try: - user = os.getuid() - if user: - return str(user) - except OSError: - pass - user = os.environ.get("USERNAME") - if user: - return str(user) - return None - - -def get_default_cache_id(client): - user = get_user() - if user: - cache_id = "{0}-{1}".format(client.configuration.host, user) - else: - cache_id = client.configuration.host - - if PY3: - return cache_id.encode('utf-8') - - return cache_id - - def configuration_digest(configuration): m = hashlib.sha256() for k in AUTH_ARG_MAP: