Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0030_populate_resource_data.py @ efb70adf

History | View | Annotate | Download (16 kB)

1 d0991b92 Sofia Papagiannaki
# encoding: utf-8
2 d0991b92 Sofia Papagiannaki
3 670de92a Sofia Papagiannaki
from south.v2 import DataMigration
4 670de92a Sofia Papagiannaki
5 670de92a Sofia Papagiannaki
from astakos.im.settings import SERVICES
6 670de92a Sofia Papagiannaki
7 952c0979 Sofia Papagiannaki
import logging
8 952c0979 Sofia Papagiannaki
9 952c0979 Sofia Papagiannaki
logger = logging.getLogger(__name__)
10 670de92a Sofia Papagiannaki
11 670de92a Sofia Papagiannaki
class Migration(DataMigration):
12 d0991b92 Sofia Papagiannaki
13 d0991b92 Sofia Papagiannaki
    def forwards(self, orm):
14 670de92a Sofia Papagiannaki
        "Write your forwards methods here."
15 d0991b92 Sofia Papagiannaki
16 670de92a Sofia Papagiannaki
        try:
17 670de92a Sofia Papagiannaki
            default = orm.AstakosGroup.objects.get(name='default')
18 670de92a Sofia Papagiannaki
        except orm.AstakosGroup.DoesNotExist:
19 670de92a Sofia Papagiannaki
            return
20 d0991b92 Sofia Papagiannaki
21 670de92a Sofia Papagiannaki
        def create_policies(args):
22 670de92a Sofia Papagiannaki
            sn, dict = args
23 f46c95c4 Sofia Papagiannaki
            url = dict.get('url')
24 952c0979 Sofia Papagiannaki
            resources = dict.get('resources') or ()
25 820b18e0 Sofia Papagiannaki
            s, created = orm.Service.objects.get_or_create(
26 820b18e0 Sofia Papagiannaki
                name=sn,
27 820b18e0 Sofia Papagiannaki
                defaults={'url': url}
28 820b18e0 Sofia Papagiannaki
            )
29 820b18e0 Sofia Papagiannaki
            
30 952c0979 Sofia Papagiannaki
            for r in resources:
31 670de92a Sofia Papagiannaki
                try:
32 952c0979 Sofia Papagiannaki
                    rn = r.pop('name', '')
33 952c0979 Sofia Papagiannaki
                    uplimit = r.pop('uplimit', None)
34 670de92a Sofia Papagiannaki
                    r, created = orm.Resource.objects.get_or_create(
35 670de92a Sofia Papagiannaki
                        service=s,
36 952c0979 Sofia Papagiannaki
                        name=rn,
37 952c0979 Sofia Papagiannaki
                        defaults=r)
38 670de92a Sofia Papagiannaki
                except Exception, e:
39 952c0979 Sofia Papagiannaki
                    print "Cannot create resource ", rn
40 670de92a Sofia Papagiannaki
                    continue
41 efb70adf Sofia Papagiannaki
                else:
42 efb70adf Sofia Papagiannaki
                    q, created = orm.AstakosGroupQuota.objects.get_or_create(
43 efb70adf Sofia Papagiannaki
                        group=default,
44 efb70adf Sofia Papagiannaki
                        resource=r,
45 efb70adf Sofia Papagiannaki
                        defaults={
46 efb70adf Sofia Papagiannaki
                            'uplimit':uplimit,
47 efb70adf Sofia Papagiannaki
                        }
48 efb70adf Sofia Papagiannaki
                    )
49 670de92a Sofia Papagiannaki
        map(create_policies, SERVICES.iteritems())
50 670de92a Sofia Papagiannaki
51 670de92a Sofia Papagiannaki
    def backwards(self, orm):
52 670de92a Sofia Papagiannaki
        try:
53 670de92a Sofia Papagiannaki
            default = orm.AstakosGroup.objects.get(name='default')
