← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1263551] [NEW] neutron port-list -f csv outputs poorly formatted JSON strings.

 

Public bug reported:

I have two IPs attached to a port. One IPv4 address and one IPv6
address:

$ neutron port-list -f table | grep '..relevant lines..'
| f59ec695-d52d-40b0-9d7c-1d8ebe315305 |                                | fa:16:3e:7d:99:3a | {"subnet_id": "1bb2eda5-5860-4864-84a3-4e31e3a0f130", "ip_address": "192.168.2.102"}       |
|                                      |                                |                   | {"subnet_id": "81aa0d62-4b8d-4494-98c8-50b434b067d8", "ip_address": "2607:f088:0:2::1338"} |

$ neutron port-list -f csv | grep '..relevant lines..'
"f59ec695-d52d-40b0-9d7c-1d8ebe315305","","fa:16:3e:7d:99:3a","{""subnet_id"": ""1bb2eda5-5860-4864-84a3-4e31e3a0f130"", ""ip_address"": ""192.168.2.102""}
{""subnet_id"": ""81aa0d62-4b8d-4494-98c8-50b434b067d8"", ""ip_address"": ""2607:f088:0:2::1338""}"

Running this through a CSV filter:

$VAR1 = '10fd0850-7799-4ac7-ae54-09ecb3ac8b8f';
$VAR2 = '';
$VAR3 = 'fa:16:3e:37:ac:cc';
$VAR4 = '{"subnet_id": "1bb2eda5-5860-4864-84a3-4e31e3a0f130", "ip_address": "192.168.2.104"}
{"subnet_id": "81aa0d62-4b8d-4494-98c8-50b434b067d8", "ip_address": "2607:f088:0:2::133a"}';

Finally, attempting to parse the JSON string ($VAR4) in perl:

garbage after JSON object, at character offset 85 (before "{"subnet_id":
"81aa0...") at ./neutron_ports line 48, <$NEUTRON_PORTS> line 15.

Indeed, this isn't perl's fault. Putting the string through
http://jsonlint.com/ comes up with a similar error.

The two strings need to be contained in a larger structure: [{...},{...}]
instead of just concatenated together: {...}{...}

Or the output specification needs to be changed.

Package/version information:
# dpkg -l | awk '/neutron/ {print $3 " " $2}'
1:2013.2-0ubuntu1 neutron-common
1:2013.2-0ubuntu1 neutron-dhcp-agent
1:2013.2-0ubuntu1 neutron-metadata-agent
1:2013.2-0ubuntu1 neutron-plugin-linuxbridge
1:2013.2-0ubuntu1 neutron-plugin-linuxbridge-agent
1:2013.2-0ubuntu1 neutron-plugin-openvswitch
1:2013.2-0ubuntu1 neutron-server
1:2013.2-0ubuntu1 python-neutron
1:2.3.0-0ubuntu1 python-neutronclient

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1263551

Title:
  neutron port-list -f csv outputs poorly formatted JSON strings.

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  I have two IPs attached to a port. One IPv4 address and one IPv6
  address:

  $ neutron port-list -f table | grep '..relevant lines..'
  | f59ec695-d52d-40b0-9d7c-1d8ebe315305 |                                | fa:16:3e:7d:99:3a | {"subnet_id": "1bb2eda5-5860-4864-84a3-4e31e3a0f130", "ip_address": "192.168.2.102"}       |
  |                                      |                                |                   | {"subnet_id": "81aa0d62-4b8d-4494-98c8-50b434b067d8", "ip_address": "2607:f088:0:2::1338"} |

  $ neutron port-list -f csv | grep '..relevant lines..'
  "f59ec695-d52d-40b0-9d7c-1d8ebe315305","","fa:16:3e:7d:99:3a","{""subnet_id"": ""1bb2eda5-5860-4864-84a3-4e31e3a0f130"", ""ip_address"": ""192.168.2.102""}
  {""subnet_id"": ""81aa0d62-4b8d-4494-98c8-50b434b067d8"", ""ip_address"": ""2607:f088:0:2::1338""}"

  Running this through a CSV filter:

  $VAR1 = '10fd0850-7799-4ac7-ae54-09ecb3ac8b8f';
  $VAR2 = '';
  $VAR3 = 'fa:16:3e:37:ac:cc';
  $VAR4 = '{"subnet_id": "1bb2eda5-5860-4864-84a3-4e31e3a0f130", "ip_address": "192.168.2.104"}
  {"subnet_id": "81aa0d62-4b8d-4494-98c8-50b434b067d8", "ip_address": "2607:f088:0:2::133a"}';

  Finally, attempting to parse the JSON string ($VAR4) in perl:

  garbage after JSON object, at character offset 85 (before
  "{"subnet_id": "81aa0...") at ./neutron_ports line 48,
  <$NEUTRON_PORTS> line 15.

  Indeed, this isn't perl's fault. Putting the string through
  http://jsonlint.com/ comes up with a similar error.

  The two strings need to be contained in a larger structure: [{...},{...}]
  instead of just concatenated together: {...}{...}

  Or the output specification needs to be changed.

  Package/version information:
  # dpkg -l | awk '/neutron/ {print $3 " " $2}'
  1:2013.2-0ubuntu1 neutron-common
  1:2013.2-0ubuntu1 neutron-dhcp-agent
  1:2013.2-0ubuntu1 neutron-metadata-agent
  1:2013.2-0ubuntu1 neutron-plugin-linuxbridge
  1:2013.2-0ubuntu1 neutron-plugin-linuxbridge-agent
  1:2013.2-0ubuntu1 neutron-plugin-openvswitch
  1:2013.2-0ubuntu1 neutron-server
  1:2013.2-0ubuntu1 python-neutron
  1:2.3.0-0ubuntu1 python-neutronclient

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1263551/+subscriptions


Follow ups

References