author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Fri, 04 Apr 2014 13:49:03 +0200 | |
changeset 9638 | 3046bae3ce31 |
parent 9372 | e87a808a4c32 |
child 10070 | 5244592cb225 |
permissions | -rw-r--r-- |
8669
62213a34726e
[db-api/configuration] simplify db-api and configuration so that all the connection information is in the repository url, closes #2521848
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7275
diff
changeset
|
1 |
# copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
2 |
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
3 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
4 |
# This file is part of CubicWeb. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
5 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
6 |
# CubicWeb is free software: you can redistribute it and/or modify it under the |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
7 |
# terms of the GNU Lesser General Public License as published by the Free |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
8 |
# Software Foundation, either version 2.1 of the License, or (at your option) |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
9 |
# any later version. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
10 |
# |
5424
8ecbcbff9777
replace logilab-common by CubicWeb in disclaimer
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5421
diff
changeset
|
11 |
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
13 |
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
14 |
# details. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
15 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
16 |
# You should have received a copy of the GNU Lesser General Public License along |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5415
diff
changeset
|
17 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
0 | 18 |
"""cubicweb-ctl commands and command handlers common to twisted/modpython |
19 |
web configuration |
|
7132 | 20 |
""" |
0 | 21 |
|
22 |
__docformat__ = "restructuredtext en" |
|
23 |
||
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
24 |
import os, os.path as osp |
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
25 |
from shutil import copy, rmtree |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
26 |
|
7132 | 27 |
from logilab.common.shellutils import ASK |
28 |
||
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
29 |
from cubicweb import ExecutionError |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
30 |
from cubicweb.cwctl import CWCTL |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
31 |
from cubicweb.cwconfig import CubicWebConfiguration as cwcfg |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
32 |
from cubicweb.toolsutils import Command, CommandHandler, underline_title |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
33 |
|
0 | 34 |
|
7275
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
35 |
try: |
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
36 |
from os import symlink as linkdir |
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
37 |
except ImportError: |
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
38 |
from shutil import copytree as linkdir |
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
39 |
|
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
40 |
|
0 | 41 |
class WebCreateHandler(CommandHandler): |
42 |
cmdname = 'create' |
|
1802
d628defebc17
delete-trailing-whitespace + some copyright update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
1132
diff
changeset
|
43 |
|
7140
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
44 |
def bootstrap(self, cubes, automatic=False, inputlevel=0): |
0 | 45 |
"""bootstrap this configuration""" |
7140
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
46 |
if not automatic: |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
47 |
print '\n' + underline_title('Generic web configuration') |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
48 |
config = self.config |
8669
62213a34726e
[db-api/configuration] simplify db-api and configuration so that all the connection information is in the repository url, closes #2521848
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7275
diff
changeset
|
49 |
if config['repository-uri'].startswith('pyro://') or config.pyro_enabled(): |
7140
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
50 |
print '\n' + underline_title('Pyro configuration') |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
51 |
config.input_config('pyro', inputlevel) |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
52 |
config.input_config('web', inputlevel) |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
53 |
if ASK.confirm('Allow anonymous access ?', False): |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
54 |
config.global_set_option('anonymous-user', 'anon') |
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
55 |
config.global_set_option('anonymous-password', 'anon') |
1802
d628defebc17
delete-trailing-whitespace + some copyright update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
1132
diff
changeset
|
56 |
|
7140
ba51dac1115d
[c-c create] unification of c-c create and its subcommands handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7132
diff
changeset
|
57 |
def postcreate(self, *args, **kwargs): |
2476
1294a6bdf3bf
application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2395
diff
changeset
|
58 |
"""hooks called once instance's initialization has been completed""" |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
59 |
|
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
60 |
|
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
61 |
class GenStaticDataDirMixIn(object): |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
62 |
"""Create a directory merging all data directory content from cubes and CW. |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
63 |
""" |
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
64 |
def generate_static_dir(self, config, dest=None, ask_clean=False, repo=None): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
65 |
if not dest: |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
66 |
dest = config['staticdir-path'] |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
67 |
if not dest: |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
68 |
dest = osp.join(config.appdatahome, 'data') |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
69 |
if osp.exists(dest): |
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
70 |
if (not ask_clean or |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
71 |
not ASK.confirm('Remove existing data directory %s?' % dest)): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
72 |
raise ExecutionError('Directory %s already exists. ' |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
73 |
'Remove it first.' % dest) |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
74 |
rmtree(dest) |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
75 |
config.quick_start = True # notify this is not a regular start |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
76 |
# list all resources (no matter their order) |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
77 |
resources = set() |
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
78 |
for datadir in self._datadirs(config, repo=repo): |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
79 |
for dirpath, dirnames, filenames in os.walk(datadir): |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
80 |
rel_dirpath = dirpath[len(datadir)+1:] |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
81 |
resources.update(osp.join(rel_dirpath, f) for f in filenames) |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
82 |
# locate resources and copy them to destination |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
83 |
for resource in resources: |
9306
8ab0e601d418
[web] don't rename resources in gen-static-datadir
Julien Cristau <julien.cristau@logilab.fr>
parents:
8669
diff
changeset
|
84 |
dest_resource = osp.join(dest, resource) |
8ab0e601d418
[web] don't rename resources in gen-static-datadir
Julien Cristau <julien.cristau@logilab.fr>
parents:
8669
diff
changeset
|
85 |
dirname = osp.dirname(dest_resource) |
8ab0e601d418
[web] don't rename resources in gen-static-datadir
Julien Cristau <julien.cristau@logilab.fr>
parents:
8669
diff
changeset
|
86 |
if not osp.isdir(dirname): |
8ab0e601d418
[web] don't rename resources in gen-static-datadir
Julien Cristau <julien.cristau@logilab.fr>
parents:
8669
diff
changeset
|
87 |
os.makedirs(dirname) |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
88 |
resource_dir, resource_path = config.locate_resource(resource) |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
89 |
copy(osp.join(resource_dir, resource_path), dest_resource) |
7275
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
90 |
# handle md5 version subdirectory |
bb3bb8104134
put data version md5 into a new url segment to ease static serving
Florent Cayré <florent.cayre@gmail.com>
parents:
7274
diff
changeset
|
91 |
linkdir(dest, osp.join(dest, config.instance_md5_version())) |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
92 |
print ('You can use apache rewrite rule below :\n' |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
93 |
'RewriteRule ^/data/(.*) %s/$1 [L]' % dest) |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
94 |
|
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
95 |
def _datadirs(self, config, repo=None): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
96 |
if repo is None: |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
97 |
repo = config.repository() |
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
98 |
if config._cubes is None: |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
99 |
# web only config |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
100 |
config.init_cubes(repo.get_cubes()) |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
101 |
for cube in repo.get_cubes(): |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
102 |
cube_datadir = osp.join(cwcfg.cube_dir(cube), 'data') |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
103 |
if osp.isdir(cube_datadir): |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
104 |
yield cube_datadir |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
105 |
yield osp.join(config.shared_dir(), 'data') |
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
106 |
|
9372
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
107 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
108 |
class WebUpgradeHandler(CommandHandler, GenStaticDataDirMixIn): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
109 |
cmdname = 'upgrade' |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
110 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
111 |
def postupgrade(self, repo): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
112 |
config = self.config |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
113 |
if not config['generate-staticdir']: |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
114 |
return |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
115 |
self.generate_static_dir(config, ask_clean=True, repo=repo) |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
116 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
117 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
118 |
class GenStaticDataDir(Command, GenStaticDataDirMixIn): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
119 |
"""Create a directory merging all data directory content from cubes and CW. |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
120 |
""" |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
121 |
name = 'gen-static-datadir' |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
122 |
arguments = '<instance> [dirpath]' |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
123 |
min_args = 1 |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
124 |
max_args = 2 |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
125 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
126 |
options = () |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
127 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
128 |
def run(self, args): |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
129 |
appid = args.pop(0) |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
130 |
config = cwcfg.config_for(appid) |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
131 |
dest = None |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
132 |
if args: |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
133 |
dest = args[0] |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
134 |
self.generate_static_dir(config, dest) |
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
135 |
|
e87a808a4c32
[webctl] Generate static data directory on upgrade (closes #2167873)
Julien Cristau <julien.cristau@logilab.fr>
parents:
9306
diff
changeset
|
136 |
|
7274
4653a2a5110b
add cwctl command to generate a consolidated data directory with all cubes/ cubicweb data directories content to be delivered statically
Florent Cayré <florent.cayre@gmail.com>
parents:
7140
diff
changeset
|
137 |
CWCTL.register(GenStaticDataDir) |