diff --git a/doc/source/cli/command-objects/network.rst b/doc/source/cli/command-objects/network.rst index 5f20dc3884..220fbf32b5 100644 --- a/doc/source/cli/command-objects/network.rst +++ b/doc/source/cli/command-objects/network.rst @@ -24,6 +24,7 @@ Create new network [--enable | --disable] [--share | --no-share] [--description <description>] + [--mtu <mtu>] [--availability-zone-hint <availability-zone>] [--enable-port-security | --disable-port-security] [--external [--default | --no-default] | --internal] @@ -74,6 +75,12 @@ Create new network *Network version 2 only* +.. option:: --mtu <mtu> + + Set network mtu + + *Network version 2 only* + .. option:: --availability-zone-hint <availability-zone> Availability Zone in which to create this network @@ -353,6 +360,7 @@ Set network properties [--enable | --disable] [--share | --no-share] [--description <description>] + [--mtu <mtu>] [--enable-port-security | --disable-port-security] [--external [--default | --no-default] | --internal] [--provider-network-type <provider-network-type>] @@ -386,6 +394,10 @@ Set network properties Set network description +.. option:: --mtu <mtu> + + Set network mtu + .. option:: --enable-port-security Enable port security by default for ports created on diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 4c1725c5f6..d1c7f005d3 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -107,6 +107,10 @@ def _get_attrs_network(client_manager, parsed_args): if parsed_args.description: attrs['description'] = parsed_args.description + # set mtu + if parsed_args.mtu: + attrs['mtu'] = parsed_args.mtu + # update_external_network_options if parsed_args.internal: attrs['router:external'] = False @@ -217,6 +221,11 @@ class CreateNetwork(common.NetworkAndComputeShowOne): metavar='<description>', help=_("Set network description") ) + parser.add_argument( + '--mtu', + metavar='<mtu>', + help=_("Set network mtu") + ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--availability-zone-hint', @@ -619,6 +628,11 @@ class SetNetwork(command.Command): metavar="<description", help=_("Set network description") ) + parser.add_argument( + '--mtu', + metavar="<mtu", + help=_("Set network mtu") + ) port_security_group = parser.add_mutually_exclusive_group() port_security_group.add_argument( '--enable-port-security', diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py index 08f00d0e89..9f7941a71f 100644 --- a/openstackclient/tests/unit/network/v2/fakes.py +++ b/openstackclient/tests/unit/network/v2/fakes.py @@ -335,6 +335,7 @@ class FakeNetwork(object): 'name': 'network-name-' + uuid.uuid4().hex, 'status': 'ACTIVE', 'description': 'network-description-' + uuid.uuid4().hex, + 'mtu': '1350', 'tenant_id': 'project-id-' + uuid.uuid4().hex, 'admin_state_up': True, 'shared': False, diff --git a/openstackclient/tests/unit/network/v2/test_network.py b/openstackclient/tests/unit/network/v2/test_network.py index 357088f345..9f4a6accf8 100644 --- a/openstackclient/tests/unit/network/v2/test_network.py +++ b/openstackclient/tests/unit/network/v2/test_network.py @@ -64,6 +64,7 @@ class TestCreateNetworkIdentityV3(TestNetwork): 'ipv4_address_scope', 'ipv6_address_scope', 'is_default', + 'mtu', 'name', 'port_security_enabled', 'project_id', @@ -87,6 +88,7 @@ class TestCreateNetworkIdentityV3(TestNetwork): _network.ipv4_address_scope_id, _network.ipv6_address_scope_id, _network.is_default, + _network.mtu, _network.name, _network.is_port_security_enabled, _network.project_id, @@ -149,6 +151,7 @@ class TestCreateNetworkIdentityV3(TestNetwork): "--disable", "--share", "--description", self._network.description, + "--mtu", self._network.mtu, "--project", self.project.name, "--project-domain", self.domain.name, "--availability-zone-hint", "nova", @@ -165,6 +168,7 @@ class TestCreateNetworkIdentityV3(TestNetwork): ('disable', True), ('share', True), ('description', self._network.description), + ('mtu', self._network.mtu), ('project', self.project.name), ('project_domain', self.domain.name), ('availability_zone_hints', ["nova"]), @@ -188,6 +192,7 @@ class TestCreateNetworkIdentityV3(TestNetwork): 'name': self._network.name, 'shared': True, 'description': self._network.description, + 'mtu': self._network.mtu, # TODO(dtroyer): Remove tenant_id when we clean up the SDK refactor 'tenant_id': self.project.id, 'project_id': self.project.id, @@ -286,6 +291,7 @@ class TestCreateNetworkIdentityV2(TestNetwork): 'ipv4_address_scope', 'ipv6_address_scope', 'is_default', + 'mtu', 'name', 'port_security_enabled', 'project_id', @@ -309,6 +315,7 @@ class TestCreateNetworkIdentityV2(TestNetwork): _network.ipv4_address_scope_id, _network.ipv6_address_scope_id, _network.is_default, + _network.mtu, _network.name, _network.is_port_security_enabled, _network.project_id, @@ -1023,6 +1030,7 @@ class TestShowNetwork(TestNetwork): 'ipv4_address_scope', 'ipv6_address_scope', 'is_default', + 'mtu', 'name', 'port_security_enabled', 'project_id', @@ -1046,6 +1054,7 @@ class TestShowNetwork(TestNetwork): _network.ipv4_address_scope_id, _network.ipv6_address_scope_id, _network.is_default, + _network.mtu, _network.name, _network.is_port_security_enabled, _network.project_id, diff --git a/releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml b/releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml new file mode 100644 index 0000000000..8fadb6a8ac --- /dev/null +++ b/releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add ``--mtu`` option to ``network create`` and ``network set`` + commands, allowing CLI users to set the MTU for Neutron networks.