Skip to content

Commit

Permalink
[Fixes #5096] Disabling geonode.monitoring causes model exceptions on…
Browse files Browse the repository at this point in the history
… views
  • Loading branch information
afabiani committed Oct 22, 2019
1 parent 910a7ad commit f1a329c
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 32 deletions.
55 changes: 30 additions & 25 deletions geonode/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@
'geonode.upload',
'geonode.tasks',
'geonode.messaging',
'geonode.monitoring',
)

GEONODE_CONTRIB_APPS = (
Expand Down Expand Up @@ -355,7 +356,6 @@
'mptt',
'storages',
'floppyforms',
'django_celery_beat',

# Theme
'django_forms_bootstrap',
Expand All @@ -382,7 +382,12 @@

# GeoNode
'geonode',
) + GEONODE_APPS
)

if 'postgresql' in DATABASE_URL or 'postgis' in DATABASE_URL:
INSTALLED_APPS += ('django_celery_beat',)

INSTALLED_APPS += GEONODE_APPS

REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
Expand Down Expand Up @@ -1207,29 +1212,29 @@
MIDDLEWARE_CLASSES += \
('geonode.monitoring.middleware.MonitoringMiddleware',)

# skip certain paths to not to mud stats too much
MONITORING_SKIP_PATHS = ('/api/o/',
'/monitoring/',
'/admin',
'/lang.js',
'/jsi18n',
STATIC_URL,
MEDIA_URL,
re.compile('^/[a-z]{2}/admin/'),
)

# configure aggregation of past data to control data resolution
# list of data age, aggregation, in reverse order
# for current data, 1 minute resolution
# for data older than 1 day, 1-hour resolution
# for data older than 2 weeks, 1 day resolution
MONITORING_DATA_AGGREGATION = (
(timedelta(seconds=0), timedelta(minutes=1),),
(timedelta(days=1), timedelta(minutes=60),),
(timedelta(days=14), timedelta(days=1),),
)
USER_ANALYTICS_ENABLED = ast.literal_eval(os.getenv('USER_ANALYTICS_ENABLED', 'False'))
GEOIP_PATH = os.getenv('GEOIP_PATH', os.path.join(PROJECT_ROOT, 'GeoIPCities.dat'))
# skip certain paths to not to mud stats too much
MONITORING_SKIP_PATHS = ('/api/o/',
'/monitoring/',
'/admin',
'/lang.js',
'/jsi18n',
STATIC_URL,
MEDIA_URL,
re.compile('^/[a-z]{2}/admin/'),
)

# configure aggregation of past data to control data resolution
# list of data age, aggregation, in reverse order
# for current data, 1 minute resolution
# for data older than 1 day, 1-hour resolution
# for data older than 2 weeks, 1 day resolution
MONITORING_DATA_AGGREGATION = (
(timedelta(seconds=0), timedelta(minutes=1),),
(timedelta(days=1), timedelta(minutes=60),),
(timedelta(days=14), timedelta(days=1),),
)
USER_ANALYTICS_ENABLED = ast.literal_eval(os.getenv('USER_ANALYTICS_ENABLED', 'False'))
GEOIP_PATH = os.getenv('GEOIP_PATH', os.path.join(PROJECT_ROOT, 'GeoIPCities.dat'))
# -- END Settings for MONITORING plugin

CACHES = {
Expand Down
19 changes: 12 additions & 7 deletions pavement.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,8 @@ def sync(options):
sh("%s python -W ignore manage.py loaddata sample_admin.json" % settings)
sh("%s python -W ignore manage.py loaddata geonode/base/fixtures/default_oauth_apps.json" % settings)
sh("%s python -W ignore manage.py loaddata geonode/base/fixtures/initial_data.json" % settings)
sh("%s python -W ignore manage.py loaddata geonode/base/fixtures/django_celery_beat.json" % settings)
if 'django_celery_beat' in INSTALLED_APPS:
sh("%s python -W ignore manage.py loaddata geonode/base/fixtures/django_celery_beat.json" % settings)
sh("%s python -W ignore manage.py set_all_layers_alternate" % settings)


Expand Down Expand Up @@ -617,12 +618,16 @@ def start_django(options):
# "notifications.events",
# "geonode.layer.viewer"
]
sh('%s celery -A geonode.celery_app:app worker -Q %s -B -E -l INFO %s %s' % (
settings,
",".join(celery_queues),
'--scheduler django_celery_beat.schedulers:DatabaseScheduler',
foreground
))
if 'django_celery_beat' not in INSTALLED_APPS:
sh('%s celery -A geonode.celery_app:app worker -Q %s -B -E -l INFO %s' %
(settings, ",".join(celery_queues), foreground))
else:
sh('%s celery -A geonode.celery_app:app worker -Q %s -B -E -l INFO %s %s' % (
settings,
",".join(celery_queues),
'--scheduler django_celery_beat.schedulers:DatabaseScheduler',
foreground
))

if ASYNC_SIGNALS:
sh('%s python -W ignore manage.py runmessaging %s' % (settings, foreground))
Expand Down

0 comments on commit f1a329c

Please sign in to comment.