summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/gathering_facts/cache_plugins/none.py
blob: 5681dee0e49a1b6ed9491c73410335c075affe61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# (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)


from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from ansible.plugins.cache import BaseCacheModule

DOCUMENTATION = '''
    cache: none
    short_description: write-only cache (no cache)
    description:
        - No caching at all
    version_added: historical
    author: core team (@ansible-core)
'''


class CacheModule(BaseCacheModule):
    def __init__(self, *args, **kwargs):
        self.empty = {}

    def get(self, key):
        return self.empty.get(key)

    def set(self, key, value):
        return value

    def keys(self):
        return self.empty.keys()

    def contains(self, key):
        return key in self.empty

    def delete(self, key):
        del self.emtpy[key]

    def flush(self):
        self.empty = {}

    def copy(self):
        return self.empty.copy()

    def __getstate__(self):
        return self.copy()

    def __setstate__(self, data):
        self.empty = data