'Return data about the given fixed IP.'

@wsgi.Controller.api_version('2.1', MAX_PROXY_API_SUPPORT_VERSION)
@extensions.expected_errors((400, 404))
def show(self, req, id):

    context = req.environ['nova.context']
    context.can(fi_policies.BASE_POLICY_NAME)
    attrs = ['network', 'instance']
    try:
        fixed_ip = objects.FixedIP.get_by_address(context, id, expected_attrs=attrs)
    except exception.FixedIpNotFoundForAddress as ex:
        raise webob.exc.HTTPNotFound(explanation=ex.format_message())
    except exception.FixedIpInvalid as ex:
        raise webob.exc.HTTPBadRequest(explanation=ex.format_message())
    fixed_ip_info = {'fixed_ip': {}}
    if (fixed_ip is None):
        msg = (_('Fixed    IP    %s    has    been    deleted') % id)
        raise webob.exc.HTTPNotFound(explanation=msg)
    fixed_ip_info['fixed_ip']['cidr'] = str(fixed_ip.network.cidr)
    fixed_ip_info['fixed_ip']['address'] = str(fixed_ip.address)
    if fixed_ip.instance:
        fixed_ip_info['fixed_ip']['hostname'] = fixed_ip.instance.hostname
        fixed_ip_info['fixed_ip']['host'] = fixed_ip.instance.host
    else:
        fixed_ip_info['fixed_ip']['hostname'] = None
        fixed_ip_info['fixed_ip']['host'] = None
    self._fill_reserved_status(req, fixed_ip, fixed_ip_info)
    return fixed_ip_info
