diff options
| author | Harald Jensas <hjensas@redhat.com> | 2017-11-27 21:08:26 +0100 |
|---|---|---|
| committer | Harald Jensås <hjensas@redhat.com> | 2018-06-06 11:56:39 +0200 |
| commit | e8c731547d85b1241c7898d2fb77b8d635901dfd (patch) | |
| tree | fe2194e2344947e7b59b44be48deddef55941d3c /openstackclient/network | |
| parent | c18f93bafeb3304cc275dc466664c9401d722194 (diff) | |
| download | python-openstackclient-e8c731547d85b1241c7898d2fb77b8d635901dfd.tar.gz | |
Allow setting network-segment on subnet update
To enable the possibility to migrate a non-routed network to a
routed network allow updating the segment_id of a subnet.
Change-Id: I3ebae2ff28d5d4e5373ebd1f52194f8c52071b88
Partial-Bug: bug/1692490
Depends-On: I1aee29dfb59e9769ec0f1cb1f5d2933bc5dc0dc5
Diffstat (limited to 'openstackclient/network')
| -rw-r--r-- | openstackclient/network/v2/subnet.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py index 2c71e1e0..b5a8b35a 100644 --- a/openstackclient/network/v2/subnet.py +++ b/openstackclient/network/v2/subnet.py @@ -167,6 +167,7 @@ def convert_entries_to_gateway(entries): def _get_attrs(client_manager, parsed_args, is_create=True): attrs = {} + client = client_manager.network if 'name' in parsed_args and parsed_args.name is not None: attrs['name'] = str(parsed_args.name) @@ -179,7 +180,6 @@ def _get_attrs(client_manager, parsed_args, is_create=True): parsed_args.project_domain, ).id attrs['tenant_id'] = project_id - client = client_manager.network attrs['network_id'] = client.find_network(parsed_args.network, ignore_missing=False).id if parsed_args.subnet_pool is not None: @@ -200,10 +200,10 @@ def _get_attrs(client_manager, parsed_args, is_create=True): attrs['ipv6_ra_mode'] = parsed_args.ipv6_ra_mode if parsed_args.ipv6_address_mode is not None: attrs['ipv6_address_mode'] = parsed_args.ipv6_address_mode - if parsed_args.network_segment is not None: - attrs['segment_id'] = client.find_segment( - parsed_args.network_segment, ignore_missing=False).id + if parsed_args.network_segment is not None: + attrs['segment_id'] = client.find_segment( + parsed_args.network_segment, ignore_missing=False).id if 'gateway' in parsed_args and parsed_args.gateway is not None: gateway = parsed_args.gateway.lower() @@ -559,6 +559,14 @@ class SetSubnet(command.Command): "e.g.: --gateway 192.168.9.1, --gateway none.") ) parser.add_argument( + '--network-segment', + metavar='<network-segment>', + help=_("Network segment to associate with this subnet (name or " + "ID). It is only allowed to set the segment if the current " + "value is `None`, the network must also have only one " + "segment and only one subnet can exist on the network.") + ) + parser.add_argument( '--description', metavar='<description>', help=_("Set subnet description") |
