summaryrefslogtreecommitdiff
path: root/ironic/drivers/modules/deploy_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic/drivers/modules/deploy_utils.py')
-rw-r--r--ironic/drivers/modules/deploy_utils.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/ironic/drivers/modules/deploy_utils.py b/ironic/drivers/modules/deploy_utils.py
index ce4be5c9e..f8354647d 100644
--- a/ironic/drivers/modules/deploy_utils.py
+++ b/ironic/drivers/modules/deploy_utils.py
@@ -363,7 +363,7 @@ def deploy_partition_image(
def deploy_disk_image(address, port, iqn, lun,
- image_path, node_uuid):
+ image_path, node_uuid, configdrive=None):
"""All-in-one function to deploy a whole disk image to a node.
:param address: The iSCSI IP address.
@@ -373,6 +373,8 @@ def deploy_disk_image(address, port, iqn, lun,
:param image_path: Path for the instance's disk image.
:param node_uuid: node's uuid. Used for logging. Currently not in use
by this function but could be used in the future.
+ :param configdrive: Optional. Base64 encoded Gzipped configdrive content
+ or configdrive HTTP URL.
:returns: a dictionary containing the key 'disk identifier' to identify
the disk which was used for deployment.
"""
@@ -381,6 +383,10 @@ def deploy_disk_image(address, port, iqn, lun,
disk_utils.populate_image(image_path, dev)
disk_identifier = disk_utils.get_disk_identifier(dev)
+ if configdrive:
+ disk_utils.create_config_drive_partition(node_uuid, dev,
+ configdrive)
+
return {'disk identifier': disk_identifier}
@@ -1181,6 +1187,7 @@ def parse_instance_info(node):
# ensuring that it is possible
i_info['swap_mb'] = info.get('swap_mb', 0)
i_info['ephemeral_gb'] = info.get('ephemeral_gb', 0)
+ i_info['configdrive'] = info.get('configdrive')
err_msg_invalid = _("Cannot validate parameter for driver deploy. "
"Invalid parameter %(param)s. Reason: %(reason)s")
for param in DISK_LAYOUT_PARAMS: