From 05521bf84cb108c73bb36b270569b1986ad13f53 Mon Sep 17 00:00:00 2001
From: Bernard Cafarelli <bcafarel@redhat.com>
Date: Mon, 28 Jan 2019 14:17:46 +0100
Subject: [PATCH] Remove str() when setting network objects names
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Most network commands use str() on name argument, which fails on python
2 with Unicode characters. This comes from parsed arguments so does not
actually need this call.

Sample command failing with current code:
openstack network create test_unicodeā„¢

Change-Id: Ie10b67864c912ee5c33e90b10c3d9705ee8307e7
Story: 2004356
Task: 27955
---
 openstackclient/network/v2/network.py            | 4 ++--
 openstackclient/network/v2/network_agent.py      | 2 +-
 openstackclient/network/v2/network_qos_policy.py | 2 +-
 openstackclient/network/v2/port.py               | 2 +-
 openstackclient/network/v2/router.py             | 2 +-
 openstackclient/network/v2/subnet.py             | 2 +-
 openstackclient/network/v2/subnet_pool.py        | 2 +-
 7 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index 0fdf62c95b..f5123932a3 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -72,7 +72,7 @@ def _get_columns_compute(item):
 def _get_attrs_network(client_manager, parsed_args):
     attrs = {}
     if parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     if parsed_args.enable:
         attrs['admin_state_up'] = True
     if parsed_args.disable:
@@ -143,7 +143,7 @@ def _get_attrs_network(client_manager, parsed_args):
 def _get_attrs_compute(client_manager, parsed_args):
     attrs = {}
     if parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     if parsed_args.share:
         attrs['share_subnet'] = True
     if parsed_args.no_share:
diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py
index ba2a2633ba..46e8d4b21c 100644
--- a/openstackclient/network/v2/network_agent.py
+++ b/openstackclient/network/v2/network_agent.py
@@ -351,7 +351,7 @@ class SetNetworkAgent(command.Command):
         obj = client.get_agent(parsed_args.network_agent)
         attrs = {}
         if parsed_args.description is not None:
-            attrs['description'] = str(parsed_args.description)
+            attrs['description'] = parsed_args.description
         if parsed_args.enable:
             attrs['is_admin_state_up'] = True
             attrs['admin_state_up'] = True
diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py
index 2c6b841b49..fd5ff93771 100644
--- a/openstackclient/network/v2/network_qos_policy.py
+++ b/openstackclient/network/v2/network_qos_policy.py
@@ -38,7 +38,7 @@ def _get_columns(item):
 def _get_attrs(client_manager, parsed_args):
     attrs = {}
     if 'name' in parsed_args and parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     if 'description' in parsed_args and parsed_args.description is not None:
         attrs['description'] = parsed_args.description
     if parsed_args.share:
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index 1001e6cf41..f6d6fc7280 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -134,7 +134,7 @@ def _get_attrs(client_manager, parsed_args):
         attrs['dns_name'] = parsed_args.dns_name
     # It is possible that name is not updated during 'port set'
     if parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     # The remaining options do not support 'port set' command, so they require
     # additional check
     if 'network' in parsed_args and parsed_args.network is not None:
diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py
index 1b7d6374a9..2ec3e2f094 100644
--- a/openstackclient/network/v2/router.py
+++ b/openstackclient/network/v2/router.py
@@ -85,7 +85,7 @@ def _get_columns(item):
 def _get_attrs(client_manager, parsed_args):
     attrs = {}
     if parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     if parsed_args.enable:
         attrs['admin_state_up'] = True
     if parsed_args.disable:
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index d252a7a51d..5f8113bb8d 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -169,7 +169,7 @@ 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)
+        attrs['name'] = parsed_args.name
 
     if is_create:
         if 'project' in parsed_args and parsed_args.project is not None:
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index 81765ca17e..d8c06eb882 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -52,7 +52,7 @@ def _get_attrs(client_manager, parsed_args):
     network_client = client_manager.network
 
     if parsed_args.name is not None:
-        attrs['name'] = str(parsed_args.name)
+        attrs['name'] = parsed_args.name
     if parsed_args.prefixes is not None:
         attrs['prefixes'] = parsed_args.prefixes
     if parsed_args.default_prefix_length is not None: