summaryrefslogtreecommitdiff
path: root/ironic/drivers/modules/network
diff options
context:
space:
mode:
authorShivanand Tendulker <stendulker@gmail.com>2017-08-30 03:50:32 -0400
committerShivanand Tendulker <stendulker@gmail.com>2018-04-18 02:49:37 -0400
commit4fa1075b95e2e5262f98395275590dcd3833ab74 (patch)
tree6e2a0ab81b8aa35a9c90f5cce02d10aded31ed8e /ironic/drivers/modules/network
parent46ee76aa461cd012a2b39dcb16c414957c463b72 (diff)
downloadironic-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.py11
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.