Ejemplo n.º 1
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created:
        return

    if not instance.owner:
        return

    if not instance.team:
        update(instance,
               team=Team.objects.create(
                   owner=instance.owner,
                   name=instance.name,
                   slug=instance.slug,
               ))

        ProjectKey.objects.get_or_create(
            project=instance,
            user=instance.owner,
        )
    else:
        for member in instance.team.member_set.all():
            ProjectKey.objects.get_or_create(
                project=instance,
                user=member.user,
            )
Ejemplo n.º 2
0
    def handle(self, **options):
        from django.template.defaultfilters import slugify
        from sentry.models import Project, Team, ProjectKey, User
        from sentry.utils.models import update

        if options.get('owner'):
            owner = User.objects.get(username__iexact=options.get('owner'))
        else:
            owner = None

        if owner:
            print "Assigning ownerless projects to %s" % owner.username
            # Assign unowned projects
            for project in Project.objects.filter(owner__isnull=True):
                update(project, owner=owner)
                print "* Changed owner of %s" % project

        # Create teams for any projects that are missing them
        print "Creating missing teams on projects"
        for project in Project.objects.filter(team__isnull=True,
                                              owner__isnull=False):
            team = Team(
                name=project.name,
                owner=project.owner,
            )
            base_slug = slugify(team.name)
            slug = base_slug
            n = 0
            while True:
                if Team.objects.filter(slug=slug).exists():
                    n += 1
                    slug = base_slug + '-' + str(n)
                    continue
                team.slug = slug
                break

            team.save()

            update(project, team=team)
            print "* Created team %s for %s" % (team, project)

        # Create missing project keys
        print "Creating missing project keys"
        for team in Team.objects.all():
            for member in team.member_set.select_related('user'):
                for project in team.project_set.all():
                    try:
                        created = ProjectKey.objects.get_or_create(
                            project=project,
                            user=member.user,
                        )[1]
                    except ProjectKey.MultipleObjectsReturned:
                        pass
                    else:
                        if created:
                            print "* Created key for %s on %s" % (
                                member.user.username, project)
Ejemplo n.º 3
0
    def handle(self, **options):
        from django.contrib.auth.models import User
        from django.template.defaultfilters import slugify
        from sentry.models import Project, Team, ProjectKey
        from sentry.utils.models import update

        if options.get('owner'):
            owner = User.objects.get(username__iexact=options.get('owner'))
        else:
            owner = None

        if owner:
            print "Assigning ownerless projects to %s" % owner.username
            # Assign unowned projects
            for project in Project.objects.filter(owner__isnull=True):
                update(project, owner=owner)
                print "* Changed owner of %s" % project

        # Create teams for any projects that are missing them
        print "Creating missing teams on projects"
        for project in Project.objects.filter(team__isnull=True, owner__isnull=False):
            team = Team(
                name=project.name,
                owner=project.owner,
            )
            base_slug = slugify(team.name)
            slug = base_slug
            n = 0
            while True:
                if Team.objects.filter(slug=slug).exists():
                    n += 1
                    slug = base_slug + '-' + str(n)
                    continue
                team.slug = slug
                break

            team.save()

            update(project, team=team)
            print "* Created team %s for %s" % (team, project)

        # Create missing project keys
        print "Creating missing project keys"
        for team in Team.objects.all():
            for member in team.member_set.select_related('user'):
                for project in team.project_set.all():
                    try:
                        created = ProjectKey.objects.get_or_create(
                            project=project,
                            user=member.user,
                        )[1]
                    except ProjectKey.MultipleObjectsReturned:
                        pass
                    else:
                        if created:
                            print "* Created key for %s on %s" % (member.user.username, project)
Ejemplo n.º 4
0
def create_team_for_project(instance, created, **kwargs):
    if not created:
        return

    if instance.team:
        return

    if not instance.owner:
        return

    update(instance, team=Team.objects.create(
        owner=instance.owner,
        name=instance.name,
        slug=instance.slug,
    ))
Ejemplo n.º 5
0
    def forwards(self, orm):
        from django.template.defaultfilters import slugify
        from sentry.utils.models import update

        for project in orm['sentry.Project'].objects.all():
            base_slug = slugify(project.name)
            slug = base_slug
            n = 0
            while True:
                try:
                    update(project, slug=slug)
                except IntegrityError:
                    n += 1
                    slug = base_slug + '-' + str(n)
                else:
                    break
Ejemplo n.º 6
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created or kwargs.get('raw'):
        return

    if not instance.owner:
        return

    if not instance.team:
        team = Team(owner=instance.owner, name=instance.name)
        slugify_instance(team, instance.slug)
        team.save()
        update(instance, team=team)

    if not ProjectKey.objects.filter(project=instance,
                                     user__isnull=True).exists():
        ProjectKey.objects.create(project=instance, )
Ejemplo n.º 7
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created or kwargs.get('raw'):
        return

    if not instance.owner:
        return

    if not instance.team:
        team = Team(owner=instance.owner, name=instance.name)
        slugify_instance(team, instance.slug)
        team.save()
        update(instance, team=team)

    if not ProjectKey.objects.filter(
            project=instance, user__isnull=True).exists():
        ProjectKey.objects.create(project=instance, )
Ejemplo n.º 8
0
    def forwards(self, orm):
        from django.template.defaultfilters import slugify
        from sentry.utils.models import update

        for project in orm['sentry.Project'].objects.all():
            base_slug = slugify(project.name)
            slug = base_slug
            n = 0
            while True:
                try:
                    update(project, slug=slug)
                except IntegrityError:
                    n += 1
                    slug = base_slug + '-' + str(n)
                else:
                    break
Ejemplo n.º 9
0
    def forwards(self, orm):
        from django.template.defaultfilters import slugify
        from sentry.utils.models import update

        for project in orm['sentry.Project'].objects.all():
            if project.slug:
                continue

            base_slug = slugify(project.name)
            slug = base_slug
            n = 0
            while orm['sentry.Project'].objects.filter(slug=slug).exists():
                n += 1
                slug = base_slug + '-' + str(n)

            update(project, slug=slug)
Ejemplo n.º 10
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created or kwargs.get('raw'):
        return

    if not instance.owner:
        return

    if not instance.team:
        team = Team(owner=instance.owner, name=instance.name)
        slugify_instance(team, instance.slug)
        team.save()
        update(instance, team=team)

        ProjectKey.objects.get_or_create(
            project=instance,
            user=instance.owner,
        )
    else:
        for member in instance.team.member_set.all():
            ProjectKey.objects.get_or_create(
                project=instance,
                user=member.user,
            )
Ejemplo n.º 11
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created or kwargs.get('raw'):
        return

    if not instance.owner:
        return

    if not instance.team:
        team = Team(owner=instance.owner, name=instance.name)
        slugify_instance(team, instance.slug)
        team.save()
        update(instance, team=team)

        ProjectKey.objects.get_or_create(
            project=instance,
            user=instance.owner,
        )
    else:
        for member in instance.team.member_set.all():
            ProjectKey.objects.get_or_create(
                project=instance,
                user=member.user,
            )
Ejemplo n.º 12
0
def create_team_and_keys_for_project(instance, created, **kwargs):
    if not created or kwargs.get('raw'):
        return

    if not instance.owner:
        return

    if not instance.team:
        update(instance, team=Team.objects.create(
            owner=instance.owner,
            name=instance.name,
            slug=instance.slug,
        ))

        ProjectKey.objects.get_or_create(
            project=instance,
            user=instance.owner,
        )
    else:
        for member in instance.team.member_set.all():
            ProjectKey.objects.get_or_create(
                project=instance,
                user=member.user,
            )