def format_raw(self, location, indent="", embedded=True,
                   indirect_attrs=True):
        details = [indent + "{0:c}: {0.name}".format(location)]
        if location.fullname:
            details.append(indent + "  Fullname: {}".format(location.fullname))
        if hasattr(location, 'timezone'):
            details.append(indent + "  Timezone: {}".format(location.timezone))
        # Rack could have been a separate formatter, but since this is
        # the only difference...
        if isinstance(location, Rack):
            details.append(indent + "  Row: {}".format(location.rack_row))
            details.append(indent + "  Column: {}".format(location.rack_column))
        elif isinstance(location, Building):
            details.append(indent + "  Address: {}".format(location.address))
            details.append(indent + "  Next Rack ID: {}".format(location.next_rackid))
            details.append(indent + "  Network Devices Require Racks: {}".format(location.netdev_rack))
        elif isinstance(location, Room) and location.floor:
            details.append(indent + "  Floor: {}".format(location.floor))
        if location.uri:
            details.append(indent + "  Location URI: {}".format(location.uri))
        if location.comments:
            details.append(indent + "  Comments: {}".format(location.comments))
        if location.parents:
            details.append(indent + "  Location Parents: [{}]".format(", ".join(format(p) for p in location.parents)))
        if location.default_dns_domain:
            details.append(indent + "  Default DNS Domain: {0.name}".format(location.default_dns_domain))
        return "\n".join(details)