Skip to main content
Python Configuration Registry API
=================================

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)

```

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)

Source distribution for configuration-registry 0.5.0
File Size Uploaded
configuration-registry-0.5.0.tar.gz 6.6 kB 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

Release history Release notifications | RSS feed

This release

0.5.0 This release

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.26

1 release file

0.1.25

1 release file

0.1.24

1 release file

0.1.23

1 release file

0.1.22

1 release file

0.1.21

1 release file

0.1.20

1 release file

0.1.19

1 release file

0.1.18

1 release file

0.1.17

1 release file

0.1.16

1 release file

0.1.15

1 release file

0.1.14

1 release file

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9.1

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page