From 9ff2c7685f13f12aa85892d44ace5264ab2a9e9d Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Wed, 6 May 2020 10:37:03 -0700 Subject: [PATCH] move jsonfile cache plugin back to ansible-base (#287) * move jsonfile cache plugin back to ansible-base * Delete remove_jsonfile.yml No needed as we haven't released `community.general` yet Co-authored-by: John R Barker --- plugins/cache/jsonfile.py | 62 --------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 plugins/cache/jsonfile.py diff --git a/plugins/cache/jsonfile.py b/plugins/cache/jsonfile.py deleted file mode 100644 index 90e39937d1..0000000000 --- a/plugins/cache/jsonfile.py +++ /dev/null @@ -1,62 +0,0 @@ -# (c) 2014, Brian Coca, Josh Drake, et al -# (c) 2017 Ansible Project -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -# Make coding more python3-ish -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -DOCUMENTATION = ''' - cache: jsonfile - short_description: JSON formatted files. - description: - - This cache uses JSON formatted, per host, files saved to the filesystem. - author: Ansible Core (@ansible-core) - options: - _uri: - required: True - description: - - Path in which the cache plugin will save the JSON files - env: - - name: ANSIBLE_CACHE_PLUGIN_CONNECTION - ini: - - key: fact_caching_connection - section: defaults - _prefix: - description: User defined prefix to use when creating the JSON files - env: - - name: ANSIBLE_CACHE_PLUGIN_PREFIX - ini: - - key: fact_caching_prefix - section: defaults - _timeout: - default: 86400 - description: Expiration timeout in seconds for the cache plugin data. Set to 0 to never expire - env: - - name: ANSIBLE_CACHE_PLUGIN_TIMEOUT - ini: - - key: fact_caching_timeout - section: defaults - type: integer -''' - -import codecs -import json - -from ansible.parsing.ajson import AnsibleJSONEncoder, AnsibleJSONDecoder -from ansible.plugins.cache import BaseFileCacheModule - - -class CacheModule(BaseFileCacheModule): - """ - A caching module backed by json files. - """ - - def _load(self, filepath): - # Valid JSON is always UTF-8 encoded. - with codecs.open(filepath, 'r', encoding='utf-8') as f: - return json.load(f, cls=AnsibleJSONDecoder) - - def _dump(self, value, filepath): - with codecs.open(filepath, 'w', encoding='utf-8') as f: - f.write(json.dumps(value, cls=AnsibleJSONEncoder, sort_keys=True, indent=4))