From 3f7353d14183a93099c99dc2fc72614265f1c72c Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Thu, 15 Dec 2011 22:55:59 +0000 Subject: Starting work on exposing service functionality. Change-Id: Ic9412bc0dae8559e356c51ace063504c4cac5def --- nova/db/api.py | 5 +++++ nova/db/sqlalchemy/api.py | 8 ++++++++ nova/manager.py | 10 ++++++++++ 3 files changed, 23 insertions(+) diff --git a/nova/db/api.py b/nova/db/api.py index 32b3f867d..b00328c52 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -172,6 +172,11 @@ def compute_node_get_all(context, session=None): return IMPL.compute_node_get_all(context) +def compute_node_get_for_service(context, service_id): + """Get all computeNodes.""" + return IMPL.compute_node_get_for_service(context, service_id) + + def compute_node_create(context, values): """Create a computeNode from the values dictionary.""" return IMPL.compute_node_create(context, values) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 116e74b60..373e79f97 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -377,6 +377,14 @@ def compute_node_get_all(context, session=None): all() +@require_admin_context +def compute_node_get_for_service(context, service_id): + return model_query(context, models.ComputeNode).\ + options(joinedload('service')).\ + filter_by(service_id=service_id).\ + first() + + @require_admin_context def compute_node_create(context, values): compute_node_ref = models.ComputeNode() diff --git a/nova/manager.py b/nova/manager.py index 4ebaf0d4b..505fce345 100644 --- a/nova/manager.py +++ b/nova/manager.py @@ -57,6 +57,7 @@ from nova import flags from nova import log as logging from nova.db import base from nova.scheduler import api +from nova import version FLAGS = flags.FLAGS @@ -166,6 +167,15 @@ class Manager(base.Base): """ pass + def service_version(self, context): + return version.version_string() + + def service_config(self, context): + config = {} + for key in FLAGS: + config[key] = FLAGS.get(key, None) + return config + class SchedulerDependentManager(Manager): """Periodically send capability updates to the Scheduler services. -- cgit