From c17ee850d269039896091c368b73328cb43bb0d9 Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam Date: Tue, 22 Mar 2016 05:54:13 +0530 Subject: [PATCH] FIX-1236 Adds config list in rpc Change-Id: Ia78893d93209ee7ec68d49ffa062aff649e486e5 --- namos/conductor/manager.py | 10 ++++++++++ namos/conductor/rpcapi.py | 35 +++++++++++++++++++++++++++++------ namos/db/api.py | 6 ++++-- namos/db/sqlalchemy/api.py | 6 +++++- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/namos/conductor/manager.py b/namos/conductor/manager.py index a43a614..151563f 100644 --- a/namos/conductor/manager.py +++ b/namos/conductor/manager.py @@ -106,6 +106,16 @@ class ConductorManager(object): def infra_perspective_get(self, context): return db_api.infra_perspective_get(context) + @request_context + def config_get_by_name_for_service_worker(self, + context, + service_worker_id, + name=None, + only_configured=True): + return db_api.config_get_by_name_for_service_worker(context, + service_worker_id, + name, + only_configured) class ServiceProcessor(object): def __init__(self, registration_info): diff --git a/namos/conductor/rpcapi.py b/namos/conductor/rpcapi.py index 7db8f47..bf7d660 100644 --- a/namos/conductor/rpcapi.py +++ b/namos/conductor/rpcapi.py @@ -96,6 +96,18 @@ class ConductorAPI(object): return self.client.call(context, 'infra_perspective_get') + @wrapper_function + def config_get_by_name_for_service_worker(self, + context, + service_worker_id, + name=None, + only_configured=True): + return self.client.call(context, + 'config_get_by_name_for_service_worker', + service_worker_id=service_worker_id, + name=name, + only_configured=only_configured) + if __name__ == '__main__': # from namos.common import config @@ -105,10 +117,21 @@ if __name__ == '__main__': from oslo_context import context c = ConductorAPI() - # c.add_region(context.RequestContext(), - # {'name': 'RegionOne11', - # 'keystone_region_id': 'region_one', - # 'extra': {'location': 'bangalore'}, - # 'id': 'd7dcd175-27ef-46b5-997f-e6e572f320af'}) - print (json.dumps(c.infra_perspective_get(context.RequestContext()))) + def add_sample_region(): + c.add_region(context.RequestContext(), + {'name': 'RegionOne11', + 'keystone_region_id': 'region_one', + 'extra': {'location': 'bangalore'}, + 'id': 'd7dcd175-27ef-46b5-997f-e6e572f320af'}) + + def print_infra(): + print (json.dumps(c.infra_perspective_get(context.RequestContext()))) + + def print_sample_conf(): + for cf in c.config_get_by_name_for_service_worker( + context.RequestContext(), + service_worker_id='fc88fd41-7e9c-42c9-891d-3823efd4824e'): + print ('%s %s' % (cf['name'], cf['value'])) + + print_sample_conf() diff --git a/namos/db/api.py b/namos/db/api.py index cb81564..a2f8457 100644 --- a/namos/db/api.py +++ b/namos/db/api.py @@ -328,10 +328,12 @@ def config_get_by_name(context, name): def config_get_by_name_for_service_worker(context, service_worker_id, - name=None): + name=None, + only_configured=True): return IMPL.config_get_by_name_for_service_worker(context, service_worker_id, - name) + name, + only_configured) def config_get_all(context): diff --git a/namos/db/sqlalchemy/api.py b/namos/db/sqlalchemy/api.py index a36de55..cbef957 100644 --- a/namos/db/sqlalchemy/api.py +++ b/namos/db/sqlalchemy/api.py @@ -519,11 +519,15 @@ def config_get_by_name(context, name): def config_get_by_name_for_service_worker(context, service_worker_id, - name=None): + name=None, + only_configured=True): query = _model_query(context, models.OsloConfig). \ filter_by(service_worker_id=service_worker_id) if name is not None: query = query.filter_by(name=name) + elif only_configured: + query = query.filter( + models.OsloConfig.value != models.OsloConfig.default_value) return query.all()