changeset 8685:dff9658bdd98

model: don't import Session from db - import meta and get it from the real source
author Mads Kiilerich <mads@kiilerich.com>
date Mon, 12 Oct 2020 01:44:10 +0200
parents 89f11587b2dc
children b095e2fbba44
files kallithea/model/changeset_status.py kallithea/model/gist.py kallithea/model/permission.py kallithea/model/repo.py kallithea/model/repo_group.py kallithea/model/scm.py kallithea/model/user_group.py
diffstat 7 files changed, 61 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/model/changeset_status.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/changeset_status.py	Mon Oct 12 01:44:10 2020 +0200
@@ -29,7 +29,8 @@
 
 from sqlalchemy.orm import joinedload
 
-from kallithea.model.db import ChangesetStatus, PullRequest, Repository, Session, User
+from kallithea.model import meta
+from kallithea.model.db import ChangesetStatus, PullRequest, Repository, User
 
 
 log = logging.getLogger(__name__)
@@ -178,5 +179,5 @@
             new_status.revision = rev
             new_status.pull_request = pull_request
             new_statuses.append(new_status)
-            Session().add(new_status)
+            meta.Session().add(new_status)
         return new_statuses
--- a/kallithea/model/gist.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/gist.py	Mon Oct 12 01:44:10 2020 +0200
@@ -34,7 +34,8 @@
 
 from kallithea.lib import ext_json
 from kallithea.lib.utils2 import AttributeDict, ascii_bytes, safe_int, time_to_datetime
-from kallithea.model.db import Gist, Session, User
+from kallithea.model import meta
+from kallithea.model.db import Gist, User
 from kallithea.model.repo import RepoModel
 from kallithea.model.scm import ScmModel
 
@@ -121,8 +122,8 @@
         gist.owner_id = owner.user_id
         gist.gist_expires = gist_expires
         gist.gist_type = gist_type
-        Session().add(gist)
-        Session().flush() # make database assign gist.gist_id
+        meta.Session().add(gist)
+        meta.Session().flush() # make database assign gist.gist_id
         if gist_type == Gist.GIST_PUBLIC:
             # use DB ID for easy to use GIST ID
             gist.gist_access_id = str(gist.gist_id)
@@ -172,7 +173,7 @@
     def delete(self, gist, fs_remove=True):
         gist = Gist.guess_instance(gist)
         try:
-            Session().delete(gist)
+            meta.Session().delete(gist)
             if fs_remove:
                 self.__delete_gist(gist)
             else:
--- a/kallithea/model/permission.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/permission.py	Mon Oct 12 01:44:10 2020 +0200
@@ -32,7 +32,8 @@
 from sqlalchemy.exc import DatabaseError
 
 from kallithea.lib.utils2 import asbool
-from kallithea.model.db import Permission, Session, User, UserRepoGroupToPerm, UserRepoToPerm, UserToPerm, UserUserGroupToPerm
+from kallithea.model import meta
+from kallithea.model.db import Permission, User, UserRepoGroupToPerm, UserRepoToPerm, UserToPerm, UserUserGroupToPerm
 
 
 log = logging.getLogger(__name__)
@@ -51,7 +52,7 @@
             if not Permission.get_by_key(p[0]):
                 new_perm = Permission()
                 new_perm.permission_name = p[0]
