Merge "Fixing signature mismatch for spawn method"

This commit is contained in:
Zuul 2017-11-20 10:15:00 +00:00 committed by Gerrit Code Review
commit b3adf84bd8
2 changed files with 25 additions and 4 deletions

View File

@ -30,10 +30,11 @@ class HyperVClusterDriver(driver.HyperVDriver):
self._clops.reclaim_failovered_instances()
def spawn(self, context, instance, image_meta, injected_files,
admin_password, network_info=None, block_device_info=None):
admin_password, allocations, network_info=None,
block_device_info=None):
super(HyperVClusterDriver, self).spawn(
context, instance, image_meta, injected_files, admin_password,
network_info, block_device_info)
allocations, network_info, block_device_info)
self._clops.add_to_cluster(instance)
def destroy(self, context, instance, network_info, block_device_info=None,

View File

@ -17,6 +17,9 @@
import mock
from nova import safe_utils
from nova.virt import driver as nova_base_driver
from compute_hyperv.nova.cluster import clusterops
from compute_hyperv.nova.cluster import driver
from compute_hyperv.nova import driver as base_driver
@ -36,20 +39,37 @@ class HyperVClusterTestCase(test_base.HyperVBaseTestCase):
self.driver = driver.HyperVClusterDriver(mock.sentinel.virtapi)
self.driver._livemigrationops = mock.Mock()
def test_public_api_signatures(self):
driver_methods = dict(driver.HyperVClusterDriver.__dict__,
**base_driver.HyperVDriver.__dict__)
for attr in driver_methods:
class_member = getattr(driver.HyperVClusterDriver, attr)
if callable(class_member):
mocked_method = mock.patch.object(
driver.HyperVClusterDriver, attr,
safe_utils.get_wrapped_function(class_member))
mocked_method.start()
self.addCleanup(mocked_method.stop)
self.assertPublicAPISignatures(nova_base_driver.ComputeDriver,
driver.HyperVClusterDriver)
@mock.patch.object(base_driver.HyperVDriver, 'spawn')
def test_spawn(self, mock_superclass_spawn):
self.driver.spawn(self.context, mock.sentinel.fake_instance,
mock.sentinel.image_meta,
mock.sentinel.injected_files,
mock.sentinel.admin_pass,
mock.sentinel.allocations,
mock.sentinel.network_info,
mock.sentinel.block_dev_info)
mock_superclass_spawn.assert_called_once_with(
self.context, mock.sentinel.fake_instance,
mock.sentinel.image_meta, mock.sentinel.injected_files,
mock.sentinel.admin_pass, mock.sentinel.network_info,
mock.sentinel.block_dev_info)
mock.sentinel.admin_pass, mock.sentinel.allocations,
mock.sentinel.network_info, mock.sentinel.block_dev_info)
self.driver._clops.add_to_cluster.assert_called_once_with(
mock.sentinel.fake_instance)