54 670de92a Sofia Papagiannaki
        except orm.AstakosGroup.DoesNotExist:
55 670de92a Sofia Papagiannaki
            return
56 670de92a Sofia Papagiannaki
57 670de92a Sofia Papagiannaki
        def destroy_policies(args):
58 670de92a Sofia Papagiannaki
            sn, dict = args
59 f46c95c4 Sofia Papagiannaki
            url = dict.get('url')
60 952c0979 Sofia Papagiannaki
            resources = dict.get('resources') or ()
61 952c0979 Sofia Papagiannaki
            for r in resources:
62 952c0979 Sofia Papagiannaki
                rn = r.get('name', '')
63 670de92a Sofia Papagiannaki
                try:
64 1f3ad141 Sofia Papagiannaki
                    q = orm.AstakosGroupQuota.objects.get(
65 1f3ad141 Sofia Papagiannaki
                        group=default,
66 1f3ad141 Sofia Papagiannaki
                        resource__name=rn)
67 1f3ad141 Sofia Papagiannaki
                    q.delete()
68 952c0979 Sofia Papagiannaki
                    q = orm.Resource.objects.get(service__name=sn, name=rn)
69 670de92a Sofia Papagiannaki
                    q.delete()
70 1f3ad141 Sofia Papagiannaki
                except Exception, e:
71 1f3ad141 Sofia Papagiannaki
                    print "Cannot create resource ", rn
72 670de92a Sofia Papagiannaki
                    continue
73 f46c95c4 Sofia Papagiannaki
74 670de92a Sofia Papagiannaki
        map(destroy_policies, SERVICES.iteritems())
75 f46c95c4 Sofia Papagiannaki
76 d0991b92 Sofia Papagiannaki
    models = {
77 d0991b92 Sofia Papagiannaki
        'auth.group': {
78 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'Group'},
79 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
80 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
81 d0991b92 Sofia Papagiannaki
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
82 d0991b92 Sofia Papagiannaki
        },
83 d0991b92 Sofia Papagiannaki
        'auth.permission': {
84 d0991b92 Sofia Papagiannaki
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
85 d0991b92 Sofia Papagiannaki
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
86 d0991b92 Sofia Papagiannaki
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
87 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
88 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
89 d0991b92 Sofia Papagiannaki
        },
90 d0991b92 Sofia Papagiannaki
        'auth.user': {
91 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'User'},
92 d0991b92 Sofia Papagiannaki
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
93 d0991b92 Sofia Papagiannaki
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
94 d0991b92 Sofia Papagiannaki
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
95 d0991b92 Sofia Papagiannaki
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
96 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
97 d0991b92 Sofia Papagiannaki
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
98 d0991b92 Sofia Papagiannaki
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
99 d0991b92 Sofia Papagiannaki
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
100 d0991b92 Sofia Papagiannaki
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
101 d0991b92 Sofia Papagiannaki
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
102 d0991b92 Sofia Papagiannaki
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
103 d0991b92 Sofia Papagiannaki
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
104 d0991b92 Sofia Papagiannaki
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
105 d0991b92 Sofia Papagiannaki
        },
106 d0991b92 Sofia Papagiannaki
        'contenttypes.contenttype': {
107 d0991b92 Sofia Papagiannaki
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
108 d0991b92 Sofia Papagiannaki
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
109 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
110 d0991b92 Sofia Papagiannaki
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
111 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
112 d0991b92 Sofia Papagiannaki
        },
113 d0991b92 Sofia Papagiannaki
        'im.additionalmail': {
114 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'AdditionalMail'},
115 d0991b92 Sofia Papagiannaki
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
116 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
117 d0991b92 Sofia Papagiannaki
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
118 d0991b92 Sofia Papagiannaki
        },
119 d0991b92 Sofia Papagiannaki
        'im.approvalterms': {
120 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'ApprovalTerms'},
121 952c0979 Sofia Papagiannaki
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 5, 12, 47, 39, 465319)', 'db_index': 'True'}),
122 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
123 d0991b92 Sofia Papagiannaki
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
124 d0991b92 Sofia Papagiannaki
        },
125 d0991b92 Sofia Papagiannaki
        'im.astakosgroup': {
126 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'AstakosGroup', '_ormbases': ['auth.Group']},
127 d0991b92 Sofia Papagiannaki
            'approval_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
128 952c0979 Sofia Papagiannaki
            'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 5, 12, 47, 39, 456067)'}),
129 d0991b92 Sofia Papagiannaki
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
130 952c0979 Sofia Papagiannaki
            'estimated_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
131 d0991b92 Sofia Papagiannaki
            'expiration_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
132 d0991b92 Sofia Papagiannaki
            'group_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.Group']", 'unique': 'True', 'primary_key': 'True'}),
133 952c0979 Sofia Papagiannaki
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
134 d0991b92 Sofia Papagiannaki
            'issue_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
135 d0991b92 Sofia Papagiannaki
            'kind': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.GroupKind']"}),
136 952c0979 Sofia Papagiannaki
            'max_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
137 d0991b92 Sofia Papagiannaki
            'moderation_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
138 d0991b92 Sofia Papagiannaki
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosGroupQuota']", 'blank': 'True'})
139 d0991b92 Sofia Papagiannaki
        },
140 d0991b92 Sofia Papagiannaki
        'im.astakosgroupquota': {
141 d0991b92 Sofia Papagiannaki
            'Meta': {'unique_together': "(('resource', 'group'),)", 'object_name': 'AstakosGroupQuota'},
142 d0991b92 Sofia Papagiannaki
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']", 'blank': 'True'}),
143 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
144 952c0979 Sofia Papagiannaki
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
145 670de92a Sofia Papagiannaki
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
146 670de92a Sofia Papagiannaki
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'})
147 d0991b92 Sofia Papagiannaki
        },
148 d0991b92 Sofia Papagiannaki
        'im.astakosuser': {
149 d0991b92 Sofia Papagiannaki
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
150 d0991b92 Sofia Papagiannaki
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
151 d0991b92 Sofia Papagiannaki
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
152 d0991b92 Sofia Papagiannaki
            'astakos_groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosGroup']", 'symmetrical': 'False', 'through': "orm['im.Membership']", 'blank': 'True'}),
153 d0991b92 Sofia Papagiannaki
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
154 d0991b92 Sofia Papagiannaki
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
155 d0991b92 Sofia Papagiannaki
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
156 d0991b92 Sofia Papagiannaki
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
157 952c0979 Sofia Papagiannaki
            'disturbed_quota': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
158 d0991b92 Sofia Papagiannaki
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
159 d0991b92 Sofia Papagiannaki
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
160 d0991b92 Sofia Papagiannaki
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
161 d0991b92 Sofia Papagiannaki
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '100'}),
162 d0991b92 Sofia Papagiannaki
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
163 d0991b92 Sofia Papagiannaki
            'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
164 d0991b92 Sofia Papagiannaki
            'owner': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'owner'", 'null': 'True', 'to': "orm['im.AstakosGroup']"}),
165 d0991b92 Sofia Papagiannaki
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosUserQuota']", 'symmetrical': 'False'}),
166 d0991b92 Sofia Papagiannaki
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
167 d0991b92 Sofia Papagiannaki
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
168 d0991b92 Sofia Papagiannaki
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
169 d0991b92 Sofia Papagiannaki
            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
170 d0991b92 Sofia Papagiannaki
        },
171 d0991b92 Sofia Papagiannaki
        'im.astakosuserquota': {
172 d0991b92 Sofia Papagiannaki
            'Meta': {'unique_together': "(('resource', 'user'),)", 'object_name': 'AstakosUserQuota'},
173 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
174 952c0979 Sofia Papagiannaki
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
175 d0991b92 Sofia Papagiannaki
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
176 670de92a Sofia Papagiannaki
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
177 d0991b92 Sofia Papagiannaki
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
178 d0991b92 Sofia Papagiannaki
        },
