=================================
Purpose
-------
The objective of this module is to provide a common API to the configuration
registy used to store service instance properties using KeyValue stores
like consul, etcd or zookeeper.
Usage examples
--------------
Basic usage examples::
import registry
registry.connect()
# Register a new service template using default template type: json+jinja2
registry.register(name, version, description, template, options)
# using template type: yaml+jinja2
cluster = registry.register(name, version, description, template,
options, templatetype='yaml+jinja2')
# Instantiate a new cluster from a given service template
cluster = registry.instantiate(user, servicename, version, options)
# Retrieve a previously instantiated cluster instance
cluster = registry.get_cluster(user='jlopez', framework='cdh', flavour='5.7.0', id='1')
# Alternatively you can retrieve it by DN
cluster = registry.get_cluster(dn='jlopez/cdh/5.7.0/1')
# Retrieve a previously registered Product object
product = registry.get_product(name, version)
template = templateProxy.template
options = templateProxy.options
description = templateProxy.description
nodes = cluster.nodes
services = cluster.services
for node in nodes:
print node.status
nodes[0].status = 'running'
# Deregister a service template (removes it)
registry.deregister(service_name, service_version)
# Deinstantiate a cluster instance (removes it)
registry.deinstantiate(user, framework, flavour)
Notes
-----
Copy recursively an instance into a new one:
```
slave0 = kv.recurse('instances/jlopez/cdh/5.7.0/1/nodes/slave0')
slave1 = {k.replace('slave0', 'slave1'): slave0[k] for k in slave0.keys()}
for k in slave1.keys():
kv.set(k, slave1[k])
```
Sample service Template:
------------------------
- service-template.json
- service-template.yaml
Errors
------
FIXME: yaml+jinja2 fails the test 40% of the times:
```
.E..........
======================================================================
ERROR: test_add_instance_yamltemplate (__main__.RegistryTemplatesTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "tests_integration.py", line 122, in test_add_instance_yamltemplate
self.assertEqual(cluster.nodes[0].networks[0].networkname, 'admin')
File "/home/jlopez/home_common/Reference/src/python/bigdata/configuration-registry/registry.py", line 372, in networks
subtree = _kv.recurse(self._endpoint + '/networks')
File "/home/jlopez/home_common/Reference/src/python/bigdata/configuration-registry/venv/local/lib/python2.7/site-packages/kvstore.py", line 68, in recurse
raise KeyDoesNotExist("Key " + k + " does not exist")
KeyDoesNotExist: Key instances/testuser/__unittests__/0.1.0/44/nodes/master0/networks does not exist
----------------------------------------------------------------------
Ran 12 tests in 14.156s
FAILED (errors=1)
```
Metadata
Release files for configuration-registry 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| configuration-registry-0.5.0.tar.gz | 6.6 kB | Without provenance | Details |
Release files / configuration-registry-0.5.0.tar.gz
| Download URL | configuration-registry-0.5.0.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8ba6cafe5ede11ea4d90f98aa4a594df948ffe863f8faa501168ac7831b6f55
|
|
BLAKE2b-256 checksum How to use checksums |
ecbe686914c9c9920b0371734f6e54576ccd06d6c43e75519e3c6e3066480600
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for configuration-registry 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.