summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorCerberus <matt.dietz@rackspace.com>2011-05-11 14:41:39 -0500
committerCerberus <matt.dietz@rackspace.com>2011-05-11 14:41:39 -0500
commit2aaeb82d5c2587adcad46e4087a3fb0aafdc1bbb (patch)
treecc29092ea7061a21daec2b30fddfc2047306c788 /nova/compute
parent6de6da879c37f0a5983f4c72692db84c3dd10b22 (diff)
parent5f2bfe56cf12d8f45ae24a5c9dd0c99e6c4d0310 (diff)
Merge from trunk
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/manager.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 5379702c6..f25229ead 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -131,6 +131,7 @@ class ComputeManager(manager.SchedulerDependentManager):
self.network_manager = utils.import_object(FLAGS.network_manager)
self.volume_manager = utils.import_object(FLAGS.volume_manager)
self.network_api = network.API()
+ self._last_host_check = 0
super(ComputeManager, self).__init__(service_name="compute",
*args, **kwargs)
@@ -1094,6 +1095,13 @@ class ComputeManager(manager.SchedulerDependentManager):
error_list.append(ex)
try:
+ self._report_driver_status()
+ except Exception as ex:
+ LOG.warning(_("Error during report_driver_status(): %s"),
+ unicode(ex))
+ error_list.append(ex)
+
+ try:
self._poll_instance_states(context)
except Exception as ex:
LOG.warning(_("Error during instance poll: %s"),
@@ -1102,6 +1110,16 @@ class ComputeManager(manager.SchedulerDependentManager):
return error_list
+ def _report_driver_status(self):
+ curr_time = time.time()
+ if curr_time - self._last_host_check > FLAGS.host_state_interval:
+ self._last_host_check = curr_time
+ LOG.info(_("Updating host status"))
+ # This will grab info about the host and queue it
+ # to be sent to the Schedulers.
+ self.update_service_capabilities(
+ self.driver.get_host_stats(refresh=True))
+
def _poll_instance_states(self, context):
vm_instances = self.driver.list_instances_detail()
vm_instances = dict((vm.name, vm) for vm in vm_instances)