From b808b82dfb7daf1343471b154f13f33ed89b9dfd Mon Sep 17 00:00:00 2001 From: dlawton Date: Thu, 11 Sep 2025 10:05:41 +0100 Subject: [PATCH] Validation: Cannot create network with segmentation id alone Change-Id: I7d98921fe6f2819a6427bc826d640a6685a00da7 Signed-off-by: Dan lawton Closes-bug: #1693106 --- openstackclient/network/v2/network.py | 10 ++++++++++ .../tests/unit/network/v2/test_network.py | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index e04efed616..33f7e04e40 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -401,6 +401,16 @@ class CreateNetwork( ) raise exceptions.CommandError(msg) + if ( + parsed_args.segmentation_id + and not parsed_args.provider_network_type + ): + msg = _( + "--provider-segment requires --provider-network-type " + "to be specified." + ) + raise exceptions.CommandError(msg) + attrs.update( self._parse_extra_properties(parsed_args.extra_properties) ) diff --git a/openstackclient/tests/unit/network/v2/test_network.py b/openstackclient/tests/unit/network/v2/test_network.py index f809cad0af..b2e65f2136 100644 --- a/openstackclient/tests/unit/network/v2/test_network.py +++ b/openstackclient/tests/unit/network/v2/test_network.py @@ -330,6 +330,23 @@ class TestCreateNetworkIdentityV3(TestNetwork): exceptions.CommandError, self.cmd.take_action, parsed_args ) + def test_create_with_provider_segment_without_provider_type(self): + arglist = [ + "--provider-segment", + "123", + self._network.name, + ] + verifylist = [ + ('provider_network_type', None), + ('segmentation_id', "123"), + ('name', self._network.name), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) + class TestCreateNetworkIdentityV2( identity_fakes_v2.FakeClientMixin,