From 059940646802fb400c4e59b46d805f40ba61b70f Mon Sep 17 00:00:00 2001 From: Alessandro Pilotti Date: Sun, 9 Sep 2012 18:01:18 +0300 Subject: Adds get_available_resource to hyperv driver Fixes Bug #1048263 update_available_resource was changed to get_available_resource. This fix implements implements the method in the hyperv driver Change-Id: Id018877c563aab7f75618ada318b6422ab06c7b7 --- nova/virt/hyperv/driver.py | 4 ++-- nova/virt/hyperv/vmops.py | 34 +++++++++++----------------------- 2 files changed, 13 insertions(+), 25 deletions(-) (limited to 'nova/virt') diff --git a/nova/virt/hyperv/driver.py b/nova/virt/hyperv/driver.py index c8a2e299e..f385640f5 100644 --- a/nova/virt/hyperv/driver.py +++ b/nova/virt/hyperv/driver.py @@ -120,8 +120,8 @@ class HyperVDriver(driver.ComputeDriver): def poll_rescued_instances(self, timeout): pass - def update_available_resource(self, context, host): - self._vmops.update_available_resource(context, host) + def get_available_resource(self): + return self._vmops.get_available_resource() def update_host_status(self): """See xenapi_conn.py implementation.""" diff --git a/nova/virt/hyperv/vmops.py b/nova/virt/hyperv/vmops.py index aa8d34e12..bb0e294c0 100644 --- a/nova/virt/hyperv/vmops.py +++ b/nova/virt/hyperv/vmops.py @@ -20,6 +20,7 @@ Management class for basic VM operations. """ import multiprocessing import os +import platform import uuid from nova import db @@ -555,23 +556,17 @@ class VMOps(baseops.BaseOps): LOG.info(_('Windows version: %s ') % version) return version - def update_available_resource(self, context, host): - """Updates compute manager resource info on ComputeNode table. + def get_available_resource(self): + """Retrieve resource info. - This method is called as an periodic tasks and is used only - in live migration currently. + This method is called when nova-compute launches, and + as part of a periodic task. - :param ctxt: security context - :param host: hostname that compute manager is currently running + :returns: dictionary describing resources """ + LOG.info(_('get_available_resource called')) - try: - service_ref = db.service_get_all_compute_by_host(context, host)[0] - except exception.NotFound: - raise exception.ComputeServiceUnavailable(host=host) - - # Updating host information # TODO(alexpilotti) implemented cpu_info dic = {'vcpus': self._get_vcpu_total(), 'memory_mb': self._get_memory_mb_total(), @@ -581,17 +576,10 @@ class VMOps(baseops.BaseOps): 'local_gb_used': self._get_local_gb_used(), 'hypervisor_type': "hyperv", 'hypervisor_version': self._get_hypervisor_version(), - 'cpu_info': "unknown", - 'service_id': service_ref['id'], - 'disk_available_least': 1} - - compute_node_ref = service_ref['compute_node'] - if not compute_node_ref: - LOG.info(_('Compute_service record created for %s ') % host) - db.compute_node_create(context, dic) - else: - LOG.info(_('Compute_service record updated for %s ') % host) - db.compute_node_update(context, compute_node_ref[0]['id'], dic) + 'hypervisor_hostname': platform.node(), + 'cpu_info': 'unknown'} + + return dic def _cache_image(self, fn, target, fname, cow=False, Size=None, *args, **kwargs): -- cgit