Fix fake.FakeBoot.prepare_ramdisk() signature

According to `BootInterface` [1], the `prepare_ramdisk` method must
receive 3 arguments (self, task, ramdisk_params) while `FakeBoot`
implementation receives only 2 arguments (self, task).

This cause a runtime error when one wants one to use `FakeBoot` driver
as a part of its own driver (for test purposes or in case of standalone
Ironic with static PXE configuration).

The reason why it works now is, no one use `FakeBoot` without other fake
parts, so `prepare_ramdisk` is never called.

[1]: http://git.openstack.org/cgit/openstack/ironic/tree/ironic/drivers/base.py#n416

Change-Id: I0a55bfaf8aa58747ad2cfcd14ec84430d139e68c
This commit is contained in:
Igor Kalnitsky 2016-07-12 18:45:01 +03:00
parent 831f58002c
commit 6c1aa56429
No known key found for this signature in database
GPG Key ID: F05067E18910196E
2 changed files with 10 additions and 2 deletions

View File

@ -63,7 +63,7 @@ class FakeBoot(base.BootInterface):
def validate(self, task):
pass
def prepare_ramdisk(self, task):
def prepare_ramdisk(self, task, ramdisk_params):
pass
def clean_up_ramdisk(self, task):

View File

@ -43,9 +43,9 @@ class FakeDriverTestCase(db_base.DbTestCase):
self.task.driver = self.driver
def test_driver_interfaces(self):
# fake driver implements only 5 out of 6 interfaces
self.assertIsInstance(self.driver.power, driver_base.PowerInterface)
self.assertIsInstance(self.driver.deploy, driver_base.DeployInterface)
self.assertIsInstance(self.driver.boot, driver_base.BootInterface)
self.assertIsInstance(self.driver.vendor, driver_base.VendorInterface)
self.assertIsInstance(self.driver.console,
driver_base.ConsoleInterface)
@ -78,6 +78,14 @@ class FakeDriverTestCase(db_base.DbTestCase):
self.driver.deploy.clean_up(None)
self.driver.deploy.tear_down(None)
def test_boot_interface(self):
self.assertEqual({}, self.driver.boot.get_properties())
self.driver.boot.validate(self.task)
self.driver.boot.prepare_ramdisk(self.task, {})
self.driver.boot.clean_up_ramdisk(self.task)
self.driver.boot.prepare_instance(self.task)
self.driver.boot.clean_up_instance(self.task)
def test_console_interface(self):
self.assertEqual({}, self.driver.console.get_properties())
self.driver.console.validate(self.task)