Skip to content

Instantly share code, notes, and snippets.

@denismakogon
Last active December 24, 2015 10:29
Show Gist options
  • Save denismakogon/6784871 to your computer and use it in GitHub Desktop.
Save denismakogon/6784871 to your computer and use it in GitHub Desktop.
Registry
Guestagent conf:
service_registry_ext = dict_opt {service_engine*: trove.guestagent.manager.service_engine.Manager, ...}
service_engine is mysql, percona, cassandra, mongo etc.
------------------------------------------------------------------
common/cfg.py
DictOpt('service_registry_ext', default=dict(), help=...)
------------------------------------------------------------------
guestagent/dbaas.py:
from itertools import chain
defaults = {
'mysql': 'trove.guestagent.manager.mysql.Manager',
'percona': 'trove.guestagent.manager.mysql.Manager'
}
customs = CONF.service_registry_ext
SERVICE_REGISTRY = dict(chain(customs.iteritems(), defaults.iteritems()))
------------------------------------------------------------------
bin/trove-guestagent:
manager = dbaas.SERVICE_REGISTRY.get(CONF.service_type)
if not manager:
msg = "Manager not found for service type " + CONF.service_type
raise RuntimeError(msg)
server = rpc.RpcService(manager=manager, host=CONF.guest_id)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment