diff options
author | Scott Moser <smoser@ubuntu.com> | 2015-08-07 14:45:01 -0500 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2015-08-07 14:45:01 -0500 |
commit | 9975e06338bb646dbefe0749f7a8f88974d44d24 (patch) | |
tree | 17b072271f8faa303bbfdde1ff33496cc320ecec /cloudinit/registry.py | |
parent | 328cc7fbaf4d60b51193fb8c14e52d8c6f3273f2 (diff) | |
parent | 95bfe5d5150e2bf0a26dd1b97578c4fd04152365 (diff) | |
download | vyos-cloud-init-9975e06338bb646dbefe0749f7a8f88974d44d24.tar.gz vyos-cloud-init-9975e06338bb646dbefe0749f7a8f88974d44d24.zip |
Add initial reporting module and events
Diffstat (limited to 'cloudinit/registry.py')
-rw-r--r-- | cloudinit/registry.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/cloudinit/registry.py b/cloudinit/registry.py new file mode 100644 index 00000000..04368ddf --- /dev/null +++ b/cloudinit/registry.py @@ -0,0 +1,37 @@ +# Copyright 2015 Canonical Ltd. +# This file is part of cloud-init. See LICENCE file for license information. +# +# vi: ts=4 expandtab +import copy + + +class DictRegistry(object): + """A simple registry for a mapping of objects.""" + + def __init__(self): + self.reset() + + def reset(self): + self._items = {} + + def register_item(self, key, item): + """Add item to the registry.""" + if key in self._items: + raise ValueError( + 'Item already registered with key {0}'.format(key)) + self._items[key] = item + + def unregister_item(self, key, force=True): + """Remove item from the registry.""" + if key in self._items: + del self._items[key] + elif not force: + raise KeyError("%s: key not present to unregister" % key) + + @property + def registered_items(self): + """All the items that have been registered. + + This cannot be used to modify the contents of the registry. + """ + return copy.copy(self._items) |