179 d0991b92 Sofia Papagiannaki
        'im.emailchange': {
180 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'EmailChange'},
181 d0991b92 Sofia Papagiannaki
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
182 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
183 d0991b92 Sofia Papagiannaki
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
184 952c0979 Sofia Papagiannaki
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 5, 12, 47, 39, 466946)'}),
185 d0991b92 Sofia Papagiannaki
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchange_user'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
186 d0991b92 Sofia Papagiannaki
        },
187 d0991b92 Sofia Papagiannaki
        'im.groupkind': {
188 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'GroupKind'},
189 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
190 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
191 d0991b92 Sofia Papagiannaki
        },
192 d0991b92 Sofia Papagiannaki
        'im.invitation': {
193 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'Invitation'},
194 d0991b92 Sofia Papagiannaki
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
195 d0991b92 Sofia Papagiannaki
            'consumed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
196 d0991b92 Sofia Papagiannaki
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
197 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
198 d0991b92 Sofia Papagiannaki
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
199 d0991b92 Sofia Papagiannaki
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
200 d0991b92 Sofia Papagiannaki
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
201 d0991b92 Sofia Papagiannaki
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
202 d0991b92 Sofia Papagiannaki
        },
203 d0991b92 Sofia Papagiannaki
        'im.membership': {
204 d0991b92 Sofia Papagiannaki
            'Meta': {'unique_together': "(('person', 'group'),)", 'object_name': 'Membership'},
205 d0991b92 Sofia Papagiannaki
            'date_joined': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
206 952c0979 Sofia Papagiannaki
            'date_requested': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 11, 5, 12, 47, 39, 462857)', 'blank': 'True'}),
207 d0991b92 Sofia Papagiannaki
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']"}),
208 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
209 d0991b92 Sofia Papagiannaki
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
210 d0991b92 Sofia Papagiannaki
        },
211 d0991b92 Sofia Papagiannaki
        'im.resource': {
212 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'Resource'},
213 952c0979 Sofia Papagiannaki
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
214 952c0979 Sofia Papagiannaki
            'group': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
215 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
216 d0991b92 Sofia Papagiannaki
            'meta': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.ResourceMetadata']", 'symmetrical': 'False'}),
217 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
218 952c0979 Sofia Papagiannaki
            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Service']"}),
219 952c0979 Sofia Papagiannaki
            'unit': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'})
220 d0991b92 Sofia Papagiannaki
        },
221 d0991b92 Sofia Papagiannaki
        'im.resourcemetadata': {
222 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'ResourceMetadata'},
223 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
224 d0991b92 Sofia Papagiannaki
            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
225 d0991b92 Sofia Papagiannaki
            'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
226 d0991b92 Sofia Papagiannaki
        },
227 d0991b92 Sofia Papagiannaki
        'im.service': {
228 d0991b92 Sofia Papagiannaki
            'Meta': {'object_name': 'Service'},
229 d0991b92 Sofia Papagiannaki
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
230 d0991b92 Sofia Papagiannaki
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
231 d0991b92 Sofia Papagiannaki
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
232 d0991b92 Sofia Papagiannaki
            'icon': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
233 d0991b92 Sofia Papagiannaki
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
234 d0991b92 Sofia Papagiannaki
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
235 d0991b92 Sofia Papagiannaki
            'url': ('django.db.models.fields.FilePathField', [], {'max_length': '100'})
236 d0991b92 Sofia Papagiannaki
        }
237 d0991b92 Sofia Papagiannaki
    }
238 d0991b92 Sofia Papagiannaki
239 d0991b92 Sofia Papagiannaki
    complete_apps = ['im']