diff options
author | Shivanand Tendulker <stendulker@gmail.com> | 2017-08-30 03:50:32 -0400 |
---|---|---|
committer | Shivanand Tendulker <stendulker@gmail.com> | 2018-04-18 02:49:37 -0400 |
commit | 4fa1075b95e2e5262f98395275590dcd3833ab74 (patch) | |
tree | 6e2a0ab81b8aa35a9c90f5cce02d10aded31ed8e /ironic/drivers/modules/network | |
parent | 46ee76aa461cd012a2b39dcb16c414957c463b72 (diff) | |
download | ironic-4fa1075b95e2e5262f98395275590dcd3833ab74.tar.gz |
Fix ``agent`` deploy interface to call ``boot.prepare_instance``
``agent`` deploy interface do not call ``boot.prepare_instance``
if image being provisioned is whole disk image. This commit fixes
that issue.
It also updates ``validate`` method of neutron network interface
module to validate if it can support boot options requested for
instance image.
Change-Id: Ibd49d65f4512f2fa417794b66f4007d82f02e2ac
Story: 1713916
Task: 9259
Story: 1750958
Task: 9288
Diffstat (limited to 'ironic/drivers/modules/network')
-rw-r--r-- | ironic/drivers/modules/network/neutron.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ironic/drivers/modules/network/neutron.py b/ironic/drivers/modules/network/neutron.py index 7bef57ce0..5bba613db 100644 --- a/ironic/drivers/modules/network/neutron.py +++ b/ironic/drivers/modules/network/neutron.py @@ -20,7 +20,9 @@ from oslo_log import log from ironic.common import exception from ironic.common.i18n import _ from ironic.common import neutron +from ironic.common import states from ironic.drivers import base +from ironic.drivers.modules import deploy_utils from ironic.drivers.modules.network import common LOG = log.getLogger(__name__) @@ -59,6 +61,15 @@ class NeutronNetwork(common.NeutronVIFPortIDMixin, """ self.get_cleaning_network_uuid(task) self.get_provisioning_network_uuid(task) + node = task.node + if (node.provision_state == states.DEPLOYING and + node.driver_internal_info.get('is_whole_disk_image') and + deploy_utils.get_boot_option(node) == 'netboot'): + error_msg = (_('The node %s cannot perform "local" boot for ' + 'whole disk image when node is using "neutron" ' + 'network and is configured with "netboot" boot ' + 'option.') % node.uuid) + raise exception.InvalidParameterValue(error_msg) def add_provisioning_network(self, task): """Add the provisioning network to a node. |