Show More
@@ -35,7 +35,7 b' from kallithea.lib.utils import repo2db_' | |||||
35 | load_rcextensions, check_git_version, set_vcs_config, set_indexer_config |
|
35 | load_rcextensions, check_git_version, set_vcs_config, set_indexer_config | |
36 | from kallithea.lib.utils2 import engine_from_config, str2bool |
|
36 | from kallithea.lib.utils2 import engine_from_config, str2bool | |
37 | from kallithea.lib.db_manage import DbManage |
|
37 | from kallithea.lib.db_manage import DbManage | |
38 | from kallithea.model import init_model |
|
38 | from kallithea.model.base import init_model | |
39 | from kallithea.model.scm import ScmModel |
|
39 | from kallithea.model.scm import ScmModel | |
40 |
|
40 | |||
41 | log = logging.getLogger(__name__) |
|
41 | log = logging.getLogger(__name__) |
@@ -37,7 +37,7 b' from decorator import decorator' | |||||
37 | from kallithea import CELERY_ON, CELERY_EAGER |
|
37 | from kallithea import CELERY_ON, CELERY_EAGER | |
38 | from kallithea.lib.utils2 import safe_str |
|
38 | from kallithea.lib.utils2 import safe_str | |
39 | from kallithea.lib.pidlock import DaemonLock, LockHeld |
|
39 | from kallithea.lib.pidlock import DaemonLock, LockHeld | |
40 | from kallithea.model import init_model |
|
40 | from kallithea.model.base import init_model | |
41 | from kallithea.model import meta |
|
41 | from kallithea.model import meta | |
42 |
|
42 | |||
43 | from sqlalchemy import engine_from_config |
|
43 | from sqlalchemy import engine_from_config |
@@ -38,7 +38,7 b' import alembic.command' | |||||
38 |
|
38 | |||
39 | from kallithea.lib.paster_commands.common import ask_ok |
|
39 | from kallithea.lib.paster_commands.common import ask_ok | |
40 | from kallithea.model.user import UserModel |
|
40 | from kallithea.model.user import UserModel | |
41 | from kallithea.model import init_model |
|
41 | from kallithea.model.base import init_model | |
42 | from kallithea.model.db import User, Permission, Ui, \ |
|
42 | from kallithea.model.db import User, Permission, Ui, \ | |
43 | Setting, UserToPerm, RepoGroup, \ |
|
43 | Setting, UserToPerm, RepoGroup, \ | |
44 | UserRepoGroupToPerm, CacheInvalidation, Repository |
|
44 | UserRepoGroupToPerm, CacheInvalidation, Repository |
@@ -384,7 +384,7 b' def handle_git_receive(repo_path, revs, ' | |||||
384 | from paste.deploy import appconfig |
|
384 | from paste.deploy import appconfig | |
385 | from sqlalchemy import engine_from_config |
|
385 | from sqlalchemy import engine_from_config | |
386 | from kallithea.config.environment import load_environment |
|
386 | from kallithea.config.environment import load_environment | |
387 | from kallithea.model import init_model |
|
387 | from kallithea.model.base import init_model | |
388 | from kallithea.model.db import Ui |
|
388 | from kallithea.model.db import Ui | |
389 | from kallithea.lib.utils import make_ui |
|
389 | from kallithea.lib.utils import make_ui | |
390 | extras = _extract_extras(env) |
|
390 | extras = _extract_extras(env) |
@@ -100,7 +100,7 b' class BasePasterCommand(Command):' | |||||
100 | logging.config.fileConfig(self.path_to_ini_file) |
|
100 | logging.config.fileConfig(self.path_to_ini_file) | |
101 |
|
101 | |||
102 | from pylons import config |
|
102 | from pylons import config | |
103 | from kallithea.model import init_model |
|
103 | from kallithea.model.base import init_model | |
104 | from kallithea.lib.utils2 import engine_from_config |
|
104 | from kallithea.lib.utils2 import engine_from_config | |
105 | setup_cache_regions(config) |
|
105 | setup_cache_regions(config) | |
106 | engine = engine_from_config(config, 'sqlalchemy.') |
|
106 | engine = engine_from_config(config, 'sqlalchemy.') |
@@ -23,87 +23,4 b' Original author and date, and relevant c' | |||||
23 | :author: marcink |
|
23 | :author: marcink | |
24 | :copyright: (c) 2013 RhodeCode GmbH, and others. |
|
24 | :copyright: (c) 2013 RhodeCode GmbH, and others. | |
25 | :license: GPLv3, see LICENSE.md for more details. |
|
25 | :license: GPLv3, see LICENSE.md for more details. | |
26 |
|
||||
27 |
|
||||
28 | :example: |
|
|||
29 |
|
||||
30 | .. code-block:: python |
|
|||
31 |
|
||||
32 | from paste.deploy import appconfig |
|
|||
33 | from pylons import config |
|
|||
34 | from sqlalchemy import engine_from_config |
|
|||
35 | from kallithea.config.environment import load_environment |
|
|||
36 |
|
||||
37 | conf = appconfig('config:development.ini', relative_to = './../../') |
|
|||
38 | load_environment(conf.global_conf, conf.local_conf) |
|
|||
39 |
|
||||
40 | engine = engine_from_config(config, 'sqlalchemy.') |
|
|||
41 | init_model(engine) |
|
|||
42 | # RUN YOUR CODE HERE |
|
|||
43 |
|
||||
44 | """ |
|
26 | """ | |
45 |
|
||||
46 |
|
||||
47 | import logging |
|
|||
48 | from kallithea.model import meta |
|
|||
49 | from kallithea.lib.utils2 import obfuscate_url_pw |
|
|||
50 |
|
||||
51 | log = logging.getLogger(__name__) |
|
|||
52 |
|
||||
53 |
|
||||
54 | def init_model(engine): |
|
|||
55 | """ |
|
|||
56 | Initializes db session, bind the engine with the metadata, |
|
|||
57 | Call this before using any of the tables or classes in the model, |
|
|||
58 | preferably once in application start |
|
|||
59 |
|
||||
60 | :param engine: engine to bind to |
|
|||
61 | """ |
|
|||
62 | engine_str = obfuscate_url_pw(str(engine.url)) |
|
|||
63 | log.info("initializing db for %s", engine_str) |
|
|||
64 | meta.Base.metadata.bind = engine |
|
|||
65 |
|
||||
66 |
|
||||
67 | class BaseModel(object): |
|
|||
68 | """ |
|
|||
69 | Base Model for all Kallithea models, it adds sql alchemy session |
|
|||
70 | into instance of model |
|
|||
71 |
|
||||
72 | :param sa: If passed it reuses this session instead of creating a new one |
|
|||
73 | """ |
|
|||
74 |
|
||||
75 | def __init__(self, sa=None): |
|
|||
76 | if sa is not None: |
|
|||
77 | self.sa = sa |
|
|||
78 | else: |
|
|||
79 | self.sa = meta.Session() |
|
|||
80 |
|
||||
81 | def _get_user(self, user): |
|
|||
82 | """ |
|
|||
83 | Helper method to get user by ID, or username fallback |
|
|||
84 |
|
||||
85 | :param user: UserID, username, or User instance |
|
|||
86 | """ |
|
|||
87 | from kallithea.model.db import User |
|
|||
88 | return User.guess_instance(user, |
|
|||
89 | callback=User.get_by_username) |
|
|||
90 |
|
||||
91 | def _get_repo(self, repository): |
|
|||
92 | """ |
|
|||
93 | Helper method to get repository by ID, or repository name |
|
|||
94 |
|
||||
95 | :param repository: RepoID, repository name or Repository Instance |
|
|||
96 | """ |
|
|||
97 | from kallithea.model.db import Repository |
|
|||
98 | return Repository.guess_instance(repository, |
|
|||
99 | callback=Repository.get_by_repo_name) |
|
|||
100 |
|
||||
101 | def _get_perm(self, permission): |
|
|||
102 | """ |
|
|||
103 | Helper method to get permission by ID, or permission name |
|
|||
104 |
|
||||
105 | :param permission: PermissionID, permission_name or Permission instance |
|
|||
106 | """ |
|
|||
107 | from kallithea.model.db import Permission |
|
|||
108 | return Permission.guess_instance(permission, |
|
|||
109 | callback=Permission.get_by_key) |
|
@@ -30,7 +30,7 b' import logging' | |||||
30 | from sqlalchemy import or_ |
|
30 | from sqlalchemy import or_ | |
31 |
|
31 | |||
32 | from kallithea.lib.utils2 import generate_api_key |
|
32 | from kallithea.lib.utils2 import generate_api_key | |
33 | from kallithea.model import BaseModel |
|
33 | from kallithea.model.base import BaseModel | |
34 | from kallithea.model.db import UserApiKeys |
|
34 | from kallithea.model.db import UserApiKeys | |
35 | from kallithea.model.meta import Session |
|
35 | from kallithea.model.meta import Session | |
36 |
|
36 |
@@ -12,8 +12,8 b'' | |||||
12 | # You should have received a copy of the GNU General Public License |
|
12 | # You should have received a copy of the GNU General Public License | |
13 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
13 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
14 | """ |
|
14 | """ | |
15 | kallithea.model |
|
15 | kallithea.model.base | |
16 | ~~~~~~~~~~~~~~~ |
|
16 | ~~~~~~~~~~~~~~~~~~~~ | |
17 |
|
17 | |||
18 | The application's model objects |
|
18 | The application's model objects | |
19 |
|
19 |
@@ -28,7 +28,7 b' Original author and date, and relevant c' | |||||
28 | import logging |
|
28 | import logging | |
29 | from sqlalchemy.orm import joinedload |
|
29 | from sqlalchemy.orm import joinedload | |
30 |
|
30 | |||
31 | from kallithea.model import BaseModel |
|
31 | from kallithea.model.base import BaseModel | |
32 | from kallithea.model.db import ChangesetStatus, PullRequest |
|
32 | from kallithea.model.db import ChangesetStatus, PullRequest | |
33 | from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError |
|
33 | from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError | |
34 |
|
34 |
@@ -32,7 +32,7 b' from collections import defaultdict' | |||||
32 |
|
32 | |||
33 | from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode |
|
33 | from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode | |
34 | from kallithea.lib import helpers as h |
|
34 | from kallithea.lib import helpers as h | |
35 | from kallithea.model import BaseModel |
|
35 | from kallithea.model.base import BaseModel | |
36 | from kallithea.model.db import ChangesetComment, User, \ |
|
36 | from kallithea.model.db import ChangesetComment, User, \ | |
37 | Notification, PullRequest |
|
37 | Notification, PullRequest | |
38 | from kallithea.model.notification import NotificationModel |
|
38 | from kallithea.model.notification import NotificationModel |
@@ -34,7 +34,7 b' import shutil' | |||||
34 | from kallithea.lib.utils2 import safe_unicode, unique_id, safe_int, \ |
|
34 | from kallithea.lib.utils2 import safe_unicode, unique_id, safe_int, \ | |
35 | time_to_datetime, AttributeDict |
|
35 | time_to_datetime, AttributeDict | |
36 | from kallithea.lib.compat import json |
|
36 | from kallithea.lib.compat import json | |
37 | from kallithea.model import BaseModel |
|
37 | from kallithea.model.base import BaseModel | |
38 | from kallithea.model.db import Gist |
|
38 | from kallithea.model.db import Gist | |
39 | from kallithea.model.repo import RepoModel |
|
39 | from kallithea.model.repo import RepoModel | |
40 | from kallithea.model.scm import ScmModel |
|
40 | from kallithea.model.scm import ScmModel |
@@ -36,7 +36,7 b' from sqlalchemy.orm import joinedload, s' | |||||
36 | import kallithea |
|
36 | import kallithea | |
37 | from kallithea.lib import helpers as h |
|
37 | from kallithea.lib import helpers as h | |
38 | from kallithea.lib.utils2 import safe_unicode |
|
38 | from kallithea.lib.utils2 import safe_unicode | |
39 | from kallithea.model import BaseModel |
|
39 | from kallithea.model.base import BaseModel | |
40 | from kallithea.model.db import Notification, User, UserNotification |
|
40 | from kallithea.model.db import Notification, User, UserNotification | |
41 | from kallithea.model.meta import Session |
|
41 | from kallithea.model.meta import Session | |
42 |
|
42 |
@@ -31,7 +31,7 b' import traceback' | |||||
31 |
|
31 | |||
32 | from sqlalchemy.exc import DatabaseError |
|
32 | from sqlalchemy.exc import DatabaseError | |
33 |
|
33 | |||
34 | from kallithea.model import BaseModel |
|
34 | from kallithea.model.base import BaseModel | |
35 | from kallithea.model.db import User, Permission, UserToPerm, UserRepoToPerm, \ |
|
35 | from kallithea.model.db import User, Permission, UserToPerm, UserRepoToPerm, \ | |
36 | UserRepoGroupToPerm, UserUserGroupToPerm |
|
36 | UserRepoGroupToPerm, UserUserGroupToPerm | |
37 | from kallithea.lib.utils2 import str2bool |
|
37 | from kallithea.lib.utils2 import str2bool |
@@ -35,7 +35,7 b' from sqlalchemy.orm import joinedload' | |||||
35 | from kallithea.model.meta import Session |
|
35 | from kallithea.model.meta import Session | |
36 | from kallithea.lib import helpers as h |
|
36 | from kallithea.lib import helpers as h | |
37 | from kallithea.lib.exceptions import UserInvalidException |
|
37 | from kallithea.lib.exceptions import UserInvalidException | |
38 | from kallithea.model import BaseModel |
|
38 | from kallithea.model.base import BaseModel | |
39 | from kallithea.model.db import PullRequest, PullRequestReviewers, Notification, \ |
|
39 | from kallithea.model.db import PullRequest, PullRequestReviewers, Notification, \ | |
40 | ChangesetStatus, User |
|
40 | ChangesetStatus, User | |
41 | from kallithea.model.notification import NotificationModel |
|
41 | from kallithea.model.notification import NotificationModel |
@@ -41,7 +41,7 b' from kallithea.lib.utils2 import LazyPro' | |||||
41 | from kallithea.lib.caching_query import FromCache |
|
41 | from kallithea.lib.caching_query import FromCache | |
42 | from kallithea.lib.hooks import log_delete_repository |
|
42 | from kallithea.lib.hooks import log_delete_repository | |
43 |
|
43 | |||
44 | from kallithea.model import BaseModel |
|
44 | from kallithea.model.base import BaseModel | |
45 | from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \ |
|
45 | from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \ | |
46 | UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, \ |
|
46 | UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, \ | |
47 | Statistics, UserGroup, Ui, RepoGroup, RepositoryField |
|
47 | Statistics, UserGroup, Ui, RepoGroup, RepositoryField |
@@ -34,7 +34,7 b' import datetime' | |||||
34 |
|
34 | |||
35 | from kallithea.lib.utils2 import LazyProperty |
|
35 | from kallithea.lib.utils2 import LazyProperty | |
36 |
|
36 | |||
37 | from kallithea.model import BaseModel |
|
37 | from kallithea.model.base import BaseModel | |
38 | from kallithea.model.db import RepoGroup, Ui, UserRepoGroupToPerm, \ |
|
38 | from kallithea.model.db import RepoGroup, Ui, UserRepoGroupToPerm, \ | |
39 | User, Permission, UserGroupRepoGroupToPerm, UserGroup, Repository |
|
39 | User, Permission, UserGroupRepoGroupToPerm, UserGroup, Repository | |
40 |
|
40 |
@@ -24,7 +24,7 b' Original author and date, and relevant c' | |||||
24 | """ |
|
24 | """ | |
25 |
|
25 | |||
26 | import logging |
|
26 | import logging | |
27 | from kallithea.model import BaseModel |
|
27 | from kallithea.model.base import BaseModel | |
28 | from kallithea.model.db import UserRepoToPerm, UserGroupRepoToPerm, \ |
|
28 | from kallithea.model.db import UserRepoToPerm, UserGroupRepoToPerm, \ | |
29 | Permission |
|
29 | Permission | |
30 |
|
30 |
@@ -53,7 +53,7 b' from kallithea.lib.auth import HasRepoPe' | |||||
53 | HasUserGroupPermissionAny, HasPermissionAny, HasPermissionAny |
|
53 | HasUserGroupPermissionAny, HasPermissionAny, HasPermissionAny | |
54 | from kallithea.lib.utils import get_filesystem_repos, make_ui, \ |
|
54 | from kallithea.lib.utils import get_filesystem_repos, make_ui, \ | |
55 | action_logger |
|
55 | action_logger | |
56 | from kallithea.model import BaseModel |
|
56 | from kallithea.model.base import BaseModel | |
57 | from kallithea.model.db import Repository, Ui, CacheInvalidation, \ |
|
57 | from kallithea.model.db import Repository, Ui, CacheInvalidation, \ | |
58 | UserFollowing, UserLog, User, RepoGroup, PullRequest |
|
58 | UserFollowing, UserLog, User, RepoGroup, PullRequest | |
59 | from kallithea.lib.hooks import log_push_action |
|
59 | from kallithea.lib.hooks import log_push_action |
@@ -39,7 +39,7 b' from sqlalchemy.exc import DatabaseError' | |||||
39 |
|
39 | |||
40 | from kallithea.lib.utils2 import safe_str, generate_api_key, get_current_authuser |
|
40 | from kallithea.lib.utils2 import safe_str, generate_api_key, get_current_authuser | |
41 | from kallithea.lib.caching_query import FromCache |
|
41 | from kallithea.lib.caching_query import FromCache | |
42 | from kallithea.model import BaseModel |
|
42 | from kallithea.model.base import BaseModel | |
43 | from kallithea.model.db import User, UserToPerm, Notification, \ |
|
43 | from kallithea.model.db import User, UserToPerm, Notification, \ | |
44 | UserEmailMap, UserIpMap |
|
44 | UserEmailMap, UserIpMap | |
45 | from kallithea.lib.exceptions import DefaultUserException, \ |
|
45 | from kallithea.lib.exceptions import DefaultUserException, \ |
@@ -27,7 +27,7 b' Original author and date, and relevant c' | |||||
27 | import logging |
|
27 | import logging | |
28 | import traceback |
|
28 | import traceback | |
29 |
|
29 | |||
30 | from kallithea.model import BaseModel |
|
30 | from kallithea.model.base import BaseModel | |
31 | from kallithea.model.db import UserGroupMember, UserGroup, \ |
|
31 | from kallithea.model.db import UserGroupMember, UserGroup, \ | |
32 | UserGroupRepoToPerm, Permission, UserGroupToPerm, User, UserUserGroupToPerm, \ |
|
32 | UserGroupRepoToPerm, Permission, UserGroupToPerm, User, UserUserGroupToPerm, \ | |
33 | UserGroupUserGroupToPerm |
|
33 | UserGroupUserGroupToPerm |
@@ -39,7 +39,7 b' from paste.deploy import appconfig' | |||||
39 | from sqlalchemy import engine_from_config |
|
39 | from sqlalchemy import engine_from_config | |
40 |
|
40 | |||
41 | from kallithea.lib.utils import setup_cache_regions |
|
41 | from kallithea.lib.utils import setup_cache_regions | |
42 | from kallithea.model import init_model |
|
42 | from kallithea.model.base import init_model | |
43 | from kallithea.model import meta |
|
43 | from kallithea.model import meta | |
44 | from kallithea.model.db import User, Repository, Ui |
|
44 | from kallithea.model.db import User, Repository, Ui | |
45 | from kallithea.lib.auth import get_crypt_password |
|
45 | from kallithea.lib.auth import get_crypt_password |
General Comments 0
You need to be logged in to leave comments.
Login now