Ensure to decode bytes or fail
Ensure to decode bytes or fail

The commit fcf289797c063088f9003359dfd1c7d4f41ed5ef introduces the
pattern:

  if isinstance(line, bytes):
    try:
      line = line.decode(encoding='utf-8')
    except UnicodeError:
      pass
  # concat line with a string

which is not working in PY3K if an UnicodeError is raised because line
is not decoded and concatened to a string.

This change delegates decoding to safe_decode[1] which returns a text
object or raises an error.

[1] oslo_utils.encodeutils

Closes-Bug: #1503415
Related-Bug: #1499004
Change-Id: I16b8013f33aa3efad65be8040d3210120e047bbd

openstack/python-neutronclient,Juniper/python-neutronclient,eayunstack/python-neutronclient,noironetworks/python-neutronclient,noironetworks/python-neutronclient,huntxu/python-neutronclient,rackerlabs/rackspace-python-neutronclient,rackerlabs/rackspace-python-neutronclient,Juniper/python-neutronclient,huntxu/python-neutronclient,eayunstack/python-neutronclient,openstack/python-neutronclient