summaryrefslogtreecommitdiffstats
path: root/nova/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/service.py')
-rw-r--r--nova/service.py36
1 files changed, 23 insertions, 13 deletions
diff --git a/nova/service.py b/nova/service.py
index 7132a67b5..c360dcf80 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -21,17 +21,20 @@ Generic Node baseclass for all workers that run on hosts
"""
import inspect
-import logging
import os
import sys
+import time
from eventlet import event
from eventlet import greenthread
from eventlet import greenpool
+from sqlalchemy.exc import OperationalError
+
from nova import context
from nova import db
from nova import exception
+from nova import log as logging
from nova import flags
from nova import rpc
from nova import utils
@@ -128,8 +131,8 @@ class Service(object):
if 0 <= self.manager_class_name.find('ComputeManager'):
vcpu = self.manager.driver.get_vcpu_number()
- memory_mb = self.manager.get_memory_mb()
- local_gb = self.manager.get_local_gb()
+ memory_mb = self.manager.driver.get_memory_mb()
+ local_gb = self.manager.driver.get_local_gb()
hypervisor = self.manager.driver.get_hypervisor_type()
version = self.manager.driver.get_hypervisor_version()
cpu_xml = self.manager.driver.get_cpu_xml()
@@ -178,7 +181,7 @@ class Service(object):
report_interval = FLAGS.report_interval
if not periodic_interval:
periodic_interval = FLAGS.periodic_interval
- logging.warn(_("Starting %s node"), topic)
+ logging.audit(_("Starting %s node"), topic)
service_obj = cls(host, binary, topic, manager,
report_interval, periodic_interval)
@@ -231,22 +234,29 @@ class Service(object):
self.model_disconnected = True
logging.exception(_("model server went away"))
+ try:
+ # NOTE(vish): This is late-loaded to make sure that the
+ # database is not created before flags have
+ # been loaded.
+ from nova.db.sqlalchemy import models
+ models.register_models()
+ except OperationalError:
+ logging.exception(_("Data store %s is unreachable."
+ " Trying again in %d seconds.") %
+ (FLAGS.sql_connection,
+ FLAGS.sql_retry_interval))
+ time.sleep(FLAGS.sql_retry_interval)
+
def serve(*services):
- argv = FLAGS(sys.argv)
+ FLAGS(sys.argv)
+ logging.basicConfig()
if not services:
services = [Service.create()]
name = '_'.join(x.binary for x in services)
- logging.debug("Serving %s" % name)
-
- logging.getLogger('amqplib').setLevel(logging.WARN)
-
- if FLAGS.verbose:
- logging.getLogger().setLevel(logging.DEBUG)
- else:
- logging.getLogger().setLevel(logging.WARNING)
+ logging.debug(_("Serving %s"), name)
logging.debug(_("Full set of FLAGS:"))
for flag in FLAGS: