def METHOD_NAME(farm_id):
    """Retrieve farm geometry and properties from GeoServer.
    :param farm_id: The farm farm ID.
    :type farm_id: basestring
    :returns: Dictionary that contains envelope, farm id, etc
    :rtype: dict
    """
    url = settings.FARM_GEOSERVER_URL
    parameters = {
        'SERVICE': 'WFS',
        'VERSION': '1.0.0',
        'REQUEST': 'GETFEATURE',
        'TYPENAME': settings.FARM_WORKSPACE + ':' + settings.FARM_LAYER_NAME,
        'CQL_FILTER': "%s = '%s'" % (
            settings.FARM_ID_COLUMN, farm_id),
        'COUNT': 1
    }
    query_dict = QueryDict('', mutable=True)
    query_dict.update(parameters)
    if '?' in url:
        url = url + '&' + query_dict.urlencode()
    else:
        url = url + '?' + query_dict.urlencode()
    request = requests.get(url)
    content = request.content
    return parse_farm(content)