[GeoNode-devel] Layer Upload doesn't work in GeoNode 2.8.1rc0: "AttributeError at /layers/upload 'NoneType' object has no attribute 'charset'"

Michael Härtel haerta at haerta.de
Fri May 3 15:05:06 PDT 2019


Hello List,

I followed the instructions from here to install geonode:

http://docs.geonode.org/en/latest/tutorials/install_and_admin/geonode_install/install_geonode_application.html

Despite the fact that the url to Geonode from the tutorial 
("--template=https://github.com/GeoNode/geonode-project/archive/2.8.0.zip") 
is not available and I had a hard time to find a URL that worked for me 
(I used the ZIP from GIT/2.8.x branch), I eventuelly got everything 
working apart from the layer upload.

I have no idea, how to debug this issue:

  * The apache error.log does not show any entry.
  * The apache access.log only shows an error 500
  * The database doesn't show any relevant entry
  * GeoServer doesn't show any relevant entry (Even with VERBODE logging).

It seems that the file never reaches the server so the "saved_layer" 
variable is empty/none/null (I am not a Python programmer) in line 294 
of "/home/geo/Envs/geonode/src/geonode/geonode/layers/views.py"

Where is the relevant configuration?

  * the directory and sub directories of
    "/home/geonode/my_geonode/my_geonode/uploaded" has correct
    permissions (even tested with "chmod -R ugo+rwx
    /home/geonode/my_geonode/my_geonode/uploaded"
  * the apache file /etc/apache2/sites-available/geonode.conf has
    correct entries:
    Alias /uploaded/ /home/geonode/my_geonode/my_geonode/uploaded/
    <Directory "/home/geonode/my_geonode/my_geonode/uploaded/layers/">
    ..."

Is there anyone who can tell me what else to check or how to debug this 
issue?

When I select some shape files and click "upload files", the DEBUG 
output on the web page looks like this:

AttributeError at /layers/upload 'NoneType' object has no attribute 
'charset' Request Method: POST Request URL: 
http://geoportal.dummy.org/layers/upload Django Version: 1.8.19 Python 
Executable: /usr/bin/python Python Version: 2.7.12 Python Path: 
['/home/geonode/my_geonode', 
'/home/geo/Envs/geonode/lib/python2.7/site-packages', 
'/home/geo/Envs/geonode/src/geonode', '/home/dummygeonode/my_geonode', 
'/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', '/var/www', '/var/www'] 
Server time: Fri, 3 May 2019 21:36:06 +0000 Installed Applications: 
('modeltranslation', 'django.contrib.auth', 
'django.contrib.contenttypes', 'django.contrib.sessions', 
'django.contrib.sites', 'django.contrib.admin', 
'django.contrib.sitemaps', 'django.contrib.staticfiles', 
'django.contrib.messages', 'django.contrib.humanize', 
'django.contrib.gis', 'dj_pagination', 'taggit', 'treebeard', 
'geoexplorer', 'leaflet', 'bootstrap3_datetime', 'django_extensions', 
'django_basic_auth', 'autocomplete_light', 'mptt', 'storages', 
'floppyforms', 'pinax_theme_bootstrap', 'django_forms_bootstrap', 
'avatar', 'dialogos', 'agon_ratings', 'announcements', 'actstream', 
'user_messages', 'tastypie', 'polymorphic', 'guardian', 
'oauth2_provider', 'corsheaders', 'invitations', 'allauth', 
'allauth.account', 'allauth.socialaccount', 'rest_framework', 'geonode', 
'geonode.api', 'geonode.base', 'geonode.layers', 'geonode.maps', 
'geonode.documents', 'geonode.security', 'geonode.catalogue', 
'geonode.people', 'geonode.client', 'geonode.themes', 'geonode.proxy', 
'geonode.social', 'geonode.groups', 'geonode.services', 
'geonode.geoserver', 'geonode.upload', 'geonode.tasks', 
'geonode.messaging', 'geonode.contrib.metadataxsl', 
'geonode.contrib.api_basemaps', 'geonode.contrib.ows_api', 
'pinax.notifications', 'geonode.contrib.monitoring', 'my_geonode', , ) 
Installed Middleware: ('corsheaders.middleware.CorsMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'dj_pagination.middleware.PaginationMiddleware', 
'django.middleware.locale.LocaleMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
'django.middleware.security.SecurityMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'oauth2_provider.middleware.OAuth2TokenMiddleware', 
'django.middleware.security.SecurityMiddleware', 
'geonode.contrib.monitoring.middleware.MonitoringMiddleware') Traceback: 
File 
"/home/geo/Envs/geonode/lib/python2.7/site-packages/django/core/handlers/base.py" 
in get_response 132. response = wrapped_callback(request, 
*callback_args, **callback_kwargs) File 
"/home/geo/Envs/geonode/lib/python2.7/site-packages/django/contrib/auth/decorators.py" 
in _wrapped_view 22. return view_func(request, *args, **kwargs) File 
"/home/geo/Envs/geonode/src/geonode/geonode/layers/views.py" in 
layer_upload 294. out[_k] = 
out[_k].decode(saved_layer.charset).encode("utf-8") Exception Type: 
AttributeError at /layers/upload Exception Value: 'NoneType' object has 
no attribute 'charset' Request information: GET: No GET data POST: 
charset = u'UTF-8' permissions = 
u'{"users":{"AnonymousUser":["view_resourcebase","download_resourcebase"]},"groups":{}}' 
FILES: shx_file = base_file = shp_file = dbf_file = prj_file = COOKIES: 
csrftoken = 'RCPSALmmUm4LV9RF7wWzsqxGFfdK1XDn' sessionid = 
'h0bcxlw4nutyik4kb63ao9d3pzxud6hq' _ga = 'GA1.2.1615965258.1556718183' 
META: mod_wsgi.listener_port = '80' HTTP_REFERER = 
'http://geoportal.dummy.org/layers/upload' mod_wsgi.listener_host = '' 
HTTP_REVERSE_VIA = 'IPGW2' CONTEXT_DOCUMENT_ROOT = 
'/home/geonode/my_geonode/my_geonode' SERVER_SOFTWARE = 'Apache/2.4.18 
(Ubuntu)' SCRIPT_NAME = u'' mod_wsgi.enable_sendfile = '0' 
HTTP_X_CSRFTOKEN = 'RCPSALmmUm4LV9RF7wWzsqxGFfdK1XDn' SERVER_SIGNATURE = '
Apache/2.4.18 (Ubuntu) Server at geoportal.dummy.org Port 80
\n' REQUEST_METHOD = 'POST' PATH_INFO = u'/layers/upload' 
SERVER_PROTOCOL = 'HTTP/1.1' QUERY_STRING = '' CONTENT_LENGTH = '4451' 
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) 
Gecko/20100101 Firefox/66.0' HTTP_CONNECTION = 'Keep-Alive' HTTP_COOKIE 
= 'csrftoken=RCPSALmmUm4LV9RF7wWzsqxGFfdK1XDn; 
_ga=GA1.2.1615965258.1556718183; 
sessionid=h0bcxlw4nutyik4kb63ao9d3pzxud6hq' SERVER_NAME = 
'geoportal.dummy.org' REMOTE_ADDR = '172.30.1.13' 
mod_wsgi.handler_script = '' mod_wsgi.request_handler = 'wsgi-script' 
apache.version = wsgi.url_scheme = 'http' PATH_TRANSLATED = 
'/home/geonode/my_geonode/my_geonode/wsgi.py/layers/upload' SERVER_PORT 
= '80' mod_wsgi.queue_start = '1556919366052407' wsgi.multiprocess = 
True mod_wsgi.input_chunked = '0' SERVER_ADDR = '172.30.1.167' 
DOCUMENT_ROOT = '/home/geonode/my_geonode/my_geonode' 
mod_wsgi.process_group = 'geonode' HTTP_X_REQUESTED_WITH = 
'XMLHttpRequest' mod_wsgi.daemon_connects = '1' SCRIPT_FILENAME = 
'/home/geonode/my_geonode/my_geonode/wsgi.py' SERVER_ADMIN = 
'webmaster at localhost' wsgi.input = HTTP_HOST = 'geoportal.dummy.org' 
CONTEXT_PREFIX = '' wsgi.multithread = True mod_wsgi.callable_object = 
'application' mod_wsgi.daemon_restarts = '0' REQUEST_URI = 
'/layers/upload' HTTP_ACCEPT = '*/*' wsgi.file_wrapper = '' wsgi.version 
= GATEWAY_INTERFACE = 'CGI/1.1' wsgi.run_once = False wsgi.errors = 
REMOTE_PORT = '25591' HTTP_ACCEPT_LANGUAGE = 'en-GB,en;q=0.5' 
REQUEST_SCHEME = 'http' mod_wsgi.version = mod_wsgi.script_start = 
'1556919366052600' CONTENT_TYPE = 'multipart/form-data; 
boundary=---------------------------75853149526340' 
mod_wsgi.application_group = 'geoportal.cgiarad.org|' 
mod_wsgi.script_reloading = '1' mod_wsgi.request_start = 
'1556919366052122' CSRF_COOKIE = u'RCPSALmmUm4LV9RF7wWzsqxGFfdK1XDn' 
mod_wsgi.daemon_start = '1556919366052568' Settings: Using settings 
module my_geonode.settings BROKER_TRANSPORT_OPTIONS = {'fanout_prefix': 
True, 'fanout_patterns': True, 'visibility_timeout': 86400, 
'socket_timeout': 60} EMAIL_USE_TLS = False CELERY_SEND_TASK_SENT_EVENT 
= True DOWNLOAD_FORMATS_METADATA = ['Atom', 'DIF', 'Dublin Core', 
'ebRIM', 'FGDC', 'ISO', 'ISO with XSL'] SESSION_SERIALIZER = 
'django.contrib.sessions.serializers.PickleSerializer' 
ACCOUNT_EMAIL_REQUIRED = True OGC_SERVER_DEFAULT_USER = 'admin' 
MESSAGE_STORAGE = 
'django.contrib.messages.storage.fallback.FallbackStorage' 
WSGI_APPLICATION = 'my_geonode.wsgi.application' SESSION_COOKIE_NAME = 
'sessionid' CELERY_BROKER_URL = 'memory://' VERSION = '2.8.1rc0' 
AWS_BUCKET_NAME = '' ACCOUNT_CONFIRM_EMAIL_ON_GET = True 
EMAIL_SSL_KEYFILE = u'********************' SERVER_EMAIL = 
'root at localhost' ACCOUNT_EMAIL_VERIFICATION = 'optional' 
FIRST_DAY_OF_WEEK = 0 CACHES = {'default': {'BACKEND': 
'django.core.cache.backends.dummy.DummyCache'}} CKAN_ORIGINS = [{'url': 
'https://data.hdx.rwlabs.org/dataset/new?title={name}&dataset_date={date}¬es={abstract}&caveats={caveats}', 
'css_class': 'hdx', 'label': 'Humanitarian Data Exchange (HDX)'}] 
SESSION_COOKIE_PATH = '/' UNOCONV_ENABLE = 1 MISSING_THUMBNAIL = 
'geonode/img/missing_thumb.png' MODELTRANSLATION_FALLBACK_LANGUAGES = 
'en' PINAX_NOTIFICATIONS_HOOKSET = CELERY_TASK_IGNORE_RESULT = True 
DEFAULT_INDEX_TABLESPACE = '' MONITORING_HOST_NAME = 'localhost' 
THESAURI = [] USE_X_FORWARDED_HOST = False TWITTER_HASHTAGS = 
['geonode'] PUBLIC_GEOSERVER = {'source': {'url': 
'http://localhost:8080/geoserver/ows', 'restUrl': '/gs/rest', 
'attribution': '© http://localhost:8000/', 'ptype': 'gxp_wmscsource', 
'title': 'GeoServer - Public Layers'}} GUARDIAN_GET_INIT_ANONYMOUS_USER 
= 'geonode.people.models.get_anonymous_user_instance' CSRF_COOKIE_DOMAIN 
= None FILE_CHARSET = 'utf-8' DEBUG = True SESSION_FILE_PATH = None 
DISPLAY_COMMENTS = 1 DATABASE_ENGINE = 'postgresql_psycopg2' 
STATICFILES_DIRS = ['/etc/geonode/media', 
'/home/geo/Envs/geonode/src/geonode/geonode/static', 
'/home/geonode/my_geonode/my_geonode/static'] 
CELERY_TASK_CREATE_MISSING_QUEUES = True SECURE_PROXY_SSL_HEADER = None 
AWS_SECRET_ACCESS_KEY = u'********************' 
DEBUG_PROPAGATE_EXCEPTIONS = False MONTH_DAY_FORMAT = 'F j' 
SEARCH_FILTERS = {'REGION_ENABLED': True, 'EXTENT_ENABLED': True, 
'DATE_ENABLED': True, 'KEYWORDS_ENABLED': u'********************', 
'CATEGORIES_ENABLED': True, 'TYPE_ENABLED': True, 'T_KEYWORDS_ENABLED': 
u'********************', 'OWNERS_ENABLED': True, 'H_KEYWORDS_ENABLED': 
u'********************', 'TEXT_ENABLED': True} THUMBNAIL_GENERATOR = 
'geonode.layers.utils.create_gs_thumbnail_geonode' AUTH_USER_MODEL = 
'people.Profile' USE_THOUSAND_SEPARATOR = False UNOCONV_TIMEOUT = 30 
CELERY_DISABLE_RATE_LIMITS = False CSRF_FAILURE_VIEW = 
'django.views.csrf.csrf_failure' CELERY_WORKER_SEND_TASK_EVENTS = True 
CELERY_TASK_SERIALIZER = 'json' DECIMAL_SEPARATOR = '.' 
IGNORABLE_404_URLS = NOSE_ARGS = ['--nocapture', '--detailed-errors'] 
TEMPLATE_STRING_IF_INVALID = '' FIXTURE_DIRS = SOCIALACCOUNT_AUTO_SIGNUP 
= False PINAX_NOTIFICATIONS_BACKENDS = {(0, 'email'): } 
FORMAT_MODULE_PATH = None ALLOWED_DOCUMENT_TYPES = ['doc', 'docx', 
'gif', 'jpg', 'jpeg', 'ods', 'odt', 'odp', 'pdf', 'png', 'ppt', 'pptx', 
'rar', 'sld', 'tif', 'tiff', 'txt', 'xls', 'xlsx', 'xml', 'zip', 'gz', 
'qml'] RESOURCE_PUBLISHING = False DISALLOWED_USER_AGENTS = 
DEFAULT_LAYER_FORMAT = 'image/png' THUNDERFOREST_BASEMAPS = False 
CELERY_REDIRECT_STDOUTS = True SITENAME = 'my_geonode' 
CELERY_MESSAGE_COMPRESSION = 'gzip' USE_ETAGS = False DISPLAY_WMS_LINKS 
= True GEOTIFF_IO_ENABLED = 0 PINAX_NOTIFICATIONS_GET_LANGUAGE_MODEL = 
at 0x7f8c98343c80> USE_TZ = True SHORT_DATETIME_FORMAT = 'm/d/Y P' 
LANGUAGE_COOKIE_PATH = '/' MAX_DOCUMENT_SIZE = 2 YEAR_MONTH_FORMAT = 'F 
Y' AWS_QUERYSTRING_AUTH = False CELERY_SEND_TASK_EVENTS = True 
LANGUAGE_CODE = 'en' ROOT_URLCONF = 'my_geonode.urls' LOGIN_URL = 
'/account/login/' DEFAULT_MAP_CENTER = DATABASE_HOST = 'localhost' 
TEMPLATE_DIRS = BROKER_HEARTBEAT = 0 SESSION_CACHE_ALIAS = 'default' 
SESSION_COOKIE_DOMAIN = None PINAX_NOTIFICATIONS_QUEUE_ALL = False 
FILE_UPLOAD_PERMISSIONS = None BING_API_KEY = u'********************' 
APPEND_SLASH = True DATABASE_ROUTERS = [] STAMEN_BASEMAPS = False 
GEOSERVER_LOCATION = 'http://localhost/geoserver/' INVITATIONS_ADAPTER = 
'geonode.people.adapters.LocalAccountAdapter' HOSTNAME = 'localhost' 
EXIF_ENABLED = False CATALOGUE = {'default': {'ENGINE': 
'geonode.catalogue.backends.pycsw_local', 'URL': 
'http://geoportal.dummy.org/catalogue/csw'}} LOCKDOWN_GEONODE = 0 
MIDDLEWARE_CLASSES = USE_I18N = 1 LANGUAGE_COOKIE_NAME = 
'django_language' CELERY_TASK_ALWAYS_EAGER = True TEST_RUNNER_PARALLEL = 
0 CELERYD_HIJACK_ROOT_LOGGER = True HAYSTACK_SEARCH = 0 X_FRAME_OPTIONS 
= 'DENY' UNOCONV_EXECUTABLE = '/usr/bin/unoconv' OAUTH2_PROVIDER = 
{'SCOPES': {'read': 'Read scope', 'write': 'Write scope', 'groups': 
'Access to your groups'}, 'CLIENT_ID_GENERATOR_CLASS': 
'oauth2_provider.generators.ClientIdGenerator'} 
GEOSERVER_PUBLIC_LOCATION = 'http://geoportal.dummy.org/geoserver/' 
SECURE_SSL_HOST = None NLP_ENABLED = False MONITORING_DISABLE_CSRF = 
False SOCIAL_ORIGINS = [{'url': 'mailto:?subject={name}&body={url}', 
'css_class': 'email', 'label': 'Email'}, {'url': 
'http://www.facebook.com/sharer.php?u={url}', 'css_class': 'fb', 
'label': 'Facebook'}, {'url': 
'https://twitter.com/share?url={url}&hashtags={hashtags}', 'css_class': 
'tw', 'label': 'Twitter'}, {'url': 
'https://plus.google.com/share?url={url}', 'css_class': 'gp', 'label': 
'Google +'}] PREPEND_WWW = False AUTH_IP_WHITELIST = [] DATABASE_PORT = 
'5432' DEFAULT_ANONYMOUS_VIEW_PERMISSION = 1 GOOGLE_API_KEY = 
u'********************' GEOIP_PATH = '/usr/local/share/GeoIP' 
ADMIN_MODERATE_UPLOADS = False TASTYPIE_DEFAULT_FORMATS = ['json'] 
DEFAULT_ANONYMOUS_DOWNLOAD_PERMISSION = 1 FORCE_SCRIPT_NAME = None 
DISPLAY_RATINGS = 1 TEST_RUNNER_KEEPDB = 0 PASSWORD_RESET_TIMEOUT_DAYS = 
u'********************' DEFAULT_SEARCH_SIZE = 10 CELERYD_CONCURENCY = 1 
SESSION_ENGINE = 'django.contrib.sessions.backends.db' 
API_INCLUDE_REGIONS_COUNT = u'********************' 
PINAX_NOTIFICATIONS_LOCK_WAIT_TIMEOUT = -1 MIGRATION_MODULES = {} 
NLP_MODEL_PATH = '/opt/MITIE/MITIE-models/english/ner_model.dat' 
PROXY_ALLOWED_HOSTS = ['geoportal.dummy.org', 'geoportal.cgiarad.org', 
'172.30.1.167', 'localhost'] CARTODB_BASEMAPS = False 
SECURE_BROWSER_XSS_FILTER = True GEONODE_CONTRIB_APPS = SRID = 
{'DETAIL': 'never'} ACCOUNT_NOTIFY_ON_PASSWORD_CHANGE = 
u'********************' AGON_RATINGS_CATEGORY_CHOICES = {'maps.Map': 
{'map': 'How good is this map?'}, 'layers.Layer': {'layer': 'How good is 
this layer?'}, 'documents.Document': {'document': 'How good is this 
document?'}} DEFAULT_EXCEPTION_REPORTER_FILTER = 
'django.views.debug.SafeExceptionReporterFilter' ADMINS = [] 
MONITORING_DATA_TTL = datetime.timedelta(7) GEOSERVER_EXCHANGE = 
CELERY_ACCEPT_CONTENT = ['json'] LOCAL_MEDIA_URL = '/uploaded/' 
LOGOUT_URL = '/account/logout/' USE_GEOSERVER = True EXTRA_LANG_INFO = 
{'tl': {'code': 'tl', 'name': 'Tagalog', 'bidi': False, 'name_local': 
'tagalog'}, 'am': {'code': 'am', 'name': 'Amharic', 'bidi': False, 
'name_local': 'Amharic'}, 'si': {'code': 'si', 'name': 'Sinhala', 
'bidi': False, 'name_local': 'sinhala'}, 'ta': {'code': 'ta', 'name': 
'Tamil', 'bidi': False, 'name_local': u'tamil'}} SHOW_PROFILE_EMAIL = 
False CELERYD_LOG_LEVEL = 1 DATABASE_USER = 'geonode' TEMPLATES = 
[{'DIRS': ['/home/geonode/my_geonode/my_geonode/templates', 
'/home/geo/Envs/geonode/src/geonode/geonode/templates'], 'OPTIONS': 
{'debug': 1, 'context_processors': 
['django.template.context_processors.debug', 
'django.template.context_processors.i18n', 
'django.template.context_processors.tz', 
'django.template.context_processors.request', 
'django.template.context_processors.media', 
'django.template.context_processors.static', 
'django.contrib.auth.context_processors.auth', 
'django.contrib.messages.context_processors.messages', 
'django.contrib.auth.context_processors.auth', 
'geonode.context_processors.resource_urls', 
'geonode.geoserver.context_processors.geoserver_urls', 
'geonode.themes.context_processors.custom_theme'], 'loaders': 
['django.template.loaders.filesystem.Loader', 
'django.template.loaders.app_directories.Loader']}, 'NAME': 'GeoNode 
Project Templates', 'BACKEND': 
'django.template.backends.django.DjangoTemplates'}] EMAIL_SSL_CERTFILE = 
None CELERY_TASK_QUEUES = DEFAULT_WORKSPACE = 'geonode' ASYNC_SIGNALS = 
False LOCAL_GEOSERVER = {'source': {'url': 
'http://geoportal.dummy.org/geoserver/wms', 'restUrl': '/gs/rest', 
'ptype': 'gxp_wmscsource'}} DEFAULT_TABLESPACE = '' CELERY_ACKS_LATE = 
True EMAIL_ENABLE = True SESSION_COOKIE_AGE = 1209600 
THEME_ACCOUNT_CONTACT_EMAIL = 'admin at example.com' NOTIFICATION_ENABLED = 
True LANGUAGES = CELERY_TASK_RESULT_EXPIRES = 43200 
GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'geoext' ABSOLUTE_URL_OVERRIDES = 
{} OGC_SERVER_DEFAULT_PASSWORD = u'********************' 
CACHE_MIDDLEWARE_SECONDS = 600 CSRF_COOKIE_HTTPONLY = False TEST = False 
EMAIL_HOST_USER = 'Geoportal dummy ' CASCADE_WORKSPACE = 'geonode' 
CSRF_COOKIE_SECURE = False CELERY_TRACK_STARTED = True UPLOADER = 
{'SUPPORTED_CRS': ['EPSG:4326', 'EPSG:3785', 'EPSG:3857', 'EPSG:900913', 
'EPSG:32647', 'EPSG:32736'], 'BACKEND': 'geonode.rest', 'OPTIONS': 
{'TIME_ENABLED': False, 'MOSAIC_ENABLED': False, 'GEOGIG_ENABLED': 
False}, 'SUPPORTED_EXT': ['.shp', '.csv', '.kml', '.kmz', '.json', 
'.geojson', '.tif', '.tiff', '.geotiff', '.gml', '.xml']} LICENSES = 
{'ENABLED': True, 'DETAIL': 'above', 'METADATA': 'verbose'} 
EMAIL_HOST_PASSWORD = u'********************' PYCSW = {'CONFIGURATION': 
{'metadata:main': {'identification_fees': 'None', 'provider_url': 
'http://geoportal.dummy.org/', 'identification_keywords': 'sdi, 
catalogue, discovery, metadata, GeoNode', 'contact_address': 'Mailing 
Address', 'identification_accessconstraints': 'None', 'contact_name': 
'Lastname, Firstname', 'contact_stateorprovince': 'Administrative Area', 
'contact_country': 'Country', 'contact_url': 'Contact URL', 
'provider_name': 'Organization Name', 'contact_phone': 
'+xx-xxx-xxx-xxxx', 'contact_hours': 'Hours of Service', 'contact_role': 
'pointOfContact', 'contact_email': 'Email Address', 
'identification_title': 'GeoNode Catalogue', 'contact_postalcode': 'Zip 
or Postal Code', 'contact_city': 'City', 'identification_keywords_type': 
'theme', 'identification_abstract': 'GeoNode is an open source platform 
that facilitates the creation, sharing, and collaborative use of 
geospatial data', 'contact_fax': '+xx-xxx-xxx-xxxx', 
'contact_instructions': 'During hours of service. Off on weekends.', 
'contact_position': 'Position Title'}, 'metadata:inspire': 
{'languages_supported': 'eng,gre', 'default_language': 'eng', 
'temp_extent': 'YYYY-MM-DD/YYYY-MM-DD', 'conformity_service': 
'notEvaluated', 'contact_email': 'Email Address', 'date': 'YYYY-MM-DD', 
'contact_name': 'Organization Name', 'gemet_keywords': 'Utility and 
governmental services', 'enabled': 'true'}}} CELERY_RESULT_SERIALIZER = 
'json' AWS_STORAGE_BUCKET_NAME = '' FILE_UPLOAD_DIRECTORY_PERMISSIONS = 
None LOCAL_ROOT = '/home/geonode/my_geonode/my_geonode' 
FILE_UPLOAD_HANDLERS = DEFAULT_CONTENT_TYPE = 'text/html' DEBUG_STATIC = 
False MONITORING_SERVICE_NAME = 'local-geonode' SOCIALACCOUNT_PROVIDERS 
= {'linkedin_oauth2': {'SCOPE': ['r_emailaddress', 'r_basicprofile'], 
'PROFILE_FIELDS': ['emailAddress', 'firstName', 'headline', 'id', 
'industry', 'lastName', 'pictureUrl', 'positions', 'publicProfileUrl', 
'location', 'specialties', 'summary']}, 'facebook': {'SCOPE': ['email', 
'public_profile'], 'METHOD': 'oauth2', 'FIELDS': ['id', 'email', 'name', 
'first_name', 'last_name', 'verified', 'locale', 'timezone', 'link', 
'gender']}} STATICFILES_STORAGE = 
'django.contrib.staticfiles.storage.StaticFilesStorage' USE_WORLDMAP = 0 
SILENCED_SYSTEM_CHECKS = ['1_8.W001', 'fields.W340'] LOGGING_CONFIG = 
'logging.config.dictConfig' TEMPLATE_LOADERS = 
AUTO_GENERATE_AVATAR_SIZES = HAYSTACK_CONNECTIONS = {'default': 
{'ENGINE': 
'haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine', 
'URL': 'http://127.0.0.1:9200/', 'INDEX_NAME': 'haystack'}} 
GEONODE_INTERNAL_APPS = ACCOUNT_LOGIN_REDIRECT_URL = 
'http://localhost:8000/' EMAIL_TIMEOUT = None SESSION_COOKIE_SECURE = 
False GEONODE_CORE_APPS = CACHE_TIME = 0 AWS_ACCESS_KEY_ID = 
u'********************' INSTALLED_APPS = THUMBNAIL_GENERATOR_DEFAULT_BG 
= 'http://a.tile.openstreetmap.org/{z}/{x}/{y}.png' STATIC_ROOT = 
'/var/www/geonode/static/' SECURE_HSTS_INCLUDE_SUBDOMAINS = True 
GEONODE_APPS = SESSION_COOKIE_HTTPONLY = True DATETIME_FORMAT = 'N j, Y, 
P' USER_MESSAGES_ALLOW_MULTIPLE_RECIPIENTS = True GEOTIFF_IO_BASE_URL = 
'https://app.geotiff.io' DATE_INPUT_FORMATS = 
ACCOUNT_LOGOUT_REDIRECT_URL = 'http://localhost:8000/' TWITTER_CARD = 1 
CSRF_COOKIE_NAME = 'csrftoken' SESSION_SAVE_EVERY_REQUEST = False 
NUMBER_GROUPING = 0 LOCALE_PATHS = GEONODE_ROOT = 
'/home/geo/Envs/geonode/src/geonode/geonode' LOGGING = {'loggers': 
{'geonode': {'handlers': ['applogfile'], 'level': 'DEBUG'}, 'django': 
{'handlers': ['applogfile'], 'level': 'DEBUG'}, 'pycsw': {'handlers': 
['applogfile'], 'level': 'DEBUG'}, 'owslib': {'handlers': 
['applogfile'], 'level': 'DEBUG'}, 'gsconfig.catalog': {'handlers': 
['applogfile'], 'level': 'DEBUG'}}, 'disable_existing_loggers': True, 
'handlers': {'console': {'formatter': 'simple', 'class': 
'logging.StreamHandler', 'level': 'DEBUG'}, 'applogfile': {'level': 
'DEBUG', 'maxBytes': 15728640, 'backupCount': 10, 'class': 
'logging.handlers.RotatingFileHandler', 'filename': 
'/tmp/GEONODE_APP.log'}, 'mail_admins': {'class': 
'django.utils.log.AdminEmailHandler', 'filters': 
['require_debug_false'], 'level': 'ERROR'}}, 'formatters': {'simple': 
{'format': '%(message)s'}, 'verbose': {'format': '%(levelname)s 
%(asctime)s %(module)s %(process)d %(thread)d %(message)s'}}, 'version': 
1, 'filters': {'require_debug_false': {'()': 
'django.utils.log.RequireDebugFalse'}}} INTEGRATION = False OGP_URL = 
'http://geodata.tufts.edu/solr/select' USE_L10N = 1 CELERYD_LOG_FILE = 
None EMAIL_HOST = 'dummysmtp4.cgiarad.org' NLP_LOCATION_THRESHOLD = 1.0 
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': 
['rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly']} 
DATABASE_NAME = 'geonode' MEDIA_URL = '/uploaded/' 
RABBITMQ_SIGNALS_BROKER_URL = 'amqp://localhost:5672' 
DJANGO_LIVE_TEST_SERVER_ADDRESS = 'localhost:8000' MONITORING_ENABLED = 
True DOWNLOAD_FORMATS_VECTOR = ['JPEG', 'PDF', 'PNG', 'Zipped 
Shapefile', 'GML 2.0', 'GML 3.1.1', 'CSV', 'Excel', 'GeoJSON', 'KML', 
'View in Google Earth', 'Tiles', 'QGIS layer file (.qlr)', 'QGIS project 
file (.qgs)'] SKIP_PERMS_FILTER = False GEONODE_CLIENT_HOOKSET = 
TWITTER_SITE = '@GeoNode' SLACK_ENABLED = False PROJECT_NAME = 
'my_geonode' TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' 
HAYSTACK_FACET_COUNTS = True SECURE_SSL_REDIRECT = False TIME_ZONE = 
'UTC' CORS_ORIGIN_ALLOW_ALL = True EMAIL_BACKEND = 
'django.core.mail.backends.smtp.EmailBackend' DEFAULT_MAP_ZOOM = 0 
TEMPLATE_CONTEXT_PROCESSORS = MAPBOX_ACCESS_TOKEN = 
u'********************' S3_STATIC_ENABLED = False 
PINAX_NOTIFICATIONS_LANGUAGE_MODEL = None LANGUAGES_BIDI = 
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor' 
CLIENT_RESULTS_LIMIT = 20 MODELTRANSLATION_DEFAULT_LANGUAGE = 'en' 
GEOFENCE_SECURITY_ENABLED = True SOCIALACCOUNT_ADAPTER = 
'geonode.people.adapters.SocialAccountAdapter' DATABASE_PASSWORD = 
u'********************' SECURE_HSTS_SECONDS = 3600 
TEST_NON_SERIALIZED_APPS = [] DEFAULT_CHARSET = 'utf-8' 
OPENGRAPH_ENABLED = 1 CELERY_MAX_CACHED_RESULTS = 32768 
CELERY_RESULT_PERSISTENT = False ALLOWED_HOSTS = ['geoportal.dummy.org', 
'geoportal.cgiarad.org', '172.30.1.167', 'localhost'] OGC_SERVER = 
{'default': {'BACKEND_WRITE_ENABLED': True, 'PASSWORD': 
u'********************', 'WPS_ENABLED': True, 'LOGIN_ENDPOINT': 
'j_spring_oauth2_geonode_login', 'PUBLIC_LOCATION': 
'http://geoportal.dummy.org/geoserver/', 'GEONODE_SECURITY_ENABLED': 
True, 'PRINT_NG_ENABLED': True, 'GEOGIG_DATASTORE_DIR': '', 'PG_GEOGIG': 
False, 'GEOFENCE_SECURITY_ENABLED': True, 'LOCATION': 
'http://localhost/geoserver/', 'MAPFISH_PRINT_ENABLED': True, 
'LOGOUT_ENDPOINT': 'j_spring_oauth2_geonode_logout', 'TIMEOUT': 10, 
'WMST_ENABLED': False, 'DATASTORE': 'datastore', 'LOG_FILE': 
'/usr/share/geoserver/data/logs/geoserver.log', 'BACKEND': 
'geonode.geoserver', 'GEOGIG_ENABLED': False, 'USER': 'admin'}} 
DOWNLOAD_FORMATS_RASTER = ['JPEG', 'PDF', 'PNG', 'ArcGrid', 'GeoTIFF', 
'Gtopo30', 'ImageMosaic', 'KML', 'View in Google Earth', 'Tiles', 'GML', 
'GZIP', 'QGIS layer file (.qlr)', 'QGIS project file (.qgs)', 'Zipped 
All Files'] AUTH_EXEMPT_URLS = EMAIL_SUBJECT_PREFIX = '[Django] ' 
THOUSAND_SEPARATOR = ',' STATICFILES_FINDERS = S3_MEDIA_ENABLED = False 
CELERY_WORKER_DISABLE_RATE_LIMITS = False STATIC_URL = '/static/' 
TIME_INPUT_FORMATS = SECURE_REDIRECT_EXEMPT = [] DATABASES = {'default': 
{'ENGINE': 'django.db.backends.postgresql_psycopg2', 'AUTOCOMMIT': True, 
'ATOMIC_REQUESTS': False, 'NAME': 'geonode', 'CONN_MAX_AGE': 0, 
'CONN_TOUT': 900, 'TIME_ZONE': 'UTC', 'PORT': '5432', 'HOST': 
'localhost', 'USER': 'geonode', 'TEST': {'COLLATION': None, 'CHARSET': 
None, 'NAME': None, 'MIRROR': None}, 'PASSWORD': 
u'********************', 'OPTIONS': {}}, 'datastore': {'ENGINE': 
'django.contrib.gis.db.backends.postgis', 'AUTOCOMMIT': True, 
'ATOMIC_REQUESTS': False, 'NAME': 'geonode_data', 'CONN_MAX_AGE': 0, 
'CONN_TOUT': 900, 'TIME_ZONE': 'UTC', 'PORT': '5432', 'HOST': 
'localhost', 'USER': 'geonode', 'TEST': {'COLLATION': None, 'CHARSET': 
None, 'NAME': None, 'MIRROR': None}, 'PASSWORD': 
u'********************', 'OPTIONS': {}}} LEAFLET_CONFIG = {'SRID': 3857, 
'RESET_VIEW': False, 'TILES': [('Watercolor', 
'http://{s}.tile.stamen.com/watercolor/{z}/{x}/{y}.png', 'Map tiles by 
Stamen Design, CC BY 3.0 — Map data © OpenStreetMap contributors, 
CC-BY-SA'), ('Toner Lite', 
'http://{s}.tile.stamen.com/toner-lite/{z}/{x}/{y}.png', 'Map tiles by 
Stamen Design, CC BY 3.0 — Map data © OpenStreetMap contributors, 
CC-BY-SA')], 'PLUGINS': {u'forms': {u'css': , u'auto-include': False, 
u'js': }, u'__default__': {u'css': , u'js': }, u'ALL': {u'css': , u'js': 
}, 'leaflet-plugins': {'css': , 'auto-include': True, 'js': }, 
u'__is_normalized__': True}} ACCOUNT_APPROVAL_REQUIRED = 0 DATABASE_URL 
= 'sqlite:////home/geo/Envs/geonode/src/geonode/geonode/development.db' 
MODELTRANSLATION_LANGUAGES = ['en'] SLACK_WEBHOOK_URLS = 
['https://hooks.slack.com/services/T000/B000/XX'] ALT_OSM_BASEMAPS = 
False ACCOUNT_OPEN_SIGNUP = True ACCOUNT_ADAPTER = 
'geonode.people.adapters.LocalAccountAdapter' 
SECURE_CONTENT_TYPE_NOSNIFF = True SECRET_KEY = u'********************' 
FILE_UPLOAD_TEMP_DIR = None DEFAULT_MAP_CRS = 'EPSG:900913' 
DATA_UPLOAD_MAX_NUMBER_FIELDS = 100000 
MAP_CLIENT_USE_CROSS_ORIGIN_CREDENTIALS = 0 REDIS_SIGNALS_BROKER_URL = 
'redis://localhost:6379/0' SETTINGS_MODULE = 'my_geonode.settings' 
AUTHENTICATION_BACKENDS = CELERY_ALWAYS_EAGER = True 
MODIFY_TOPICCATEGORY = True SIGNING_BACKEND = 
'django.core.signing.TimestampSigner' LANGUAGE_COOKIE_DOMAIN = None 
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' 
SITEURL = 'http://geoportal.dummy.org/' LANGUAGE_COOKIE_AGE = None 
SOCIALACCOUNT_PROFILE_EXTRACTORS = {'linkedin_oauth2': 
'geonode.people.profileextractors.LinkedInExtractor', 'facebook': 
'geonode.people.profileextractors.FacebookExtractor'} MANAGERS = [] 
SESSION_EXPIRE_AT_BROWSER_CLOSE = False TIME_FORMAT = 'P' 
CACHE_MIDDLEWARE_ALIAS = 'default' SERVICE_UPDATE_INTERVAL = 0 
CSRF_COOKIE_PATH = '/' NLP_LIBRARY_PATH = '/opt/MITIE/mitielib' 
MONITORING_CONFIG = None CELERYD_POOL_RESTARTS = True PROJECT_ROOT = 
'/home/geo/Envs/geonode/src/geonode/geonode' CACHE_MIDDLEWARE_KEY_PREFIX 
= u'********************' RISKS = {'PDF_GENERATOR': {'BIN': 
'/usr/bin/wkhtml2pdf', 'ARGS': [], 'NAME': 'wkhtml2pdf'}, 
'DEFAULT_LOCATION': None} MAP_BASELAYERS = [{'source': {'url': 
'http://geoportal.dummy.org/geoserver/wms', 'restUrl': '/gs/rest', 
'ptype': 'gxp_wmscsource'}}, {'group': 'background', 'name': 
'background', 'args': ['No background'], 'visibility': False, 'source': 
{'ptype': 'gxp_olsource'}, 'fixed': True, 'type': 'OpenLayers.Layer'}, 
{'source': {'ptype': 'gxp_olsource'}, 'wrapDateLine': True, 'fixed': 
True, 'attribution': '© UNESCO', 'name': 'background', 'title': 
'UNESCO', 'group': 'background', 'args': ['UNESCO', 
'http://en.unesco.org/tiles/${z}/${x}/${y}.png'], 'type': 
'OpenLayers.Layer.XYZ', 'visibility': False}, {'source': {'ptype': 
'gxp_olsource'}, 'wrapDateLine': True, 'fixed': True, 'attribution': '© 
UNESCO', 'name': 'background', 'title': 'UNESCO GEODATA', 'group': 
'background', 'args': ['UNESCO GEODATA', 
'http://en.unesco.org/tiles/geodata/${z}/${x}/${y}.png'], 'type': 
'OpenLayers.Layer.XYZ', 'visibility': False}, {'source': {'ptype': 
'gxp_olsource'}, 'wrapDateLine': True, 'fixed': True, 'attribution': "© 
OpenStreetMap, Tiles courtesy of Humanitarian OpenStreetMap Team", 
'name': 'background', 'title': 'Humanitarian OpenStreetMap', 'group': 
'background', 'args': ['Humanitarian OpenStreetMap', 
'http://a.tile.openstreetmap.fr/hot/${z}/${x}/${y}.png'], 'type': 
'OpenLayers.Layer.XYZ', 'visibility': False}, {'source': {'ptype': 
'gxp_olsource'}, 'wrapDateLine': True, 'fixed': True, 'attribution': "© 
Mapbox © OpenStreetMap Improve this map", 'name': 'background', 'title': 
'MapBox Satellite Streets', 'group': 'background', 'args': ['MapBox 
Satellite Streets', 
'http://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/${z}/${x}/${y}?access_token='], 
'type': 'OpenLayers.Layer.XYZ', 'visibility': False}, {'source': 
{'ptype': 'gxp_olsource'}, 'wrapDateLine': True, 'fixed': True, 
'attribution': "© Mapbox © OpenStreetMap Improve this map", 'name': 
'background', 'title': 'MapBox Streets', 'group': 'background', 'args': 
['MapBox Streets', 
'http://api.mapbox.com/styles/v1/mapbox/streets-v9/tiles/${z}/${x}/${y}?access_token='], 
'type': 'OpenLayers.Layer.XYZ', 'visibility': False}, {'source': 
{'ptype': 'gxp_osmsource'}, 'wrapDateLine': True, 'attribution': "© 
OpenStreetMap contributors", 'name': 'mapnik', 'title': 'OpenStreetMap', 
'group': 'background', 'fixed': True, 'type': 'OpenLayers.Layer.OSM', 
'visibility': True}] LOGIN_REDIRECT_URL = '/' GROUP_PRIVATE_RESOURCES = 
False DATE_FORMAT = 'N j, Y' LOCAL_SIGNALS_BROKER_URL = 'memory://' 
MEDIA_ROOT = '/var/www/geonode/uploaded' PROXY_URL = '/proxy/?url=' 
TEMPLATE_DEBUG = False DEFAULT_FROM_EMAIL = 'Geoportal dummy ' 
FREETEXT_KEYWORDS_READONLY = u'********************' GEONODE_EXCHANGE = 
NOTIFICATIONS_MODULE = 'pinax.notifications' SITE_ID = 1 
ALLOWED_INCLUDE_ROOTS = API_LIMIT_PER_PAGE = u'********************' 
SHORT_DATE_FORMAT = 'm/d/Y' ACTSTREAM_SETTINGS = {'GFK_FETCH_DEPTH': 1, 
'USE_JSONFIELD': True, 'FETCH_RELATIONS': True, 'USE_PREFETCH': False} 
AWS_S3_BUCKET_DOMAIN = '.s3.amazonaws.com' FILE_UPLOAD_MAX_MEMORY_SIZE = 
2621440 DISPLAY_SOCIAL = 1 CSRF_COOKIE_AGE = 31449600 EMAIL_USE_SSL = 
False INTERNAL_IPS = EMAIL_PORT = 25 GROUP_MANDATORY_RESOURCES = False 
PASSWORD_HASHERS = u'********************' ANONYMOUS_USER_ID = '-1' 
DATETIME_INPUT_FORMATS = You're seeing this error because you have DEBUG 
= True in your Django settings file. Change that to False, and Django 
will display a standard page generated by the handler for this status code.


Thank you very much,


Michael Härtel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-devel/attachments/20190504/acc62e62/attachment-0001.html>


More information about the geonode-devel mailing list