Show More
@@ -18,14 +18,27 b'' | |||||
18 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
18 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
20 |
|
20 | |||
|
21 | import logging | |||
21 |
|
22 | |||
|
23 | from rhodecode.model.settings import SettingsModel | |||
22 | from .utils import generate_mod_dav_svn_config |
|
24 | from .utils import generate_mod_dav_svn_config | |
23 |
|
25 | |||
24 |
|
26 | |||
|
27 | log = logging.getLogger(__name__) | |||
|
28 | ||||
|
29 | ||||
25 | def generate_config_subscriber(event): |
|
30 | def generate_config_subscriber(event): | |
26 | """ |
|
31 | """ | |
27 | Subscriber to the `rhodcode.events.RepoGroupEvent`. This triggers the |
|
32 | Subscriber to the `rhodcode.events.RepoGroupEvent`. This triggers the | |
28 | automatic generation of mod_dav_svn config file on repository group |
|
33 | automatic generation of mod_dav_svn config file on repository group | |
29 | changes. |
|
34 | changes. | |
30 | """ |
|
35 | """ | |
31 | generate_mod_dav_svn_config(event.request.registry.settings) |
|
36 | try: | |
|
37 | parent_path_root = SettingsModel().get_ui_by_section_and_key( | |||
|
38 | 'paths', '/').ui_value | |||
|
39 | generate_mod_dav_svn_config( | |||
|
40 | settings=event.request.registry.settings, | |||
|
41 | parent_path_root=parent_path_root) | |||
|
42 | except Exception: | |||
|
43 | log.exception( | |||
|
44 | 'Exception while generating subversion mod_dav_svn configuration.') |
@@ -26,22 +26,19 b' from pyramid.renderers import render' | |||||
26 |
|
26 | |||
27 | from rhodecode.lib.utils import get_rhodecode_realm |
|
27 | from rhodecode.lib.utils import get_rhodecode_realm | |
28 | from rhodecode.model.db import RepoGroup |
|
28 | from rhodecode.model.db import RepoGroup | |
29 | from rhodecode.model.settings import SettingsModel |
|
|||
30 | from . import config_keys |
|
29 | from . import config_keys | |
31 |
|
30 | |||
32 |
|
31 | |||
33 | log = logging.getLogger(__name__) |
|
32 | log = logging.getLogger(__name__) | |
34 |
|
33 | |||
35 |
|
34 | |||
36 | def generate_mod_dav_svn_config(settings): |
|
35 | def generate_mod_dav_svn_config(settings, parent_path_root): | |
37 | """ |
|
36 | """ | |
38 | Generate the configuration file for use with subversion's mod_dav_svn |
|
37 | Generate the configuration file for use with subversion's mod_dav_svn | |
39 | module. The configuration has to contain a <Location> block for each |
|
38 | module. The configuration has to contain a <Location> block for each | |
40 | available repository group because the mod_dav_svn module does not support |
|
39 | available repository group because the mod_dav_svn module does not support | |
41 | repositories organized in sub folders. |
|
40 | repositories organized in sub folders. | |
42 | """ |
|
41 | """ | |
43 | parent_path_root = SettingsModel().get_ui_by_section_and_key( |
|
|||
44 | 'paths', '/').ui_value |
|
|||
45 | config = _render_mod_dav_svn_config( |
|
42 | config = _render_mod_dav_svn_config( | |
46 | parent_path_root=parent_path_root, |
|
43 | parent_path_root=parent_path_root, | |
47 | list_parent_path=settings[config_keys.list_parent_path], |
|
44 | list_parent_path=settings[config_keys.list_parent_path], | |
@@ -77,12 +74,7 b' def _render_mod_dav_svn_config(' | |||||
77 |
|
74 | |||
78 | def _write_mod_dav_svn_config(config, filepath): |
|
75 | def _write_mod_dav_svn_config(config, filepath): | |
79 | """ |
|
76 | """ | |
80 |
Write mod_dav_svn config to file. |
|
77 | Write mod_dav_svn config to file. | |
81 | """ |
|
78 | """ | |
82 | try: |
|
|||
83 |
|
|
79 | with codecs.open(filepath, 'w', encoding='utf-8') as f: | |
84 |
|
|
80 | f.write(config) | |
85 | except Exception: |
|
|||
86 | log.exception( |
|
|||
87 | 'Exception while writing mod_dav_svn configuration to ' |
|
|||
88 | '"%s"', filepath) |
|
General Comments 0
You need to be logged in to leave comments.
Login now