summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/common.py18
-rw-r--r--openstackclient/network/v2/address_scope.py11
-rw-r--r--openstackclient/network/v2/port.py6
-rw-r--r--openstackclient/network/v2/router.py19
-rw-r--r--openstackclient/network/v2/security_group_rule.py4
-rw-r--r--openstackclient/network/v2/subnet.py10
6 files changed, 51 insertions, 17 deletions
diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py
index 16cc7379..f62840fc 100644
--- a/openstackclient/network/common.py
+++ b/openstackclient/network/common.py
@@ -12,6 +12,7 @@
#
import abc
+import logging
from osc_lib.command import command
from osc_lib import exceptions
@@ -20,6 +21,9 @@ import six
from openstackclient.i18n import _
+LOG = logging.getLogger(__name__)
+
+
@six.add_metaclass(abc.ABCMeta)
class NetworkAndComputeCommand(command.Command):
"""Network and Compute Command
@@ -39,10 +43,10 @@ class NetworkAndComputeCommand(command.Command):
parsed_args)
def get_parser(self, prog_name):
- self.log.debug('get_parser(%s)', prog_name)
+ LOG.debug('get_parser(%s)', prog_name)
parser = super(NetworkAndComputeCommand, self).get_parser(prog_name)
parser = self.update_parser_common(parser)
- self.log.debug('common parser: %s', parser)
+ LOG.debug('common parser: %s', parser)
if self.app.client_manager.is_network_endpoint_enabled():
return self.update_parser_network(parser)
else:
@@ -102,7 +106,7 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand):
"name_or_id": r,
"e": e,
}
- self.app.log.error(msg)
+ LOG.error(msg)
ret += 1
if ret:
@@ -134,10 +138,10 @@ class NetworkAndComputeLister(command.Lister):
parsed_args)
def get_parser(self, prog_name):
- self.log.debug('get_parser(%s)', prog_name)
+ LOG.debug('get_parser(%s)', prog_name)
parser = super(NetworkAndComputeLister, self).get_parser(prog_name)
parser = self.update_parser_common(parser)
- self.log.debug('common parser: %s', parser)
+ LOG.debug('common parser: %s', parser)
if self.app.client_manager.is_network_endpoint_enabled():
return self.update_parser_network(parser)
else:
@@ -185,10 +189,10 @@ class NetworkAndComputeShowOne(command.ShowOne):
parsed_args)
def get_parser(self, prog_name):
- self.log.debug('get_parser(%s)', prog_name)
+ LOG.debug('get_parser(%s)', prog_name)
parser = super(NetworkAndComputeShowOne, self).get_parser(prog_name)
parser = self.update_parser_common(parser)
- self.log.debug('common parser: %s', parser)
+ LOG.debug('common parser: %s', parser)
if self.app.client_manager.is_network_endpoint_enabled():
return self.update_parser_network(parser)
else:
diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py
index bc1a96c3..6cd13f8c 100644
--- a/openstackclient/network/v2/address_scope.py
+++ b/openstackclient/network/v2/address_scope.py
@@ -13,6 +13,8 @@
"""Address scope action implementations"""
+import logging
+
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
@@ -21,6 +23,9 @@ from openstackclient.i18n import _
from openstackclient.identity import common as identity_common
+LOG = logging.getLogger(__name__)
+
+
def _get_columns(item):
columns = list(item.keys())
if 'tenant_id' in columns:
@@ -122,9 +127,9 @@ class DeleteAddressScope(command.Command):
client.delete_address_scope(obj)
except Exception as e:
result += 1
- self.app.log.error(_("Failed to delete address scope with "
- "name or ID '%(scope)s': %(e)s")
- % {'scope': scope, 'e': e})
+ LOG.error(_("Failed to delete address scope with "
+ "name or ID '%(scope)s': %(e)s"),
+ {'scope': scope, 'e': e})
if result > 0:
total = len(parsed_args.address_scope)
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index a25bdf8d..5d1431b5 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -320,9 +320,9 @@ class DeletePort(command.Command):
client.delete_port(obj)
except Exception as e:
result += 1
- self.app.log.error(_("Failed to delete port with "
- "name or ID '%(port)s': %(e)s")
- % {'port': port, 'e': e})
+ LOG.error(_("Failed to delete port with "
+ "name or ID '%(port)s': %(e)s"),
+ {'port': port, 'e': e})
if result > 0:
total = len(parsed_args.port)
diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py
index 92ecf84d..6271a878 100644
--- a/openstackclient/network/v2/router.py
+++ b/openstackclient/network/v2/router.py
@@ -19,6 +19,7 @@ import logging
from osc_lib.cli import parseractions
from osc_lib.command import command
+from osc_lib import exceptions
from osc_lib import utils
from openstackclient.i18n import _
@@ -222,9 +223,23 @@ class DeleteRouter(command.Command):
def take_action(self, parsed_args):
client = self.app.client_manager.network
+ result = 0
+
for router in parsed_args.router:
- obj = client.find_router(router)
- client.delete_router(obj)
+ try:
+ obj = client.find_router(router, ignore_missing=False)
+ client.delete_router(obj)
+ except Exception as e:
+ result += 1
+ LOG.error(_("Failed to delete router with "
+ "name or ID '%(router)s': %(e)s")
+ % {'router': router, 'e': e})
+
+ if result > 0:
+ total = len(parsed_args.router)
+ msg = (_("%(result)s of %(total)s routers failed "
+ "to delete.") % {'result': result, 'total': total})
+ raise exceptions.CommandError(msg)
class ListRouter(command.Lister):
diff --git a/openstackclient/network/v2/security_group_rule.py b/openstackclient/network/v2/security_group_rule.py
index 18863223..e3be44ec 100644
--- a/openstackclient/network/v2/security_group_rule.py
+++ b/openstackclient/network/v2/security_group_rule.py
@@ -526,8 +526,8 @@ class ShowSecurityGroupRule(common.NetworkAndComputeShowOne):
break
if obj is None:
- msg = _("Could not find security group rule with ID ") + \
- parsed_args.rule
+ msg = _("Could not find security group rule "
+ "with ID '%s'") % parsed_args.rule
raise exceptions.CommandError(msg)
# NOTE(rtheis): Format security group rule
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index a2e32622..752923f7 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -142,6 +142,9 @@ 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 'network_segment' in parsed_args:
+ 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()
@@ -255,6 +258,13 @@ class CreateSubnet(command.ShowOne):
help=_("IPv6 address mode, "
"valid modes: [dhcpv6-stateful, dhcpv6-stateless, slaac]")
)
+ if self.app.options.os_beta_command:
+ parser.add_argument(
+ '--network-segment',
+ metavar='<network-segment>',
+ help=_("Network segment to associate with this subnet "
+ "(ID only)")
+ )
parser.add_argument(
'--network',
required=True,