-                Session().add(new_perm)
+                meta.Session().add(new_perm)
 
     def create_default_permissions(self, user, force=False):
         """
@@ -78,8 +79,8 @@
 
         if force:
             for perm in perms:
-                Session().delete(perm)
-            Session().commit()
+                meta.Session().delete(perm)
+            meta.Session().commit()
             defined_perms_groups = []
         # For every default permission that needs to be created, we check if
         # its group is already defined. If it's not, we create default permission.
@@ -89,7 +90,7 @@
                 log.debug('GR:%s not found, creating permission %s',
                           gr, perm_name)
                 new_perm = _make_perm(perm_name)
-                Session().add(new_perm)
+                meta.Session().add(new_perm)
 
     def update(self, form_result):
         perm_user = User.get_by_username(username=form_result['perm_user_name'])
@@ -113,7 +114,7 @@
                 .filter(UserToPerm.user == perm_user) \
                 .all()
             for p in u2p:
-                Session().delete(p)
+                meta.Session().delete(p)
             # create fresh set of permissions
             for def_perm_key in ['default_repo_perm',
                                  'default_group_perm',
@@ -124,7 +125,7 @@
                                  'default_register',
                                  'default_extern_activate']:
                 p = _make_new(perm_user, form_result[def_perm_key])
-                Session().add(p)
+                meta.Session().add(p)
 
             # stage 3 update all default permissions for repos if checked
             if form_result['overwrite_default_repo']:
@@ -157,8 +158,8 @@
                                .all():
                     g2p.permission = _def
 
-            Session().commit()
+            meta.Session().commit()
         except (DatabaseError,):
             log.error(traceback.format_exc())
-            Session().rollback()
+            meta.Session().rollback()
             raise
--- a/kallithea/model/repo.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/repo.py	Mon Oct 12 01:44:10 2020 +0200
@@ -40,7 +40,8 @@
 from kallithea.lib.utils import is_valid_repo_uri, make_ui
 from kallithea.lib.utils2 import LazyProperty, get_current_authuser, obfuscate_url_pw, remove_prefix
 from kallithea.lib.vcs.backends import get_backend
-from kallithea.model.db import (Permission, RepoGroup, Repository, RepositoryField, Session, Statistics, Ui, User, UserGroup, UserGroupRepoGroupToPerm,
+from kallithea.model import meta
+from kallithea.model.db import (Permission, RepoGroup, Repository, RepositoryField, Statistics, Ui, User, UserGroup, UserGroupRepoGroupToPerm,
                                 UserGroupRepoToPerm, UserRepoGroupToPerm, UserRepoToPerm)
 
 
@@ -65,7 +66,7 @@
 
         repo_to_perm.repository = repository
         repo_to_perm.user_id = def_user.user_id
-        Session().add(repo_to_perm)
+        meta.Session().add(repo_to_perm)
 
         return repo_to_perm
 
@@ -368,7 +369,7 @@
                 parent_repo = fork_of
                 new_repo.fork = parent_repo
 
-            Session().add(new_repo)
+            meta.Session().add(new_repo)
 
             if fork_of and copy_fork_permissions:
                 repo = fork_of
@@ -409,7 +410,7 @@
             ScmModel().toggle_following_repo(new_repo.repo_id, owner.user_id)
             # we need to flush here, in order to check if database won't
             # throw any exceptions, create filesystem dirs at the very end
-            Session().flush()
+            meta.Session().flush()
             return new_repo
         except Exception:
             log.error(traceback.format_exc())
@@ -493,7 +494,7 @@
 
             old_repo_dict = repo.get_dict()
             try:
-                Session().delete(repo)
+                meta.Session().delete(repo)
                 if fs_remove:
                     self._delete_filesystem_repo(repo)
                 else:
@@ -525,7 +526,7 @@
         if obj is None:
             # create new !
             obj = UserRepoToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
         obj.repository = repo
         obj.user = user
         obj.permission = permission
@@ -548,7 +549,7 @@
             .filter(UserRepoToPerm.user == user) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm on %s on %s', repo, user)
 
     def grant_user_group_permission(self, repo, group_name, perm):
@@ -574,7 +575,7 @@
         if obj is None:
             # create new
             obj = UserGroupRepoToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
 
         obj.repository = repo
         obj.users_group = group_name
@@ -598,7 +599,7 @@
             .filter(UserGroupRepoToPerm.users_group == group_name) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm to %s on %s', repo, group_name)
 
     def delete_stats(self, repo_name):
@@ -612,7 +613,7 @@
             obj = Statistics.query() \
                 .filter(Statistics.repository == repo).scalar()
             if obj is not None:
-                Session().delete(obj)
+                meta.Session().delete(obj)
         except Exception:
             log.error(traceback.format_exc())
             raise
--- a/kallithea/model/repo_group.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/repo_group.py	Mon Oct 12 01:44:10 2020 +0200
@@ -34,7 +34,8 @@
 
 import kallithea.lib.utils2
 from kallithea.lib.utils2 import LazyProperty
-from kallithea.model.db import Permission, RepoGroup, Repository, Session, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserRepoGroupToPerm
+from kallithea.model import meta
+from kallithea.model.db import Permission, RepoGroup, Repository, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserRepoGroupToPerm
 
 
 log = logging.getLogger(__name__)
@@ -65,7 +66,7 @@
 
         repo_group_to_perm.group = new_group
         repo_group_to_perm.user_id = def_user.user_id
-        Session().add(repo_group_to_perm)
+        meta.Session().add(repo_group_to_perm)
         return repo_group_to_perm
 
     def _create_group(self, group_name):
@@ -146,7 +147,7 @@
             new_repo_group.parent_group = parent_group
             new_repo_group.group_name = new_repo_group.get_new_name(group_name)
 
-            Session().add(new_repo_group)
+            meta.Session().add(new_repo_group)
 
             # create an ADMIN permission for owner except if we're super admin,
             # later owner should go into the owner field of groups
@@ -177,7 +178,7 @@
             if not just_db:
                 # we need to flush here, in order to check if database won't
                 # throw any exceptions, create filesystem dirs at the very end
-                Session().flush()
+                meta.Session().flush()
                 self._create_group(new_repo_group.group_name)
 
             return new_repo_group
@@ -296,7 +297,7 @@
                     raise Exception('invalid repo group name %s' % group_name)
                 repo_group.group_name = repo_group.get_new_name(group_name)
             new_path = repo_group.full_path
-            Session().add(repo_group)
+            meta.Session().add(repo_group)
 
             # iterate over all members of this groups and do fixes
             # if obj is a repoGroup also fix the name of the group according
@@ -328,7 +329,7 @@
     def delete(self, repo_group, force_delete=False):
         repo_group = RepoGroup.guess_instance(repo_group)
         try:
-            Session().delete(repo_group)
+            meta.Session().delete(repo_group)
             self._delete_group(repo_group, force_delete)
         except Exception:
             log.error('Error removing repo_group %s', repo_group)
@@ -457,7 +458,7 @@
         if obj is None:
             # create new !
             obj = UserRepoGroupToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
         obj.group = repo_group
         obj.user = user
         obj.permission = permission
@@ -481,7 +482,7 @@
             .filter(UserRepoGroupToPerm.group == repo_group) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm on %s on %s', repo_group, user)
 
     def grant_user_group_permission(self, repo_group, group_name, perm):
@@ -508,7 +509,7 @@
         if obj is None:
             # create new
             obj = UserGroupRepoGroupToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
 
         obj.group = repo_group
         obj.users_group = group_name
@@ -533,5 +534,5 @@
             .filter(UserGroupRepoGroupToPerm.users_group == group_name) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm to %s on %s', repo_group, group_name)
--- a/kallithea/model/scm.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/scm.py	Mon Oct 12 01:44:10 2020 +0200
@@ -46,7 +46,8 @@
 from kallithea.lib.vcs.exceptions import RepositoryError
 from kallithea.lib.vcs.nodes import FileNode
 from kallithea.lib.vcs.utils.lazy import LazyProperty
-from kallithea.model.db import PullRequest, RepoGroup, Repository, Session, Ui, User, UserFollowing, UserLog
+from kallithea.model import meta
+from kallithea.model.db import PullRequest, RepoGroup, Repository, Ui, User, UserFollowing, UserLog
 
 
 log = logging.getLogger(__name__)
@@ -230,7 +231,7 @@
 
         if f is not None:
             try:
-                Session().delete(f)
+                meta.Session().delete(f)
                 action_logger(UserTemp(user_id),
                               'stopped_following_repo',
                               RepoTemp(follow_repo_id))
@@ -243,7 +244,7 @@
             f = UserFollowing()
             f.user_id = user_id
             f.follows_repository_id = follow_repo_id
-            Session().add(f)
+            meta.Session().add(f)
 
             action_logger(UserTemp(user_id),
                           'started_following_repo',
@@ -259,7 +260,7 @@
 
         if f is not None:
             try:
-                Session().delete(f)
+                meta.Session().delete(f)
                 return
             except Exception:
                 log.error(traceback.format_exc())
@@ -269,7 +270,7 @@
             f = UserFollowing()
             f.user_id = user_id
             f.follows_user_id = follow_user_id
-            Session().add(f)
+            meta.Session().add(f)
         except Exception:
             log.error(traceback.format_exc())
             raise
--- a/kallithea/model/user_group.py	Sat Oct 10 23:38:20 2020 +0200
+++ b/kallithea/model/user_group.py	Mon Oct 12 01:44:10 2020 +0200
@@ -28,8 +28,8 @@
 import traceback
 
 from kallithea.lib.exceptions import RepoGroupAssignmentError, UserGroupsAssignedException
-from kallithea.model.db import (Permission, Session, User, UserGroup, UserGroupMember, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm,
-                                UserUserGroupToPerm)
+from kallithea.model import meta
+from kallithea.model.db import Permission, User, UserGroup, UserGroupMember, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm, UserUserGroupToPerm
 
 
 log = logging.getLogger(__name__)
@@ -51,7 +51,7 @@
 
         user_group_to_perm.user_group = user_group
         user_group_to_perm.user_id = def_user.user_id
-        Session().add(user_group_to_perm)
+        meta.Session().add(user_group_to_perm)
         return user_group_to_perm
 
     def _update_permissions(self, user_group, perms_new=None,
@@ -106,7 +106,7 @@
             new_user_group.users_group_active = active
             if group_data:
                 new_user_group.group_data = group_data
-            Session().add(new_user_group)
+            meta.Session().add(new_user_group)
             self._create_default_perms(new_user_group)
 
             self.grant_user_permission(user_group=new_user_group,
@@ -130,13 +130,13 @@
                         for u_id in set(v):
                             member = UserGroupMember(user_group.users_group_id, u_id)
                             members_list.append(member)
-                            Session().add(member)
+                            meta.Session().add(member)
                     user_group.members = members_list
                 setattr(user_group, k, v)
 
             # Flush to make db assign users_group_member_id to newly
             # created UserGroupMembers.
-            Session().flush()
+            meta.Session().flush()
         except Exception:
             log.error(traceback.format_exc())
             raise
@@ -160,7 +160,7 @@
             if assigned_groups and not force:
                 raise UserGroupsAssignedException(
                     'User Group assigned to %s' % ", ".join(assigned_groups))
-            Session().delete(user_group)
+            meta.Session().delete(user_group)
         except Exception:
             log.error(traceback.format_exc())
             raise
@@ -184,7 +184,7 @@
             user_group.members.append(user_group_member)
             user.group_member.append(user_group_member)
 
-            Session().add(user_group_member)
+            meta.Session().add(user_group_member)
             return user_group_member
         except Exception:
             log.error(traceback.format_exc())
@@ -203,7 +203,7 @@
 
         if user_group_member:
             try:
-                Session().delete(user_group_member)
+                meta.Session().delete(user_group_member)
                 return True
             except Exception:
                 log.error(traceback.format_exc())
@@ -235,7 +235,7 @@
         new = UserGroupToPerm()
         new.users_group = user_group
         new.permission = perm
-        Session().add(new)
+        meta.Session().add(new)
         return new
 
     def revoke_perm(self, user_group, perm):
@@ -246,7 +246,7 @@
             .filter(UserGroupToPerm.users_group == user_group) \
             .filter(UserGroupToPerm.permission == perm).scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
 
     def grant_user_permission(self, user_group, user, perm):
         """
@@ -271,7 +271,7 @@
         if obj is None:
             # create new !
             obj = UserUserGroupToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
         obj.user_group = user_group
         obj.user = user
         obj.permission = permission
@@ -295,7 +295,7 @@
             .filter(UserUserGroupToPerm.user_group == user_group) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm on %s on %s', user_group, user)
 
     def grant_user_group_permission(self, target_user_group, user_group, perm):
@@ -322,7 +322,7 @@
         if obj is None:
             # create new !
             obj = UserGroupUserGroupToPerm()
-            Session().add(obj)
+            meta.Session().add(obj)
         obj.user_group = user_group
         obj.target_user_group = target_user_group
         obj.permission = permission
@@ -344,7 +344,7 @@
             .filter(UserGroupUserGroupToPerm.user_group == user_group) \
             .scalar()
         if obj is not None:
-            Session().delete(obj)
+            meta.Session().delete(obj)
             log.debug('Revoked perm on %s on %s', target_user_group, user_group)
 
     def enforce_groups(self, user, groups, extern_type=None):