From 4a123a478c837a45333afa9acecd40678b94b01c Mon Sep 17 00:00:00 2001 From: Chandan Monabolu Narayana Date: Fri, 20 Feb 2026 12:32:08 -0500 Subject: [PATCH] fix(ibm): bare metal server parameters wrapped into bare_metal_server_prototype Latest IBM SDK requires the parameters of create_bare_metal_server method to be wrapped inside bare_metal_server_prototype --- VERSION | 2 +- pycloudlib/ibm/instance.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/VERSION b/VERSION index 7cab95ee..63115ced 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1!10.16.0 +1!10.17.0 diff --git a/pycloudlib/ibm/instance.py b/pycloudlib/ibm/instance.py index 6190ca55..0a0c85b3 100644 --- a/pycloudlib/ibm/instance.py +++ b/pycloudlib/ibm/instance.py @@ -8,7 +8,7 @@ from enum import Enum, auto from functools import partial from itertools import chain -from typing import TYPE_CHECKING, Callable, List, Optional +from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional from ibm_cloud_sdk_core import ApiException, DetailedResponse from ibm_vpc import VpcV1 @@ -725,12 +725,12 @@ def create_raw_instance( """Create and return a raw IBM instance.""" ibm_instance_type = _IBMInstanceType.from_instance_type(instance_type) - initialization = { + initialization: Dict[str, Any] = { "image": {"id": image_id}, "keys": [{"id": key_id}], } - base_proto = { + base_proto: Dict[str, Any] = { "name": name, "primary_network_interface": { "name": "eth0", @@ -755,13 +755,15 @@ def create_raw_instance( kwargs = {"instance_prototype": instance_prototype} elif ibm_instance_type == _IBMInstanceType.BARE_METAL_SERVER: - kwargs = { + bare_metal_server_prototype = { **base_proto, "initialization": initialization, } if user_data: - kwargs["initialization"]["user_data"] = user_data + bare_metal_server_prototype["initialization"]["user_data"] = user_data + + kwargs = {"bare_metal_server_prototype": bare_metal_server_prototype} else: raise NotImplementedError(f"Implement me for: {ibm_instance_type}")