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