annotate rhodecode/lib/db_manage.py @ 3920:985db7f7b9b2 beta

Added flag to controll option for changing the repos path location from web interface
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 30 May 2013 16:08:14 +0200
parents 7cca0d07c12b
children 5293d4bbb1ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
1 # -*- coding: utf-8 -*-
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
2 """
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
3 rhodecode.lib.db_manage
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
5
838
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
6 Database creation, and setup module for RhodeCode. Used for creation
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
7 of database as well as for migration operations
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1138
diff changeset
8
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
9 :created_on: Apr 10, 2010
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
10 :author: marcink
1824
89efedac4e6c 2012 copyrights
Marcin Kuzminski <marcin@python-works.com>
parents: 1783
diff changeset
11 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
12 :license: GPLv3, see COPYING for more details.
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
13 """
1206
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
14 # This program is free software: you can redistribute it and/or modify
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
15 # it under the terms of the GNU General Public License as published by
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
16 # the Free Software Foundation, either version 3 of the License, or
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
17 # (at your option) any later version.
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1138
diff changeset
18 #
252
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
19 # This program is distributed in the hope that it will be useful,
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
22 # GNU General Public License for more details.
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1138
diff changeset
23 #
252
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
24 # You should have received a copy of the GNU General Public License
1206
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
252
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 249
diff changeset
26
249
bad9ccac26b7 fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents: 243
diff changeset
27 import os
bad9ccac26b7 fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents: 243
diff changeset
28 import sys
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
29 import time
327
0e87466a117e updated installation instruction, made more user friendly way of creating all needed configs. All is done now from paster setup-app
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
30 import uuid
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
31 import logging
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
32 from os.path import dirname as dn, join as jn
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
33
2827
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
34 from rhodecode import __dbversion__, __py_version__
249
bad9ccac26b7 fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents: 243
diff changeset
35
1634
1d904d972c47 User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents: 1633
diff changeset
36 from rhodecode.model.user import UserModel
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 533
diff changeset
37 from rhodecode.lib.utils import ask_ok
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 533
diff changeset
38 from rhodecode.model import init_model
1266
a1bcfe58a1ab Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
39 from rhodecode.model.db import User, Permission, RhodeCodeUi, \
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
40 RhodeCodeSetting, UserToPerm, DbMigrateVersion, RepoGroup, \
3758
d5c684052ea4 fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 3757
diff changeset
41 UserRepoGroupToPerm, CacheInvalidation, UserGroup
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
42
239
b18f89d6d17f Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents: 234
diff changeset
43 from sqlalchemy.engine import create_engine
1985
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
44 from rhodecode.model.repos_group import ReposGroupModel
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
45 #from rhodecode.model import meta
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
46 from rhodecode.model.meta import Session, Base
3309
b3cf4539d1bd Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents: 3232
diff changeset
47 from rhodecode.model.repo import RepoModel
3733
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
48 from rhodecode.model.permission import PermissionModel
3758
d5c684052ea4 fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 3757
diff changeset
49 from rhodecode.model.users_group import UserGroupModel
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
50
835
08d2dcd71666 fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents: 834
diff changeset
51
351
d09381593b12 updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents: 350
diff changeset
52 log = logging.getLogger(__name__)
66
163464441e0d updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents: 59
diff changeset
53
1266
a1bcfe58a1ab Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
54
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
55 def notify(msg):
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
56 """
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
57 Notification for migrations messages
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
58 """
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
59 ml = len(msg) + (4 * 2)
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
60 print('\n%s\n*** %s ***\n%s' % ('*' * ml, msg, '*' * ml)).upper()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
61
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
62
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
63 class UpgradeSteps(object):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
64 """
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
65 Those steps follow schema versions so for example schema
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
66 for example schema with seq 002 == step_2 and so on.
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
67 """
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
68
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
69 def __init__(self, klass):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
70 self.klass = klass
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
71
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
72 def step_1(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
73 pass
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
74
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
75 def step_2(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
76 notify('Patching repo paths for newer version of RhodeCode')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
77 self.klass.fix_repo_paths()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
78
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
79 notify('Patching default user of RhodeCode')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
80 self.klass.fix_default_user()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
81
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
82 log.info('Changing ui settings')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
83 self.klass.create_ui_settings()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
84
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
85 def step_3(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
86 notify('Adding additional settings into RhodeCode db')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
87 self.klass.fix_settings()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
88 notify('Adding ldap defaults')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
89 self.klass.create_ldap_options(skip_existing=True)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
90
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
91 def step_4(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
92 notify('create permissions and fix groups')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
93 self.klass.create_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
94 self.klass.fixup_groups()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
95
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
96 def step_5(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
97 pass
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
98
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
99 def step_6(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
100
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
101 notify('re-checking permissions')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
102 self.klass.create_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
103
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
104 notify('installing new UI options')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
105 sett4 = RhodeCodeSetting('show_public_icon', True)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
106 Session().add(sett4)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
107 sett5 = RhodeCodeSetting('show_private_icon', True)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
108 Session().add(sett5)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
109 sett6 = RhodeCodeSetting('stylify_metatags', False)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
110 Session().add(sett6)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
111
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
112 notify('fixing old PULL hook')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
113 _pull = RhodeCodeUi.get_by_key('preoutgoing.pull_logger')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
114 if _pull:
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
115 _pull.ui_key = RhodeCodeUi.HOOK_PULL
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
116 Session().add(_pull)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
117
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
118 notify('fixing old PUSH hook')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
119 _push = RhodeCodeUi.get_by_key('pretxnchangegroup.push_logger')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
120 if _push:
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
121 _push.ui_key = RhodeCodeUi.HOOK_PUSH
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
122 Session().add(_push)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
123
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
124 notify('installing new pre-push hook')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
125 hooks4 = RhodeCodeUi()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
126 hooks4.ui_section = 'hooks'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
127 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
128 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
129 Session().add(hooks4)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
130
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
131 notify('installing new pre-pull hook')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
132 hooks6 = RhodeCodeUi()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
133 hooks6.ui_section = 'hooks'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
134 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
135 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
136 Session().add(hooks6)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
137
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
138 notify('installing hgsubversion option')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
139 # enable hgsubversion disabled by default
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
140 hgsubversion = RhodeCodeUi()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
141 hgsubversion.ui_section = 'extensions'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
142 hgsubversion.ui_key = 'hgsubversion'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
143 hgsubversion.ui_value = ''
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
144 hgsubversion.ui_active = False
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
145 Session().add(hgsubversion)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
146
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
147 notify('installing hg git option')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
148 # enable hggit disabled by default
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
149 hggit = RhodeCodeUi()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
150 hggit.ui_section = 'extensions'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
151 hggit.ui_key = 'hggit'
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
152 hggit.ui_value = ''
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
153 hggit.ui_active = False
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
154 Session().add(hggit)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
155
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
156 notify('re-check default permissions')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
157 default_user = User.get_by_username(User.DEFAULT_USER)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
158 perm = Permission.get_by_key('hg.fork.repository')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
159 reg_perm = UserToPerm()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
160 reg_perm.user = default_user
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
161 reg_perm.permission = perm
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
162 Session().add(reg_perm)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
163
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
164 def step_7(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
165 perm_fixes = self.klass.reset_permissions(User.DEFAULT_USER)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
166 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
167 if perm_fixes:
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
168 notify('There was an inconsistent state of permissions '
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
169 'detected for default user. Permissions are now '
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
170 'reset to the default value for default user. '
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
171 'Please validate and check default permissions '
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
172 'in admin panel')
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
173
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
174 def step_8(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
175 self.klass.create_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
176 self.klass.populate_default_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
177 self.klass.create_default_options(skip_existing=True)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
178 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
179
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
180 def step_9(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
181 pass
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
182
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
183 def step_10(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
184 pass
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
185
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
186 def step_11(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
187 self.klass.update_repo_info()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
188
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
189 def step_12(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
190 self.klass.create_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
191 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
192
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
193 self.klass.populate_default_permissions()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
194 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
195
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
196 #fix all usergroups
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
197 ug_model = UserGroupModel()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
198 for ug in UserGroup.get_all():
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
199 perm_obj = ug_model._create_default_perms(ug)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
200 Session().add(perm_obj)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
201 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
202
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
203 adm = User.get_first_admin()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
204 # fix owners of UserGroup
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
205 for ug in Session().query(UserGroup).all():
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
206 ug.user_id = adm.user_id
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
207 Session().add(ug)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
208 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
209
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
210 # fix owners of RepoGroup
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
211 for ug in Session().query(RepoGroup).all():
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
212 ug.user_id = adm.user_id
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
213 Session().add(ug)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
214 Session().commit()
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
215
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
216 def step_13(self):
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
217 pass
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
218
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
219
226
c6526b7531e9 rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents: 88
diff changeset
220 class DbManage(object):
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
221 def __init__(self, log_sql, dbconf, root, tests=False, cli_args={}):
781
7ae66bddf48d fixed db manage, to work on other databases than sqlite
Marcin Kuzminski <marcin@python-works.com>
parents: 773
diff changeset
222 self.dbname = dbconf.split('/')[-1]
459
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
223 self.tests = tests
552
2642f128ad46 removed egg info, update files for distutils build
Marcin Kuzminski <marcin@python-works.com>
parents: 549
diff changeset
224 self.root = root
781
7ae66bddf48d fixed db manage, to work on other databases than sqlite
Marcin Kuzminski <marcin@python-works.com>
parents: 773
diff changeset
225 self.dburi = dbconf
907
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
226 self.log_sql = log_sql
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
227 self.db_exists = False
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
228 self.cli_args = cli_args
907
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
229 self.init_db()
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
230
3671
658ccf9727ef setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents: 3631
diff changeset
231 force_ask = self.cli_args.get('force_ask')
658ccf9727ef setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents: 3631
diff changeset
232 if force_ask is not None:
658ccf9727ef setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents: 3631
diff changeset
233 global ask_ok
658ccf9727ef setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents: 3631
diff changeset
234 ask_ok = lambda *args, **kwargs: force_ask
907
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
235
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
236 def init_db(self):
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
237 engine = create_engine(self.dburi, echo=self.log_sql)
226
c6526b7531e9 rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents: 88
diff changeset
238 init_model(engine)
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
239 self.sa = Session()
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
240
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
241 def create_tables(self, override=False):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
242 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
243 Create a auth database
226
c6526b7531e9 rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents: 88
diff changeset
244 """
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
245
1138
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
246 log.info("Any existing database is going to be destroyed")
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
247 if self.tests:
1138
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
248 destroy = True
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
249 else:
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
250 destroy = ask_ok('Are you sure to destroy old database ? [y/n]')
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
251 if not destroy:
3714
7e3d89d9d3a2 - Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents: 3671
diff changeset
252 sys.exit('Nothing tables created')
1138
9c45e11493fb fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents: 1116
diff changeset
253 if destroy:
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
254 Base.metadata.drop_all()
964
84bb5b8b498d changed dev and tests to postgressql for more error proof setup.
Marcin Kuzminski <marcin@python-works.com>
parents: 907
diff changeset
255
351
d09381593b12 updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents: 350
diff changeset
256 checkfirst = not override
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
257 Base.metadata.create_all(checkfirst=checkfirst)
1976
Marcin Kuzminski <marcin@python-works.com>
parents: 1904
diff changeset
258 log.info('Created tables for %s' % self.dbname)
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
259
834
8924ed0e4f36 added current db version into rhodecode,
Marcin Kuzminski <marcin@python-works.com>
parents: 781
diff changeset
260 def set_db_version(self):
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
261 ver = DbMigrateVersion()
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
262 ver.version = __dbversion__
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
263 ver.repository_id = 'rhodecode_db_migrations'
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
264 ver.repository_path = 'versions'
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
265 self.sa.add(ver)
1976
Marcin Kuzminski <marcin@python-works.com>
parents: 1904
diff changeset
266 log.info('db version set to: %s' % __dbversion__)
834
8924ed0e4f36 added current db version into rhodecode,
Marcin Kuzminski <marcin@python-works.com>
parents: 781
diff changeset
267
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
268 def upgrade(self):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
269 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
270 Upgrades given database schema to given revision following
900
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents: 890
diff changeset
271 all needed steps, to perform the upgrade
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1138
diff changeset
272
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
273 """
841
78b3d2d730f2 fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents: 839
diff changeset
274
78b3d2d730f2 fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents: 839
diff changeset
275 from rhodecode.lib.dbmigrate.migrate.versioning import api
78b3d2d730f2 fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents: 839
diff changeset
276 from rhodecode.lib.dbmigrate.migrate.exceptions import \
78b3d2d730f2 fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents: 839
diff changeset
277 DatabaseNotControlledError
78b3d2d730f2 fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents: 839
diff changeset
278
1835
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
279 if 'sqlite' in self.dburi:
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
280 print (
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
281 '********************** WARNING **********************\n'
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
282 'Make sure your version of sqlite is at least 3.7.X. \n'
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
283 'Earlier versions are known to fail on some migrations\n'
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
284 '*****************************************************\n'
971ce5e20856 added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents: 1824
diff changeset
285 )
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
286 upgrade = ask_ok('You are about to perform database upgrade, make '
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
287 'sure You backed up your database before. '
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
288 'Continue ? [y/n]')
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
289 if not upgrade:
3714
7e3d89d9d3a2 - Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents: 3671
diff changeset
290 sys.exit('No upgrade performed')
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
291
843
3b21ba5f7cb0 fixed path issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents: 841
diff changeset
292 repository_path = jn(dn(dn(dn(os.path.realpath(__file__)))),
3b21ba5f7cb0 fixed path issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents: 841
diff changeset
293 'rhodecode/lib/dbmigrate')
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
294 db_uri = self.dburi
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
295
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
296 try:
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
297 curr_version = api.db_version(db_uri, repository_path)
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
298 msg = ('Found current database under version'
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
299 ' control with version %s' % curr_version)
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
300
1299
8eda822931c9 small fixes for interactive prompt in setup
Marcin Kuzminski <marcin@python-works.com>
parents: 1290
diff changeset
301 except (RuntimeError, DatabaseNotControlledError):
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
302 curr_version = 1
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
303 msg = ('Current database is not under version control. Setting'
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
304 ' as version %s' % curr_version)
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
305 api.version_control(db_uri, repository_path, curr_version)
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
306
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
307 notify(msg)
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
308
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
309 if curr_version == __dbversion__:
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
310 sys.exit('This database is already at the newest version')
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
311
3757
f08881dcc9eb invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents: 3734
diff changeset
312 # clear cache keys
f08881dcc9eb invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents: 3734
diff changeset
313 log.info("Clearing cache keys now...")
f08881dcc9eb invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents: 3734
diff changeset
314 CacheInvalidation.clear_cache()
f08881dcc9eb invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents: 3734
diff changeset
315
3906
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
316 upgrade_steps = range(curr_version + 1, __dbversion__ + 1)
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
317 notify('attempting to do database upgrade from '
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
318 'version %s to version %s' % (curr_version, __dbversion__))
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
319
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
320 # CALL THE PROPER ORDER OF STEPS TO PERFORM FULL UPGRADE
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
321 _step = None
839
ad66bd0e5601 moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 838
diff changeset
322 for step in upgrade_steps:
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
323 notify('performing upgrade step %s' % step)
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
324 time.sleep(2)
3906
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
325
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
326 api.upgrade(db_uri, repository_path, step)
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
327 notify('schema upgrade for step %s completed' % (step,))
3906
a2de0de0a4a9 migration to 1.7.0
Marcin Kuzminski <marcin@python-works.com>
parents: 3889
diff changeset
328
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
329 fixture = 'step_%s' % step
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
330 notify('performing fixture step %s' % fixture)
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
331 getattr(UpgradeSteps(self), fixture)()
1987
77b5c24f1887 fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents: 1986
diff changeset
332 self.sa.commit()
3907
c7b919b2d90d Changed default behaviour of dbmanage to fix issues with continues
Marcin Kuzminski <marcin@python-works.com>
parents: 3906
diff changeset
333 notify('fixture %s completed' % (fixture,))
2779
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
334 _step = step
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
335
d0d3158850d4 migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents: 2767
diff changeset
336 notify('upgrade to version %s successful' % _step)
2000
72c525a7e7ad added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents: 1987
diff changeset
337
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
338 def fix_repo_paths(self):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
339 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
340 Fixes a old rhodecode version path into new one without a '*'
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
341 """
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
342
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
343 paths = self.sa.query(RhodeCodeUi)\
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
344 .filter(RhodeCodeUi.ui_key == '/')\
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
345 .scalar()
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
346
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
347 paths.ui_value = paths.ui_value.replace('*', '')
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
348
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
349 try:
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
350 self.sa.add(paths)
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
351 self.sa.commit()
3631
10b4e34841a4 Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents: 3625
diff changeset
352 except Exception:
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
353 self.sa.rollback()
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
354 raise
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
355
838
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
356 def fix_default_user(self):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
357 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
358 Fixes a old default user with some 'nicer' default values,
838
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
359 used mostly for anonymous access
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
360 """
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
361 def_user = self.sa.query(User)\
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
362 .filter(User.username == 'default')\
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
363 .one()
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
364
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
365 def_user.name = 'Anonymous'
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
366 def_user.lastname = 'User'
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
367 def_user.email = 'anonymous@rhodecode.org'
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
368
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
369 try:
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
370 self.sa.add(def_user)
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
371 self.sa.commit()
3631
10b4e34841a4 Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents: 3625
diff changeset
372 except Exception:
838
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
373 self.sa.rollback()
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
374 raise
12eb1a018199 db migrations:
Marcin Kuzminski <marcin@python-works.com>
parents: 837
diff changeset
375
890
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
376 def fix_settings(self):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
377 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
378 Fixes rhodecode settings adds ga_code key for google analytics
890
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
379 """
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
380
1633
2c0d35e336b5 refactoring of models names for repoGroup permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 1510
diff changeset
381 hgsettings3 = RhodeCodeSetting('ga_code', '')
907
2f83756f3041 Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
382
890
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
383 try:
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
384 self.sa.add(hgsettings3)
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
385 self.sa.commit()
3631
10b4e34841a4 Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents: 3625
diff changeset
386 except Exception:
890
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
387 self.sa.rollback()
042d38683d42 implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents: 843
diff changeset
388 raise
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
389
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
390 def admin_prompt(self, second=False):
459
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
391 if not self.tests:
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
392 import getpass
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
393
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
394 # defaults
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
395 defaults = self.cli_args
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
396 username = defaults.get('username')
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
397 password = defaults.get('password')
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
398 email = defaults.get('email')
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
399
597
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
400 def get_password():
1266
a1bcfe58a1ab Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
401 password = getpass.getpass('Specify admin password '
a1bcfe58a1ab Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
402 '(min 6 chars):')
597
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
403 confirm = getpass.getpass('Confirm password:')
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
404
597
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
405 if password != confirm:
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
406 log.error('passwords mismatch')
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
407 return False
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
408 if len(password) < 6:
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
409 log.error('password is to short use at least 6 characters')
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
410 return False
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
411
597
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
412 return password
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
413 if username is None:
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
414 username = raw_input('Specify admin username:')
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
415 if password is None:
597
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
416 password = get_password()
53128b6b9a4d added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents: 569
diff changeset
417 if not password:
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
418 #second try
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
419 password = get_password()
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
420 if not password:
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
421 sys.exit()
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
422 if email is None:
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
423 email = raw_input('Specify admin email:')
491
fefffd6fd5f4 Added some more tests, rewrite testing schema, to autogenerate fresh db, new index.
Marcin Kuzminski <marcin@python-works.com>
parents: 471
diff changeset
424 self.create_user(username, password, email, True)
459
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
425 else:
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
426 log.info('creating admin and regular test users')
2765
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
427 from rhodecode.tests import TEST_USER_ADMIN_LOGIN, \
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
428 TEST_USER_ADMIN_PASS, TEST_USER_ADMIN_EMAIL, \
186b1cf7f759 Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents: 2726
diff changeset
429 TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, \
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
430 TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR2_LOGIN, \
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
431 TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR2_EMAIL
1758
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
432
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
433 self.create_user(TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS,
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
434 TEST_USER_ADMIN_EMAIL, True)
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
435
1758
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
436 self.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS,
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
437 TEST_USER_REGULAR_EMAIL, False)
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
438
1758
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
439 self.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS,
a87aa385f21c fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents: 1749
diff changeset
440 TEST_USER_REGULAR2_EMAIL, False)
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
441
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
442 def create_ui_settings(self):
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
443 """
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
444 Creates ui settings, fills out hooks
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
445 and disables dotencode
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
446 """
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1138
diff changeset
447
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
448 #HOOKS
1460
b50348816a80 Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents: 1399
diff changeset
449 hooks1_key = RhodeCodeUi.HOOK_UPDATE
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
450 hooks1_ = self.sa.query(RhodeCodeUi)\
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
451 .filter(RhodeCodeUi.ui_key == hooks1_key).scalar()
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
452
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
453 hooks1 = RhodeCodeUi() if hooks1_ is None else hooks1_
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
454 hooks1.ui_section = 'hooks'
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
455 hooks1.ui_key = hooks1_key
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
456 hooks1.ui_value = 'hg update >&2'
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
457 hooks1.ui_active = False
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
458 self.sa.add(hooks1)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
459
1460
b50348816a80 Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents: 1399
diff changeset
460 hooks2_key = RhodeCodeUi.HOOK_REPO_SIZE
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
461 hooks2_ = self.sa.query(RhodeCodeUi)\
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
462 .filter(RhodeCodeUi.ui_key == hooks2_key).scalar()
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
463 hooks2 = RhodeCodeUi() if hooks2_ is None else hooks2_
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
464 hooks2.ui_section = 'hooks'
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
465 hooks2.ui_key = hooks2_key
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
466 hooks2.ui_value = 'python:rhodecode.lib.hooks.repo_size'
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
467 self.sa.add(hooks2)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
468
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
469 hooks3 = RhodeCodeUi()
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
470 hooks3.ui_section = 'hooks'
1460
b50348816a80 Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents: 1399
diff changeset
471 hooks3.ui_key = RhodeCodeUi.HOOK_PUSH
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
472 hooks3.ui_value = 'python:rhodecode.lib.hooks.log_push_action'
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
473 self.sa.add(hooks3)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
474
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
475 hooks4 = RhodeCodeUi()
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
476 hooks4.ui_section = 'hooks'
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
477 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
478 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push'
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
479 self.sa.add(hooks4)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
480
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
481 hooks5 = RhodeCodeUi()
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
482 hooks5.ui_section = 'hooks'
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
483 hooks5.ui_key = RhodeCodeUi.HOOK_PULL
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
484 hooks5.ui_value = 'python:rhodecode.lib.hooks.log_pull_action'
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
485 self.sa.add(hooks5)
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
486
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
487 hooks6 = RhodeCodeUi()
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
488 hooks6.ui_section = 'hooks'
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
489 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
490 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull'
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
491 self.sa.add(hooks6)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
492
1694
1450ceb36aa6 enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 1634
diff changeset
493 # enable largefiles
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
494 largefiles = RhodeCodeUi()
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
495 largefiles.ui_section = 'extensions'
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
496 largefiles.ui_key = 'largefiles'
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
497 largefiles.ui_value = ''
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
498 self.sa.add(largefiles)
1694
1450ceb36aa6 enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 1634
diff changeset
499
2705
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
500 # enable hgsubversion disabled by default
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
501 hgsubversion = RhodeCodeUi()
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
502 hgsubversion.ui_section = 'extensions'
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
503 hgsubversion.ui_key = 'hgsubversion'
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
504 hgsubversion.ui_value = ''
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
505 hgsubversion.ui_active = False
2726
aa17c7a1b8a5 Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents: 2709
diff changeset
506 self.sa.add(hgsubversion)
2705
bf177b4981c3 Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents: 2662
diff changeset
507
2708
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
508 # enable hggit disabled by default
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
509 hggit = RhodeCodeUi()
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
510 hggit.ui_section = 'extensions'
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
511 hggit.ui_key = 'hggit'
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
512 hggit.ui_value = ''
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
513 hggit.ui_active = False
9bce679a3f49 Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents: 2705
diff changeset
514 self.sa.add(hggit)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
515
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
516 def create_ldap_options(self, skip_existing=False):
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
517 """Creates ldap settings"""
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
518
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
519 for k, v in [('ldap_active', 'false'), ('ldap_host', ''),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
520 ('ldap_port', '389'), ('ldap_tls_kind', 'PLAIN'),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
521 ('ldap_tls_reqcert', ''), ('ldap_dn_user', ''),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
522 ('ldap_dn_pass', ''), ('ldap_base_dn', ''),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
523 ('ldap_filter', ''), ('ldap_search_scope', ''),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
524 ('ldap_attr_login', ''), ('ldap_attr_firstname', ''),
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
525 ('ldap_attr_lastname', ''), ('ldap_attr_email', '')]:
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
526
3889
b84c83b651de replace equality comparision to None
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
527 if skip_existing and RhodeCodeSetting.get_by_name(k) is not None:
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
528 log.debug('Skipping option %s' % k)
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
529 continue
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
530 setting = RhodeCodeSetting(k, v)
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
531 self.sa.add(setting)
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
532
3056
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
533 def create_default_options(self, skip_existing=False):
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
534 """Creates default settings"""
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
535
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
536 for k, v in [
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
537 ('default_repo_enable_locking', False),
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
538 ('default_repo_enable_downloads', False),
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
539 ('default_repo_enable_statistics', False),
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
540 ('default_repo_private', False),
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
541 ('default_repo_type', 'hg')]:
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
542
3889
b84c83b651de replace equality comparision to None
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
543 if skip_existing and RhodeCodeSetting.get_by_name(k) is not None:
3056
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
544 log.debug('Skipping option %s' % k)
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
545 continue
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
546 setting = RhodeCodeSetting(k, v)
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
547 self.sa.add(setting)
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
548
1985
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
549 def fixup_groups(self):
3734
a8f520540ab0 New default permissions definition for user group create
Marcin Kuzminski <marcin@python-works.com>
parents: 3733
diff changeset
550 def_usr = User.get_default_user()
1985
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
551 for g in RepoGroup.query().all():
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
552 g.group_name = g.get_new_name(g.name)
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
553 self.sa.add(g)
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
554 # get default perm
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
555 default = UserRepoGroupToPerm.query()\
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
556 .filter(UserRepoGroupToPerm.group == g)\
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
557 .filter(UserRepoGroupToPerm.user == def_usr)\
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
558 .scalar()
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
559
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
560 if default is None:
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
561 log.debug('missing default permission for group %s adding' % g)
3714
7e3d89d9d3a2 - Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents: 3671
diff changeset
562 perm_obj = ReposGroupModel()._create_default_perms(g)
7e3d89d9d3a2 - Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents: 3671
diff changeset
563 self.sa.add(perm_obj)
1985
40f04021fa61 Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents: 1982
diff changeset
564
2798
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
565 def reset_permissions(self, username):
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
566 """
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
567 Resets permissions to default state, usefull when old systems had
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
568 bad permissions, we must clean them up
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
569
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
570 :param username:
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
571 """
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
572 default_user = User.get_by_username(username)
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
573 if not default_user:
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
574 return
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
575
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
576 u2p = UserToPerm.query()\
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
577 .filter(UserToPerm.user == default_user).all()
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
578 fixed = False
3733
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
579 if len(u2p) != len(Permission.DEFAULT_USER_PERMISSIONS):
2798
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
580 for p in u2p:
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
581 Session().delete(p)
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
582 fixed = True
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
583 self.populate_default_permissions()
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
584 return fixed
091e99b29fd4 auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents: 2797
diff changeset
585
3309
b3cf4539d1bd Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents: 3232
diff changeset
586 def update_repo_info(self):
b3cf4539d1bd Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents: 3232
diff changeset
587 RepoModel.update_repoinfo()
b3cf4539d1bd Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents: 3232
diff changeset
588
2919
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
589 def config_prompt(self, test_repo_path='', retries=3):
29630805893d Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2918
diff changeset
590 defaults = self.cli_args
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
591 _path = defaults.get('repos_location')
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
592 if retries == 3:
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
593 log.info('Setting up repositories config')
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
594
2284
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
595 if _path is not None:
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
596 path = _path
e285aa097a81 new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents: 2112
diff changeset
597 elif not self.tests and not test_repo_path:
1896
12135cff4c77 more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents: 1835
diff changeset
598 path = raw_input(
2112
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
599 'Enter a valid absolute path to store repositories. '
1896
12135cff4c77 more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents: 1835
diff changeset
600 'All repositories in that path will be added automatically:'
12135cff4c77 more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents: 1835
diff changeset
601 )
459
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
602 else:
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
603 path = test_repo_path
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
604 path_ok = True
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
605
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
606 # check proper dir
341
1ef52a70f3b7 Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 327
diff changeset
607 if not os.path.isdir(path):
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
608 path_ok = False
1976
Marcin Kuzminski <marcin@python-works.com>
parents: 1904
diff changeset
609 log.error('Given path %s is not a valid directory' % path)
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
610
2112
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
611 elif not os.path.isabs(path):
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
612 path_ok = False
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
613 log.error('Given path %s is not an absolute path' % path)
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
614
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
615 # check write access
2112
1477e048292e force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents: 2006
diff changeset
616 elif not os.access(path, os.W_OK) and path_ok:
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
617 path_ok = False
1976
Marcin Kuzminski <marcin@python-works.com>
parents: 1904
diff changeset
618 log.error('No write permission to given path %s' % path)
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
619
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
620 if retries == 0:
1399
4134af931e91 Added info about sys.exit cause
Marcin Kuzminski <marcin@python-works.com>
parents: 1299
diff changeset
621 sys.exit('max retries reached')
3625
260a7a01b054 follow Python conventions for boolean values
Mads Kiilerich <madski@unity3d.com>
parents: 3309
diff changeset
622 if not path_ok:
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
623 retries -= 1
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
624 return self.config_prompt(test_repo_path, retries)
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
625
2918
ce8572f45c85 use normpath when comparing paths used to determine if directory is a symlink, it's a part of pull-request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2907
diff changeset
626 real_path = os.path.normpath(os.path.realpath(path))
2819
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
627
2918
ce8572f45c85 use normpath when comparing paths used to determine if directory is a symlink, it's a part of pull-request #77
Marcin Kuzminski <marcin@python-works.com>
parents: 2907
diff changeset
628 if real_path != os.path.normpath(path):
2819
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
629 if not ask_ok(('Path looks like a symlink, Rhodecode will store '
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
630 'given path as %s ? [y/n]') % (real_path)):
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
631 log.error('Canceled by user')
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
632 sys.exit(-1)
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
633
bbaf0b86a1fe Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents: 2798
diff changeset
634 return real_path
1094
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
635
44661d2a7b61 fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents: 991
diff changeset
636 def create_settings(self, path):
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
637
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
638 self.create_ui_settings()
673
dd532af216d9 #49 Enabled anonymous access for web interface controllable from permissions pannel
Marcin Kuzminski <marcin@python-works.com>
parents: 657
diff changeset
639
3909
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
640 ui_config = [
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
641 ('web', 'push_ssl', 'false'),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
642 ('web', 'allow_archive', 'gz zip bz2'),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
643 ('web', 'allow_push', '*'),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
644 ('web', 'baseurl', '/'),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
645 ('paths', '/', path),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
646 #('phases', 'publish', 'false')
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
647 ]
3911
7cca0d07c12b fix: add UI settings to session
Marcin Kuzminski <marcin@python-works.com>
parents: 3910
diff changeset
648 for section, key, value in ui_config:
3909
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
649 ui_conf = RhodeCodeUi()
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
650 setattr(ui_conf, 'ui_section', section)
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
651 setattr(ui_conf, 'ui_key', key)
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
652 setattr(ui_conf, 'ui_value', value)
3911
7cca0d07c12b fix: add UI settings to session
Marcin Kuzminski <marcin@python-works.com>
parents: 3910
diff changeset
653 self.sa.add(ui_conf)
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
654
3909
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
655 settings = [
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
656 ('realm', 'RhodeCode authentication', unicode),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
657 ('title', 'RhodeCode', unicode),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
658 ('ga_code', '', unicode),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
659 ('show_public_icon', True, bool),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
660 ('show_private_icon', True, bool),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
661 ('stylify_metatags', False, bool),
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
662 ('dashboard_items', 100, int),
3910
36f7562a5919 Implements #842 RhodeCode version disclosure.
Marcin Kuzminski <marcin@python-works.com>
parents: 3909
diff changeset
663 ('show_version', True, bool)
3909
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
664 ]
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
665 for key, val, type_ in settings:
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
666 sett = RhodeCodeSetting(key, val)
e87298ccdfdb Add default for dashbord items and create default
Marcin Kuzminski <marcin@python-works.com>
parents: 3907
diff changeset
667 self.sa.add(sett)
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
668
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
669 self.create_ldap_options()
3056
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
670 self.create_default_options()
837
60cbde084047 fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents: 835
diff changeset
671
341
1ef52a70f3b7 Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 327
diff changeset
672 log.info('created ui config')
629
7e536d1af60d Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents: 597
diff changeset
673
491
fefffd6fd5f4 Added some more tests, rewrite testing schema, to autogenerate fresh db, new index.
Marcin Kuzminski <marcin@python-works.com>
parents: 471
diff changeset
674 def create_user(self, username, password, email='', admin=False):
1976
Marcin Kuzminski <marcin@python-works.com>
parents: 1904
diff changeset
675 log.info('creating user %s' % username)
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
676 UserModel().create_or_update(username, password, email,
2513
388843a3a3c0 Updated create_or_update method to not change API key when password is not updated
Marcin Kuzminski <marcin@python-works.com>
parents: 2285
diff changeset
677 firstname='RhodeCode', lastname='Admin',
1634
1d904d972c47 User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents: 1633
diff changeset
678 active=True, admin=admin)
459
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
679
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
680 def create_default_user(self):
7c978511c951 implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents: 417
diff changeset
681 log.info('creating default user')
1634
1d904d972c47 User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents: 1633
diff changeset
682 # create default user for handling default permissions.
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
683 UserModel().create_or_update(username='default',
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
684 password=str(uuid.uuid1())[:8],
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
685 email='anonymous@rhodecode.org',
2513
388843a3a3c0 Updated create_or_update method to not change API key when password is not updated
Marcin Kuzminski <marcin@python-works.com>
parents: 2285
diff changeset
686 firstname='Anonymous', lastname='User')
1734
48d4fcf04a29 another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents: 1716
diff changeset
687
239
b18f89d6d17f Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents: 234
diff changeset
688 def create_permissions(self):
3733
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
689 """
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
690 Creates all permissions defined in the system
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
691 """
1783
dde0ef0d886f fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents: 1758
diff changeset
692 # module.(access|create|change|delete)_[name]
1982
87f0800abc7b #227 Initial version of repository groups permissions system
Marcin Kuzminski <marcin@python-works.com>
parents: 1976
diff changeset
693 # module.(none|read|write|admin)
3734
a8f520540ab0 New default permissions definition for user group create
Marcin Kuzminski <marcin@python-works.com>
parents: 3733
diff changeset
694 log.info('creating permissions')
a8f520540ab0 New default permissions definition for user group create
Marcin Kuzminski <marcin@python-works.com>
parents: 3733
diff changeset
695 PermissionModel(self.sa).create_permissions()
417
3ed2d46a2ca7 permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents: 392
diff changeset
696
3ed2d46a2ca7 permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents: 392
diff changeset
697 def populate_default_permissions(self):
3733
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
698 """
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
699 Populate default permissions. It will create only the default
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
700 permissions that are missing, and not alter already defined ones
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
701 """
417
3ed2d46a2ca7 permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents: 392
diff changeset
702 log.info('creating default user permissions')
3733
af049a957506 fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents: 3714
diff changeset
703 PermissionModel(self.sa).create_default_permissions(user=User.DEFAULT_USER)
2827
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
704
3232
99c093d1a142 run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents: 3148
diff changeset
705 @staticmethod
99c093d1a142 run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents: 3148
diff changeset
706 def check_waitress():
2827
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
707 """
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
708 Function executed at the end of setup
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
709 """
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
710 if not __py_version__ >= (2, 6):
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
711 notify('Python2.5 detected, please switch '
d30c0a9867c4 warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 2819
diff changeset
712 'egg:waitress#main -> egg:Paste#http '
2907
0b86972de820 white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents: 2827
diff changeset
713 'in your .ini file')