Project

General

Profile

Bug #4034

Rendre raven optionnel

Added by Mikaël Ates over 10 years ago. Updated over 10 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
Jérôme Schneider
Target version:
-
Start date:
02 December 2013
Due date:
% Done:

100%

Estimated time:
Patch proposed:
Planning:

Description

Cela reste une question.
Proposition pour le settings :

diff --git a/calebasse/settings/common.py b/calebasse/settings/common.py
index 20c4da7..ef94d91 100644
--- a/calebasse/settings/common.py
+++ b/calebasse/settings/common.py
@@ -164,7 +164,6 @@ INSTALLED_APPS = (
     'calebasse.statistics',
     'calebasse.middleware.request',
     'south',
-    'raven.contrib.django.raven_compat'
 )

 INTERNAL_IPS=('127.0.0.1',)
@@ -213,10 +212,6 @@ LOGGING = {
             'address': '/dev/log',
             'max_length': 999,
         },
-        'sentry': {
-            'level': 'ERROR',
-            'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
-        },
     },
     'loggers': {
         'django.db.backends': {
@@ -224,18 +219,13 @@ LOGGING = {
             'handlers': ['console'],
             'propagate': False,
         },
-        'raven': {
-            'level': 'DEBUG',
-            'handlers': ['console'],
-            'propagate': False,
-        },
         'sentry.errors': {
             'level': 'DEBUG',
             'handlers': ['console'],
             'propagate': False,
         },
         '': {
-            'handlers': ['sentry', 'syslog'],
+            'handlers': ['syslog'],
             'level': 'DEBUG' if DEBUG else 'INFO',
             'propagate': True,
         }
@@ -258,11 +248,26 @@ AJAX_LOOKUP_CHANNELS = {
 # Default URL after login
 LOGIN_REDIRECT_URL = '/'

-# Sentry / raven configuration
-# You need to overload this option in the local_settings.py
-RAVEN_CONFIG = {
-        'dsn': None,
-}
+try:
+    import raven
+    INSTALLED_APPS += ('raven.contrib.django.raven_compat', )
+    LOGGING['handlers']['sentry'] = {
+            'level': 'ERROR',
+            'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
+        }
+    LOGGING['loggers']['raven'] = {
+            'level': 'DEBUG',
+            'handlers': ['console'],
+            'propagate': False,
+        }
+    LOGGING['loggers']['']['handlers'].append('sentry')
+    # Sentry / raven configuration
+    # You need to overload this option in the local_settings.py
+    RAVEN_CONFIG = {
+            'dsn': None,
+    }
+except:
+    pass

Associated revisions

Revision d02ed08a (diff)
Added by Jérôme Schneider over 10 years ago

settings: render raven optionnal

Closes #4034

History

#1

Updated by Frédéric Péters over 10 years ago

Comme le local_settings.py devra de toute façon définir le RAVEN_CONFIG, pourquoi ne pas simplement, après le chargement de celui-ci, si RAVEN_CONFIG est défini, faire les changements (INSTALLED_APPS, LOGGING) mentionnés ici ?

#2

Updated by Mikaël Ates over 10 years ago

  • Description updated (diff)
#3

Updated by Jérôme Schneider over 10 years ago

Je me demande si c'est vraiment pertinent de mettre raven comme une dépendance optionnelle. D'une part car on devrait installer Calebasse avec raven dans la plupart des cas et d'autre part car python-entrouvert dépend également de raven.
Je tiens à préciser que si on laisse RAVEN_CONFIG avec un dsn à None ou qu'on le commente raven n'est pas utilisé. La seule contrainte de laisser la solution actuelle c'est de devoir installer raven mais vu qu'on dépend de python-entrouvert qui en dépend également ça ne changera rien.
Si tu y tiens je remplacerais juste le except par un except ImportError.

Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.

Edit : j'ai rêvé pour python-entrouvert je fais une proposition de patch

#4

Updated by Frédéric Péters over 10 years ago

Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.

Il s'agissait pour moi de faire les modifications dans le settings.py, après l'import du local_settings.py, quand celui-ci définit RAVEN_CONFIG.

#5

Updated by Frédéric Péters over 10 years ago

Quant à python-entrouvert, ce devrait être pour moi un module uniquement nécessaire et spécifique à nos déploiements, comme il a été créé pour le VersionsMiddleware, et non pas une collection variée d'éléments recyclables.

#6

Updated by Jérôme Schneider over 10 years ago

Frédéric Péters a écrit :

Quant à python-entrouvert, ce devrait être pour moi un module uniquement nécessaire et spécifique à nos déploiements, comme il a été créé pour le VersionsMiddleware, et non pas une collection variée d'éléments recyclables.

Comme dit dans mon "edit" python-entrouvert ne dépend pas de raven c'est moi qui ait rêvé.

#7

Updated by Jérôme Schneider over 10 years ago

Frédéric Péters a écrit :

Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.

Il s'agissait pour moi de faire les modifications dans le settings.py, après l'import du local_settings.py, quand celui-ci définit RAVEN_CONFIG.

J'avais mal saisi ton message, effectivement c'est une bonne solution. Je vais proposer un patch.

#8

Updated by Jérôme Schneider over 10 years ago

  • Status changed from Nouveau to En cours
#9

Updated by Jérôme Schneider over 10 years ago

  • Status changed from En cours to Résolu (à déployer)
  • % Done changed from 0 to 100

Appliqué par commit calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.

#10

Updated by Jérôme Schneider over 10 years ago

Appliqué par commit aps42:calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.

#11

Updated by Mikaël Ates over 10 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF