diff options
| author | Cerberus <matt.dietz@rackspace.com> | 2011-05-11 14:41:39 -0500 |
|---|---|---|
| committer | Cerberus <matt.dietz@rackspace.com> | 2011-05-11 14:41:39 -0500 |
| commit | 2aaeb82d5c2587adcad46e4087a3fb0aafdc1bbb (patch) | |
| tree | cc29092ea7061a21daec2b30fddfc2047306c788 /nova/compute | |
| parent | 6de6da879c37f0a5983f4c72692db84c3dd10b22 (diff) | |
| parent | 5f2bfe56cf12d8f45ae24a5c9dd0c99e6c4d0310 (diff) | |
Merge from trunk
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/manager.py | 18 |
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) |
