From a3c4c80bbf36013a43c01df2d76c18ec2d7ea767 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Mon, 22 Sep 2014 14:24:48 +0200 Subject: [PATCH] Neutron DHCP implementation to raise exception if no ports have VIF Currently only warning is risen, though deploy can't succeed in this case for both PXE and Agent drivers. Change-Id: If57a33818f5da820277c94b7b0ae642d29a698ce Closes-Bug: #1362060 --- ironic/dhcp/neutron.py | 8 ++++---- ironic/tests/dhcp/test_neutron.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ironic/dhcp/neutron.py b/ironic/dhcp/neutron.py index 1edbdace4e..c5dae49c28 100644 --- a/ironic/dhcp/neutron.py +++ b/ironic/dhcp/neutron.py @@ -145,10 +145,10 @@ class NeutronDHCPApi(base.BaseDHCP): """ vifs = network.get_node_vif_ids(task) if not vifs: - LOG.warning(_LW("No VIFs found for node %(node)s when attempting " - "to update DHCP BOOT options."), - {'node': task.node.uuid}) - return + raise exception.FailedToUpdateDHCPOptOnPort( + _("No VIFs found for node %(node)s when attempting " + "to update DHCP BOOT options.") % + {'node': task.node.uuid}) failures = [] for port_id, port_vif in vifs.items(): diff --git a/ironic/tests/dhcp/test_neutron.py b/ironic/tests/dhcp/test_neutron.py index 289fd84bca..f6c5350ce0 100644 --- a/ironic/tests/dhcp/test_neutron.py +++ b/ironic/tests/dhcp/test_neutron.py @@ -180,7 +180,8 @@ class TestNeutron(base.TestCase): with task_manager.acquire(self.context, self.node.uuid) as task: api = dhcp_factory.DHCPFactory() - api.update_dhcp(task, self.node) + self.assertRaises(exception.FailedToUpdateDHCPOptOnPort, + api.update_dhcp, task, self.node) self.assertFalse(mock_updo.called) @mock.patch('ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts')