# Delete group in P4
            try:
                p4.delete_group(group.name, suppress_group_does_not_exist_error=True)
            except P4Exception, e:
                logger.error(traceback.format_exc())
                for e in p4.errors():
                    logger.error(e)

    projects_before_delete = [project for project in group.paproject_set.all()]

    group.delete()

    for project in projects_before_delete:
        if project.swarm_project:
            update_members_in_swarm_project(project.swarm_project)

def add_user_to_group(group, user):

    group.members.add(user)
    group.save()

    if settings.PERFORCE_INTEGRATION_ENABLED:
        with P4ConnectionAsServiceUser() as p4:
            try:
                p4.add_user_to_group(str(group.name), str(user.p4_user_name))
            except P4Exception, e:
                logger.error(traceback.format_exc())
                for e in p4.errors():
                    logger.error(e)
def add_user_to_project(project, user):

    project_access = PAUserProjectAccess.objects.create(project=project, user=user)
    project_access.save()
    if settings.PERFORCE_INTEGRATION_ENABLED:
        with P4ConnectionAsServiceUser() as p4:
            try:
                p4.add_user_to_group(project.p4_access_group_name, str(user.p4_user_name))
            except P4Exception, e:
                logger.error(traceback.format_exc())
                for e in p4.errors():
                    logger.error(e)

    if project.swarm_project:
        update_members_in_swarm_project(project.swarm_project)

    return project_access

def remove_user_from_project(project_access):

    if settings.PERFORCE_INTEGRATION_ENABLED:
        with P4ConnectionAsServiceUser() as p4:
            try:
                p4.remove_user_from_group(project_access.project.p4_access_group_name, project_access.user.p4_user_name)
            except P4Exception, e:
                logger.error(traceback.format_exc())
                for e in p4.errors():
                    logger.error(e)

    project_access.delete()