root / docs / upgrade / upgrade-0.14.rst @ 857383e3
History | View | Annotate | Download (2.9 kB)
1 |
Upgrade to Synnefo v0.14 |
---|---|
2 |
^^^^^^^^^^^^^^^^^^^^^^^^ |
3 |
|
4 |
The bulk of the upgrade to v0.14 is about resource and quota migrations. |
5 |
|
6 |
|
7 |
.. warning:: |
8 |
|
9 |
It is strongly suggested that you keep separate database backups |
10 |
for each service after the completion of each of step. |
11 |
|
12 |
1. Bring web services down, backup databases |
13 |
============================================ |
14 |
|
15 |
1. All web services must be brought down so that the database maintains a |
16 |
predictable and consistent state during the migration process:: |
17 |
|
18 |
# service gunicorn stop |
19 |
# service snf-dispatcher stop |
20 |
# etc. |
21 |
|
22 |
2. Backup databases for recovery to a pre-migration state. |
23 |
|
24 |
3. Keep the database servers running during the migration process |
25 |
|
26 |
|
27 |
2. Upgrade Synnefo and configure settings |
28 |
========================================= |
29 |
|
30 |
2.2 Sync and migrate Django DB |
31 |
------------------------------ |
32 |
|
33 |
.. note:: |
34 |
|
35 |
If you are asked about stale content types during the migration process, |
36 |
answer 'no' and let the migration finish. |
37 |
|
38 |
:: |
39 |
|
40 |
astakos-host$ snf-manage syncdb |
41 |
astakos-host$ snf-manage migrate quotaholder_app 0001 --fake |
42 |
astakos-host$ snf-manage migrate quotaholder_app |
43 |
astakos-host$ snf-manage migrate im |
44 |
|
45 |
cyclades-host$ snf-manage syncdb |
46 |
cyclades-host$ snf-manage migrate |
47 |
|
48 |
|
49 |
3 Quota-related steps |
50 |
===================== |
51 |
|
52 |
3.1 Set services and resources |
53 |
------------------------------ |
54 |
|
55 |
Astakos and its resources should also get registered, so that they can |
56 |
be known to the quota system. |
57 |
|
58 |
Run:: |
59 |
|
60 |
astakos-host$ snf-manage service-add astakos service_url api_url |
61 |
astakos-host$ snf-manage resource-export-astakos > astakos.json |
62 |
astakos-host$ snf-manage resource-import --json astakos.json |
63 |
astakos-host$ snf-manage resource-modify astakos.pending_app --limit <num> |
64 |
|
65 |
The last command will set the limit of max pending project applications |
66 |
per user. This replaces setting ASTAKOS_PENDING_APPLICATION_LIMIT. |
67 |
|
68 |
In order to migrate the user-specific limits, run |
69 |
(script: ``migrate_pending_app.py``):: |
70 |
|
71 |
import os |
72 |
os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings' |
73 |
from astakos.im.models import UserSetting, AstakosUserQuota, Resource |
74 |
|
75 |
SETTING = 'PENDING_APPLICATION_LIMIT' |
76 |
RESOURCE = 'astakos.pending_app' |
77 |
|
78 |
try: |
79 |
resource = Resource.objects.get(name=RESOURCE) |
80 |
except Resource.DoesNotExist: |
81 |
print "Resource 'astakos.pending_app' not found." |
82 |
exit() |
83 |
|
84 |
settings = UserSetting.objects.filter(setting=SETTING) |
85 |
for setting in settings: |
86 |
user = setting.user |
87 |
value = setting.value |
88 |
q, created = AstakosUserQuota.objects.get_or_create( |
89 |
user=user, resource=resource, capacity=value) |
90 |
if not created: |
91 |
print "Base quota already exists: %s %s" % (user.uuid, RESOURCE) |
92 |
continue |
93 |
print "Migrated base quota: %s %s %s" % (user.uuid, RESOURCE, value) |
94 |
|
95 |
with:: |
96 |
|
97 |
astakos-host$ python ./migrate_pending_app.py |
98 |
|
99 |
followed by:: |
100 |
|
101 |
astakos-host$ snf-manage reconcile-resources-astakos |