Mercurial > kallithea
annotate rhodecode/lib/db_manage.py @ 3774:60335b702a00 beta
invalidation: don't create CacheInvalidation records on startup
Creating the records early gave an advantage before lightweight was introduced.
With lightweight it is no longer necessary.
The records will be created on demand anyway and there is no reason to create and
maintain them before they are used.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 03 Apr 2013 15:56:12 +0200 |
parents | d5c684052ea4 |
children | dc4644865e8b |
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 | 6 Database creation, and setup module for RhodeCode. Used for creation |
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 |
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
|
29 import uuid |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
30 import logging |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
31 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
|
32 |
2827
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
33 from rhodecode import __dbversion__, __py_version__ |
249
bad9ccac26b7
fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents:
243
diff
changeset
|
34 |
1634
1d904d972c47
User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents:
1633
diff
changeset
|
35 from rhodecode.model.user import UserModel |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
533
diff
changeset
|
36 from rhodecode.lib.utils import ask_ok |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
533
diff
changeset
|
37 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
|
38 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
|
39 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
|
40 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
|
41 |
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
|
42 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
|
43 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
|
44 #from rhodecode.model import meta |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
45 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
|
46 from rhodecode.model.repo import RepoModel |
3733
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
47 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
|
48 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
|
49 |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
50 |
351
d09381593b12
updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents:
350
diff
changeset
|
51 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
|
52 |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
53 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
54 def notify(msg): |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
55 """ |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
56 Notification for migrations messages |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
57 """ |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
58 ml = len(msg) + (4 * 2) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
59 print >> sys.stdout, ('*** %s ***\n%s' % (msg, '*' * ml)).upper() |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
60 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
61 |
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
|
62 class DbManage(object): |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
63 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
|
64 self.dbname = dbconf.split('/')[-1] |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
65 self.tests = tests |
552
2642f128ad46
removed egg info, update files for distutils build
Marcin Kuzminski <marcin@python-works.com>
parents:
549
diff
changeset
|
66 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
|
67 self.dburi = dbconf |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
68 self.log_sql = log_sql |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
69 self.db_exists = False |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
70 self.cli_args = cli_args |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
71 self.init_db() |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
72 |
3671
658ccf9727ef
setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents:
3631
diff
changeset
|
73 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
|
74 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
|
75 global ask_ok |
658ccf9727ef
setup_rhodecode: fix --force-no - force_ask is tri-state
Mads Kiilerich <madski@unity3d.com>
parents:
3631
diff
changeset
|
76 ask_ok = lambda *args, **kwargs: force_ask |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
77 |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
78 def init_db(self): |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
79 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
|
80 init_model(engine) |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
81 self.sa = Session() |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
82 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
83 def create_tables(self, override=False): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
84 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
85 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
|
86 """ |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
87 |
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
|
88 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
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 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
|
95 if destroy: |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
96 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
|
97 |
351
d09381593b12
updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents:
350
diff
changeset
|
98 checkfirst = not override |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
99 Base.metadata.create_all(checkfirst=checkfirst) |
1976 | 100 log.info('Created tables for %s' % self.dbname) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
101 |
834
8924ed0e4f36
added current db version into rhodecode,
Marcin Kuzminski <marcin@python-works.com>
parents:
781
diff
changeset
|
102 def set_db_version(self): |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
103 ver = DbMigrateVersion() |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
104 ver.version = __dbversion__ |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
105 ver.repository_id = 'rhodecode_db_migrations' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
106 ver.repository_path = 'versions' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
107 self.sa.add(ver) |
1976 | 108 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
|
109 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
110 def upgrade(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
111 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
112 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
|
113 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
|
114 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
115 """ |
841
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
116 |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
117 from rhodecode.lib.dbmigrate.migrate.versioning import api |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
118 from rhodecode.lib.dbmigrate.migrate.exceptions import \ |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
119 DatabaseNotControlledError |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
120 |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
121 if 'sqlite' in self.dburi: |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
122 print ( |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
123 '********************** WARNING **********************\n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
124 '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
|
125 '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
|
126 '*****************************************************\n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
127 ) |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
128 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
|
129 '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
|
130 '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
|
131 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
|
132 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
|
133 |
843
3b21ba5f7cb0
fixed path issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
841
diff
changeset
|
134 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
|
135 '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
|
136 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
|
137 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
138 try: |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
139 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
|
140 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
|
141 ' 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
|
142 |
1299
8eda822931c9
small fixes for interactive prompt in setup
Marcin Kuzminski <marcin@python-works.com>
parents:
1290
diff
changeset
|
143 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
|
144 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
|
145 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
|
146 ' 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
|
147 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
|
148 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
149 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
|
150 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
151 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
|
152 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
|
153 |
3757
f08881dcc9eb
invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents:
3734
diff
changeset
|
154 # clear cache keys |
f08881dcc9eb
invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents:
3734
diff
changeset
|
155 log.info("Clearing cache keys now...") |
f08881dcc9eb
invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents:
3734
diff
changeset
|
156 CacheInvalidation.clear_cache() |
f08881dcc9eb
invalidate: clear CacheInvalidation when upgrading
Mads Kiilerich <madski@unity3d.com>
parents:
3734
diff
changeset
|
157 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
158 #====================================================================== |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
159 # UPGRADE STEPS |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
160 #====================================================================== |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
161 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
162 class UpgradeSteps(object): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
163 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
164 Those steps follow schema versions so for example schema |
900
07f248329a3b
updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
890
diff
changeset
|
165 for example schema with seq 002 == step_2 and so on. |
07f248329a3b
updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
890
diff
changeset
|
166 """ |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
167 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
168 def __init__(self, klass): |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
169 self.klass = klass |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
170 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
171 def step_0(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
172 # step 0 is the schema upgrade, and than follow proper upgrades |
3148
b31984972e95
Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents:
3125
diff
changeset
|
173 notify('attempting to do database upgrade from ' |
b31984972e95
Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents:
3125
diff
changeset
|
174 '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
|
175 api.upgrade(db_uri, repository_path, __dbversion__) |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
176 notify('Schema upgrade completed') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
177 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
178 def step_1(self): |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
179 pass |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
180 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
181 def step_2(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
182 notify('Patching repo paths for newer version of RhodeCode') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
183 self.klass.fix_repo_paths() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
184 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
185 notify('Patching default user of RhodeCode') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
186 self.klass.fix_default_user() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
187 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
188 log.info('Changing ui settings') |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
189 self.klass.create_ui_settings() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
190 |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
191 def step_3(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
192 notify('Adding additional settings into RhodeCode db') |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
193 self.klass.fix_settings() |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
194 notify('Adding ldap defaults') |
1510
90062009bb1e
added default ldap option into migration
Marcin Kuzminski <marcin@python-works.com>
parents:
1503
diff
changeset
|
195 self.klass.create_ldap_options(skip_existing=True) |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
196 |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
197 def step_4(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
198 notify('create permissions and fix groups') |
1987
77b5c24f1887
fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
1986
diff
changeset
|
199 self.klass.create_permissions() |
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
|
200 self.klass.fixup_groups() |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
201 |
2000
72c525a7e7ad
added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents:
1987
diff
changeset
|
202 def step_5(self): |
72c525a7e7ad
added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents:
1987
diff
changeset
|
203 pass |
2006
34d009e5147a
added clone_uri to API method for creating users
Marcin Kuzminski <marcin@python-works.com>
parents:
2000
diff
changeset
|
204 |
2214
2fd474e63177
Starting RhodeCode 1.4 Branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
205 def step_6(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
206 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
207 notify('re-checking permissions') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
208 self.klass.create_permissions() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
209 |
2781
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
210 notify('installing new UI options') |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
211 sett4 = RhodeCodeSetting('show_public_icon', True) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
212 Session().add(sett4) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
213 sett5 = RhodeCodeSetting('show_private_icon', True) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
214 Session().add(sett5) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
215 sett6 = RhodeCodeSetting('stylify_metatags', False) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
216 Session().add(sett6) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
217 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
218 notify('fixing old PULL hook') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
219 _pull = RhodeCodeUi.get_by_key('preoutgoing.pull_logger') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
220 if _pull: |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
221 _pull.ui_key = RhodeCodeUi.HOOK_PULL |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
222 Session().add(_pull) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
223 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
224 notify('fixing old PUSH hook') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
225 _push = RhodeCodeUi.get_by_key('pretxnchangegroup.push_logger') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
226 if _push: |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
227 _push.ui_key = RhodeCodeUi.HOOK_PUSH |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
228 Session().add(_push) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
229 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
230 notify('installing new pre-push hook') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
231 hooks4 = RhodeCodeUi() |
2767
7562f46b1e90
More fixes to upgrade procedure,
Marcin Kuzminski <marcin@python-works.com>
parents:
2765
diff
changeset
|
232 hooks4.ui_section = 'hooks' |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
233 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
234 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
235 Session().add(hooks4) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
236 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
237 notify('installing new pre-pull hook') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
238 hooks6 = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
239 hooks6.ui_section = 'hooks' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
240 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
241 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
242 Session().add(hooks6) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
243 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
244 notify('installing hgsubversion option') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
245 # enable hgsubversion disabled by default |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
246 hgsubversion = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
247 hgsubversion.ui_section = 'extensions' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
248 hgsubversion.ui_key = 'hgsubversion' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
249 hgsubversion.ui_value = '' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
250 hgsubversion.ui_active = False |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
251 Session().add(hgsubversion) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
252 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
253 notify('installing hg git option') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
254 # enable hggit disabled by default |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
255 hggit = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
256 hggit.ui_section = 'extensions' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
257 hggit.ui_key = 'hggit' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
258 hggit.ui_value = '' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
259 hggit.ui_active = False |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
260 Session().add(hggit) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
261 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
262 notify('re-check default permissions') |
2795
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
263 default_user = User.get_by_username(User.DEFAULT_USER) |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
264 perm = Permission.get_by_key('hg.fork.repository') |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
265 reg_perm = UserToPerm() |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
266 reg_perm.user = default_user |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
267 reg_perm.permission = perm |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
268 Session().add(reg_perm) |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
269 |
2797
c9baaacb670a
Remove null from revision column as for comments inside pull requests to work properly
Marcin Kuzminski <marcin@python-works.com>
parents:
2795
diff
changeset
|
270 def step_7(self): |
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
|
271 perm_fixes = self.klass.reset_permissions(User.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
|
272 Session().commit() |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
273 if perm_fixes: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
274 notify('There was an inconsistent state of 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
|
275 'detected for default user. Permissions are now ' |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
276 'reset to the default value for 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
|
277 'Please validate and check 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
|
278 'in admin panel') |
2797
c9baaacb670a
Remove null from revision column as for comments inside pull requests to work properly
Marcin Kuzminski <marcin@python-works.com>
parents:
2795
diff
changeset
|
279 |
3052
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
280 def step_8(self): |
3758
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
281 self.klass.create_permissions() |
3052
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
282 self.klass.populate_default_permissions() |
3056
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
283 self.klass.create_default_options(skip_existing=True) |
3052
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
284 Session().commit() |
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
285 |
3101
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
286 def step_9(self): |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
287 perm_fixes = self.klass.reset_permissions(User.DEFAULT_USER) |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
288 Session().commit() |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
289 if perm_fixes: |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
290 notify('There was an inconsistent state of permissions ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
291 'detected for default user. Permissions are now ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
292 'reset to the default value for default user. ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
293 'Please validate and check default permissions ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
294 'in admin panel') |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
295 |
3125
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
296 def step_10(self): |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
297 pass |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
298 |
3309
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
299 def step_11(self): |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
300 self.klass.update_repo_info() |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
301 |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3671
diff
changeset
|
302 def step_12(self): |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3671
diff
changeset
|
303 self.klass.create_permissions() |
3758
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
304 Session().commit() |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
305 |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3671
diff
changeset
|
306 self.klass.populate_default_permissions() |
3758
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
307 Session().commit() |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
308 |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
309 #fix all usergroups |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
310 ug_model = UserGroupModel() |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
311 for ug in UserGroup.get_all(): |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
312 perm_obj = ug_model._create_default_perms(ug) |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
313 Session().add(perm_obj) |
d5c684052ea4
fixed migration of empty usergroups created pre-usergroup delegation permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
3757
diff
changeset
|
314 Session().commit() |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3671
diff
changeset
|
315 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
316 upgrade_steps = [0] + range(curr_version + 1, __dbversion__ + 1) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
317 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
318 # 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
|
319 _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
|
320 for step in upgrade_steps: |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
321 notify('performing upgrade step %s' % step) |
1716
7d1fc253549e
notification to commit author + gardening
Marcin Kuzminski <marcin@python-works.com>
parents:
1694
diff
changeset
|
322 getattr(UpgradeSteps(self), 'step_%s' % step)() |
1987
77b5c24f1887
fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
1986
diff
changeset
|
323 self.sa.commit() |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
324 _step = step |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
325 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
326 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
|
327 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
328 def fix_repo_paths(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
329 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
330 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
|
331 """ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
332 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
333 paths = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
334 .filter(RhodeCodeUi.ui_key == '/')\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
335 .scalar() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
336 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
337 paths.ui_value = paths.ui_value.replace('*', '') |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
338 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
339 try: |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
340 self.sa.add(paths) |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
341 self.sa.commit() |
3631
10b4e34841a4
Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents:
3625
diff
changeset
|
342 except Exception: |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
343 self.sa.rollback() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
344 raise |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
345 |
838 | 346 def fix_default_user(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
347 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
348 Fixes a old default user with some 'nicer' default values, |
838 | 349 used mostly for anonymous access |
350 """ | |
351 def_user = self.sa.query(User)\ | |
352 .filter(User.username == 'default')\ | |
353 .one() | |
354 | |
355 def_user.name = 'Anonymous' | |
356 def_user.lastname = 'User' | |
357 def_user.email = 'anonymous@rhodecode.org' | |
358 | |
359 try: | |
360 self.sa.add(def_user) | |
361 self.sa.commit() | |
3631
10b4e34841a4
Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents:
3625
diff
changeset
|
362 except Exception: |
838 | 363 self.sa.rollback() |
364 raise | |
365 | |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
366 def fix_settings(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
367 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
368 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
|
369 """ |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
370 |
1633
2c0d35e336b5
refactoring of models names for repoGroup permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
1510
diff
changeset
|
371 hgsettings3 = RhodeCodeSetting('ga_code', '') |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
372 |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
373 try: |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
374 self.sa.add(hgsettings3) |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
375 self.sa.commit() |
3631
10b4e34841a4
Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents:
3625
diff
changeset
|
376 except Exception: |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
377 self.sa.rollback() |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
378 raise |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
379 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
380 def admin_prompt(self, second=False): |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
381 if not self.tests: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
382 import getpass |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
383 |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
384 # defaults |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
385 defaults = self.cli_args |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
386 username = defaults.get('username') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
387 password = defaults.get('password') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
388 email = defaults.get('email') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
389 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
390 def get_password(): |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
391 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
|
392 '(min 6 chars):') |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
393 confirm = getpass.getpass('Confirm password:') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
394 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
395 if password != confirm: |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
396 log.error('passwords mismatch') |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
397 return False |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
398 if len(password) < 6: |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
399 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
|
400 return False |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
401 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
402 return password |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
403 if username is None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
404 username = raw_input('Specify admin username:') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
405 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
|
406 password = get_password() |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
407 if not password: |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
408 #second try |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
409 password = get_password() |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
410 if not password: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
411 sys.exit() |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
412 if email is None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
413 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
|
414 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
|
415 else: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
416 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
|
417 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
|
418 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
|
419 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
|
420 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
|
421 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
|
422 |
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
423 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
|
424 TEST_USER_ADMIN_EMAIL, True) |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
425 |
1758
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
426 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
|
427 TEST_USER_REGULAR_EMAIL, False) |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
428 |
1758
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
429 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
|
430 TEST_USER_REGULAR2_EMAIL, False) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
431 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
432 def create_ui_settings(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
433 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
434 Creates ui settings, fills out hooks |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
435 and disables dotencode |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
436 """ |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
437 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
438 #HOOKS |
1460
b50348816a80
Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents:
1399
diff
changeset
|
439 hooks1_key = RhodeCodeUi.HOOK_UPDATE |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
440 hooks1_ = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
441 .filter(RhodeCodeUi.ui_key == hooks1_key).scalar() |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
442 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
443 hooks1 = RhodeCodeUi() if hooks1_ is None else hooks1_ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
444 hooks1.ui_section = 'hooks' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
445 hooks1.ui_key = hooks1_key |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
446 hooks1.ui_value = 'hg update >&2' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
447 hooks1.ui_active = False |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
448 self.sa.add(hooks1) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
449 |
1460
b50348816a80
Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents:
1399
diff
changeset
|
450 hooks2_key = RhodeCodeUi.HOOK_REPO_SIZE |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
451 hooks2_ = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
452 .filter(RhodeCodeUi.ui_key == hooks2_key).scalar() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
453 hooks2 = RhodeCodeUi() if hooks2_ is None else hooks2_ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
454 hooks2.ui_section = 'hooks' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
455 hooks2.ui_key = hooks2_key |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
456 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
|
457 self.sa.add(hooks2) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
458 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
459 hooks3 = RhodeCodeUi() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
460 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
|
461 hooks3.ui_key = RhodeCodeUi.HOOK_PUSH |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
462 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
|
463 self.sa.add(hooks3) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
464 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
465 hooks4 = RhodeCodeUi() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
466 hooks4.ui_section = 'hooks' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
467 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
468 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
469 self.sa.add(hooks4) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
470 |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
471 hooks5 = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
472 hooks5.ui_section = 'hooks' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
473 hooks5.ui_key = RhodeCodeUi.HOOK_PULL |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
474 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
|
475 self.sa.add(hooks5) |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
476 |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
477 hooks6 = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
478 hooks6.ui_section = 'hooks' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
479 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
480 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
481 self.sa.add(hooks6) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
482 |
1694
1450ceb36aa6
enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1634
diff
changeset
|
483 # enable largefiles |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
484 largefiles = RhodeCodeUi() |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
485 largefiles.ui_section = 'extensions' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
486 largefiles.ui_key = 'largefiles' |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
487 largefiles.ui_value = '' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
488 self.sa.add(largefiles) |
1694
1450ceb36aa6
enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1634
diff
changeset
|
489 |
2705
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
490 # 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
|
491 hgsubversion = RhodeCodeUi() |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
492 hgsubversion.ui_section = 'extensions' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
493 hgsubversion.ui_key = 'hgsubversion' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
494 hgsubversion.ui_value = '' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
495 hgsubversion.ui_active = False |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
496 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
|
497 |
2708
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
498 # enable hggit disabled by default |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
499 hggit = RhodeCodeUi() |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
500 hggit.ui_section = 'extensions' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
501 hggit.ui_key = 'hggit' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
502 hggit.ui_value = '' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
503 hggit.ui_active = False |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
504 self.sa.add(hggit) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
505 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
506 def create_ldap_options(self, skip_existing=False): |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
507 """Creates ldap settings""" |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
508 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
509 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
|
510 ('ldap_port', '389'), ('ldap_tls_kind', 'PLAIN'), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
511 ('ldap_tls_reqcert', ''), ('ldap_dn_user', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
512 ('ldap_dn_pass', ''), ('ldap_base_dn', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
513 ('ldap_filter', ''), ('ldap_search_scope', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
514 ('ldap_attr_login', ''), ('ldap_attr_firstname', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
515 ('ldap_attr_lastname', ''), ('ldap_attr_email', '')]: |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
516 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
517 if skip_existing and RhodeCodeSetting.get_by_name(k) != None: |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
518 log.debug('Skipping option %s' % k) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
519 continue |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
520 setting = RhodeCodeSetting(k, v) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
521 self.sa.add(setting) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
522 |
3056
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
523 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
|
524 """Creates default settings""" |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
525 |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
526 for k, v in [ |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
527 ('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
|
528 ('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
|
529 ('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
|
530 ('default_repo_private', False), |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
531 ('default_repo_type', 'hg')]: |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
532 |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
533 if skip_existing and RhodeCodeSetting.get_by_name(k) != None: |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
534 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
|
535 continue |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
536 setting = RhodeCodeSetting(k, v) |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
537 self.sa.add(setting) |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
538 |
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
|
539 def fixup_groups(self): |
3734
a8f520540ab0
New default permissions definition for user group create
Marcin Kuzminski <marcin@python-works.com>
parents:
3733
diff
changeset
|
540 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
|
541 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
|
542 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
|
543 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
|
544 # 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
|
545 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
|
546 .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
|
547 .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
|
548 .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
|
549 |
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
|
550 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
|
551 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
|
552 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
|
553 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
|
554 |
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
|
555 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
|
556 """ |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
557 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
|
558 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
|
559 |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
560 :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
|
561 :type 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
|
562 """ |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
563 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
|
564 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
|
565 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
|
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 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
|
568 .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
|
569 fixed = False |
3733
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
570 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
|
571 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
|
572 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
|
573 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
|
574 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
|
575 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
|
576 |
3309
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
577 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
|
578 RepoModel.update_repoinfo() |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
579 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
580 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
|
581 defaults = self.cli_args |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
582 _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
|
583 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
|
584 log.info('Setting up repositories config') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
585 |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
586 if _path is not None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
587 path = _path |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
588 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
|
589 path = raw_input( |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
590 '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
|
591 '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
|
592 ) |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
593 else: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
594 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
|
595 path_ok = True |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
596 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
597 # 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
|
598 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
|
599 path_ok = False |
1976 | 600 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
|
601 |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
602 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
|
603 path_ok = False |
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
604 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
|
605 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
606 # check write access |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
607 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
|
608 path_ok = False |
1976 | 609 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
|
610 |
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
|
611 if retries == 0: |
1399
4134af931e91
Added info about sys.exit cause
Marcin Kuzminski <marcin@python-works.com>
parents:
1299
diff
changeset
|
612 sys.exit('max retries reached') |
3625
260a7a01b054
follow Python conventions for boolean values
Mads Kiilerich <madski@unity3d.com>
parents:
3309
diff
changeset
|
613 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
|
614 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
|
615 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
|
616 |
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
|
617 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
|
618 |
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
|
619 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
|
620 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
|
621 '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
|
622 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
|
623 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
|
624 |
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
|
625 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
|
626 |
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
|
627 def create_settings(self, path): |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
628 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
629 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
|
630 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
631 #HG UI OPTIONS |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
632 web1 = RhodeCodeUi() |
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
|
633 web1.ui_section = 'web' |
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
|
634 web1.ui_key = 'push_ssl' |
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
|
635 web1.ui_value = 'false' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
636 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
637 web2 = RhodeCodeUi() |
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
|
638 web2.ui_section = 'web' |
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
|
639 web2.ui_key = 'allow_archive' |
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
|
640 web2.ui_value = 'gz zip bz2' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
641 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
642 web3 = RhodeCodeUi() |
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
|
643 web3.ui_section = 'web' |
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
|
644 web3.ui_key = 'allow_push' |
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
|
645 web3.ui_value = '*' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
646 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
647 web4 = RhodeCodeUi() |
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
|
648 web4.ui_section = 'web' |
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
|
649 web4.ui_key = 'baseurl' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
650 web4.ui_value = '/' |
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
651 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
652 paths = RhodeCodeUi() |
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
|
653 paths.ui_section = 'paths' |
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
|
654 paths.ui_key = '/' |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
655 paths.ui_value = path |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
656 |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
657 phases = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
658 phases.ui_section = 'phases' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
659 phases.ui_key = 'publish' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
660 phases.ui_value = False |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
661 |
2662
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
662 sett1 = RhodeCodeSetting('realm', 'RhodeCode authentication') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
663 sett2 = RhodeCodeSetting('title', 'RhodeCode') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
664 sett3 = RhodeCodeSetting('ga_code', '') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
665 |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
666 sett4 = RhodeCodeSetting('show_public_icon', True) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
667 sett5 = RhodeCodeSetting('show_private_icon', True) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
668 sett6 = RhodeCodeSetting('stylify_metatags', False) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
669 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
670 self.sa.add(web1) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
671 self.sa.add(web2) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
672 self.sa.add(web3) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
673 self.sa.add(web4) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
674 self.sa.add(paths) |
2662
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
675 self.sa.add(sett1) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
676 self.sa.add(sett2) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
677 self.sa.add(sett3) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
678 self.sa.add(sett4) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
679 self.sa.add(sett5) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
680 self.sa.add(sett6) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
681 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
682 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
|
683 self.create_default_options() |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
684 |
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
|
685 log.info('created ui config') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
686 |
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
|
687 def create_user(self, username, password, email='', admin=False): |
1976 | 688 log.info('creating user %s' % username) |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
689 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
|
690 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
|
691 active=True, admin=admin) |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
692 |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
693 def create_default_user(self): |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
694 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
|
695 # 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
|
696 UserModel().create_or_update(username='default', |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
697 password=str(uuid.uuid1())[:8], |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
698 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
|
699 firstname='Anonymous', lastname='User') |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
700 |
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
|
701 def create_permissions(self): |
3733
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
702 """ |
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
703 Creates all permissions defined in the system |
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
704 """ |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
705 # 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
|
706 # 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
|
707 log.info('creating permissions') |
a8f520540ab0
New default permissions definition for user group create
Marcin Kuzminski <marcin@python-works.com>
parents:
3733
diff
changeset
|
708 PermissionModel(self.sa).create_permissions() |
417
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
709 |
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
710 def populate_default_permissions(self): |
3733
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
711 """ |
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
712 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
|
713 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
|
714 """ |
417
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
715 log.info('creating default user permissions') |
3733
af049a957506
fixed default permissions population during upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
3714
diff
changeset
|
716 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
|
717 |
3232
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
3148
diff
changeset
|
718 @staticmethod |
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
3148
diff
changeset
|
719 def check_waitress(): |
2827
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
720 """ |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
721 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
|
722 """ |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
723 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
|
724 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
|
725 'egg:waitress#main -> egg:Paste#http ' |
2907
0b86972de820
white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
2827
diff
changeset
|
726 'in your .ini file') |