From 52786d4fae89fde9ab7ca16a836d545a33bb8a47 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Mon, 9 Jun 2025 16:20:35 +0100 Subject: [PATCH] api: Add schema for bios API (versioning) Change-Id: Idceab8c80b24064b6a05e4b409a8d30b0ca25a95 Signed-off-by: Stephen Finucane --- ironic/api/controllers/v1/bios.py | 4 ++++ ironic/api/controllers/v1/node.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/ironic/api/controllers/v1/bios.py b/ironic/api/controllers/v1/bios.py index be5e6b9fe5..5ccbc9a8e5 100644 --- a/ironic/api/controllers/v1/bios.py +++ b/ironic/api/controllers/v1/bios.py @@ -17,7 +17,9 @@ from pecan import rest from ironic import api from ironic.api.controllers.v1 import utils as api_utils +from ironic.api.controllers.v1 import versions from ironic.api import method +from ironic.api import validation from ironic.common import args from ironic.common import exception from ironic.common import metrics_utils @@ -65,6 +67,7 @@ class NodeBiosController(rest.RestController): @METRICS.timer('NodeBiosController.get_all') @method.expose() + @validation.api_version(min_version=versions.MINOR_40_BIOS_INTERFACE) @args.validate(fields=args.string_list, detail=args.boolean) def get_all(self, detail=None, fields=None): """List node bios settings.""" @@ -85,6 +88,7 @@ class NodeBiosController(rest.RestController): @METRICS.timer('NodeBiosController.get_one') @method.expose() + @validation.api_version(min_version=versions.MINOR_40_BIOS_INTERFACE) @args.validate(setting_name=args.name) def get_one(self, setting_name): """Retrieve information about the given bios setting. diff --git a/ironic/api/controllers/v1/node.py b/ironic/api/controllers/v1/node.py index 68dc48f244..53f95a883f 100644 --- a/ironic/api/controllers/v1/node.py +++ b/ironic/api/controllers/v1/node.py @@ -2386,6 +2386,8 @@ class NodesController(rest.RestController): pecan.abort(http_client.BAD_REQUEST, e.args[0]) if not remainder: return + # TODO(stephenfin): Remove all of these once we have version decorators + # on them all if ((remainder[0] == 'portgroups' and not api_utils.allow_portgroups_subcontrollers()) or (remainder[0] == 'vifs'