~fo0bar/turku/bionic

« back to all changes in this revision

Viewing changes to turku_api/migrations/0006_hash_secrets.py

  • Committer: Ryan Finnie
  • Date: 2020-03-24 21:50:17 UTC
  • Revision ID: ryan@finnie.org-20200324215017-6ojkdzl1mbq2jlqp
Add compatibility for Django 1.8~1.11 (xenial/bionic)

- Disable admin form "related links" (form children links) -- broken as of
  1.8, would be nice to have back if someone can figure out a replacement
- Add "fields = '__all__'" to admin forms
- Remove south migrations
- Port TEMPLATE_DIRS to TEMPLATES
- Change urlpatterns from patterns() to url() list
  
Changes have been tested as being backwards compatible to 1.6 (trusty).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: utf-8 -*-
2
 
from south.utils import datetime_utils as datetime
3
 
from south.db import db
4
 
from south.v2 import DataMigration
5
 
from django.db import models
6
 
 
7
 
class Migration(DataMigration):
8
 
    no_dry_run = True
9
 
 
10
 
    def forwards(self, orm):
11
 
        # Data migration
12
 
        from django.contrib.auth import hashers
13
 
        for machine in orm.Machine.objects.all():
14
 
            machine.secret_hash = hashers.make_password(machine.secret)
15
 
            machine.save()
16
 
        for storage in orm.Storage.objects.all():
17
 
            storage.secret_hash = hashers.make_password(storage.secret)
18
 
            storage.save()
19
 
 
20
 
    def backwards(self, orm):
21
 
        raise RuntimeError('Cannot reverse this migration.')
22
 
 
23
 
    models = {
24
 
        u'turku_api.auth': {
25
 
            'Meta': {'unique_together': "(('name', 'secret'),)", 'object_name': 'Auth'},
26
 
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
27
 
            'comment': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
28
 
            'date_added': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
29
 
            'id': ('django.db.models.fields.CharField', [], {'default': "'25a008ee-67c7-489e-aa4f-34e0d1f29a6a'", 'max_length': '36', 'primary_key': 'True'}),
30
 
            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
31
 
            'secret': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
32
 
            'secret_type': ('django.db.models.fields.CharField', [], {'max_length': '200'})
33
 
        },
34
 
        u'turku_api.machine': {
35
 
            'Meta': {'object_name': 'Machine'},
36
 
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
37
 
            'auth': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['turku_api.Auth']"}),
38
 
            'comment': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
39
 
            'date_checked_in': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
40
 
            'date_registered': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
41
 
            'date_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
42
 
            'environment_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
43
 
            'id': ('django.db.models.fields.CharField', [], {'default': "'4bbc1e64-074b-482b-ad4a-8df3f48144f0'", 'max_length': '36', 'primary_key': 'True'}),
44
 
            'secret': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
45
 
            'secret_hash': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
46
 
            'service_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
47
 
            'ssh_public_key': ('django.db.models.fields.CharField', [], {'max_length': '2048'}),
48
 
            'storage': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['turku_api.Storage']"}),
49
 
            'unit_name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
50
 
            'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
51
 
        },
52
 
        u'turku_api.source': {
53
 
            'Meta': {'unique_together': "(('machine', 'name'),)", 'object_name': 'Source'},
54
 
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
55
 
            'comment': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
56
 
            'date_added': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
57
 
            'date_last_backed_up': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
58
 
            'date_next_backup': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
59
 
            'date_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
60
 
            'exclude': ('django.db.models.fields.CharField', [], {'default': "'[]'", 'max_length': '2048'}),
61
 
            'frequency': ('django.db.models.fields.CharField', [], {'default': "'daily'", 'max_length': '200'}),
62
 
            'id': ('django.db.models.fields.CharField', [], {'default': "'88021b4d-687a-4b11-820f-ed434d230484'", 'max_length': '36', 'primary_key': 'True'}),
63
 
            'large_modifying_files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
64
 
            'large_rotating_files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
65
 
            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['turku_api.Machine']"}),
66
 
            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
67
 
            'password': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
68
 
            'path': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
69
 
            'published': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
70
 
            'retention': ('django.db.models.fields.CharField', [], {'default': "'last 5 days,earliest of month'", 'max_length': '200'}),
71
 
            'shared_service': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
72
 
            'username': ('django.db.models.fields.CharField', [], {'max_length': '200'})
73
 
        },
74
 
        u'turku_api.storage': {
75
 
            'Meta': {'object_name': 'Storage'},
76
 
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
77
 
            'auth': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['turku_api.Auth']"}),
78
 
            'comment': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
79
 
            'date_checked_in': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
80
 
            'date_registered': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
81
 
            'date_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
82
 
            'id': ('django.db.models.fields.CharField', [], {'default': "'8a1dfd4c-7dc4-4499-a3b7-b9feeb79c914'", 'max_length': '36', 'primary_key': 'True'}),
83
 
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'}),
84
 
            'secret': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
85
 
            'secret_hash': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
86
 
            'ssh_ping_host': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
87
 
            'ssh_ping_host_keys': ('django.db.models.fields.CharField', [], {'default': "'[]'", 'max_length': '65536'}),
88
 
            'ssh_ping_port': ('django.db.models.fields.PositiveIntegerField', [], {}),
89
 
            'ssh_ping_user': ('django.db.models.fields.CharField', [], {'max_length': '200'})
90
 
        }
91
 
    }
92
 
 
93
 
    complete_apps = ['turku_api']
94
 
    symmetrical = True