2012-11-08 7 views
1

Sentry intercepte les enregistrements et les erreurs des applications client. La seule façon que je connaisse de créer un projet dans Sentry consiste à soumettre manuellement le formulaire dans l'interface de l'application Web.Créer un projet à partir de la ligne de commande

Je cherche un moyen de créer un projet dans Sentry à partir de la ligne de commande de quelque façon (options, fichier de configuration)?

Ceci serait très utile pour les scripts de déploiement. Sinon, aucune automatisation n'est possible.

Je viens de trouver cette discussion en googler autour, mais pas de réponse:

https://groups.google.com/d/topic/getsentry/pWglAEHaPUk/discussion

Toute idée?

+0

Je pense que cela est probablement trop précis ... pas beaucoup vont même savoir ce guérite est .... vous pouvez fournir un lien à getsentry.com à tout le moins et probablement décrire comment on ajoute normalement un projet à sentry s'il y a un moyen de le faire dans le shell python ou seulement sur leur page d'administration ou quoi .. –

+0

Eh bien, ceci est un commentaire précieux. Question éditée. – Arnaud

Répondre

4

Il est a django project, bien sûr, vous pouvez:

from sentry.models import Project 
project = Project(...) 
... 
project.save() 

Edit: Vous pouvez write a custom management command pour obtenir la fonctionnalité sur la ligne de commande

Modifier par l'auteur de la question: Oui, en effet, il est un django projet, donc comme un projet django j'ai automatisé mon déploiement dans les trois étapes suivantes:

  1. Démarrer Sentry, créer des utilisateurs, des équipes et des projets et régler les paramètres de l'interface Web d'administration
  2. Run dumpdata comme vous le feriez avec tout projet de django (guérite appellera implicitement manage.py):

    sentry --config=sentry.conf.py dumpdata --indent=2 auth > auth_data.json

    sentry --config=sentry.conf.py dumpdata --indent=2 sentry > sentry_data.json

  3. de déploiement étape par étape:

    sentry --config=sentry.conf.py syncdb --noinput

    sentry --config=sentry.conf.py migrate

    sentry --config=sentry.conf.py loaddata auth_data.json

    sentry --config=sentry.conf.py loaddata sentry_data.json

fonctionne assez bien. J'espère que cela aidera les autres.

+0

Eh bien, c'était le plan B.Plan A était de voir si l'outil de ligne de commande a plus d'options, peut-être sans document. Je vais essayer ça demain, merci beaucoup. – Arnaud

+0

Edité la question avec mes compléments et en acceptant la réponse. Merci @Timmy. – Arnaud

+0

La méthode dumpdata -> loaddata me semble discutable. La première idée qui vient à l'esprit est que vous utilisez ensuite les mêmes combinaisons de clés publiques/privées pour différents déploiements. –

1

officiellement déclaré dans Sentry's docs:

# Bootstrap the Sentry environment 
from sentry.utils.runner import configure 
configure() 

# Do something crazy 
from sentry.models import Team, Project, User 

user = User() 
user.username = 'admin' 
user.email = '[email protected]' 
user.is_superuser = True 
user.set_password('admin') 
user.save() 

team = Team() 
team.name = 'Sentry' 
team.owner = user 
team.save() 

project = Project() 
project.team = team 
project.owner = user 
project.name = 'Default' 
project.save() 

key = ProjectKey.objects.filter(project=project)[0] 
print 'SENTRY_DSN = "%s"' % (key.get_dsn(),) 

https://docs.getsentry.com/on-premise/server/faq/

+0

configure() utilise le fichier de configuration par défaut de sentinelle. Comment spécifier /home/me/path/to/my/project/sentry.conf.py ?? –

+0

Un rapide coup d'œil au [code de la méthode configure()] (http://git.io/iwEtlw) suggère d'appeler logan.runner.configure_app à la place. Une autre solution serait de s'en tenir à configure() et de créer un lien symbolique ~/.sentry/sentry.conf.py -> /path/to/sentry.conf.py –

+0

ressemble à ce que le lien a changé pour: https: // docs .getsentry.com/on-premise/server/faq/ – abhishekmukherg

Questions connexes