Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / db / migrations / 0080_nics_to_ips.py @ d484f6df

History | View | Annotate | Download (19.8 kB)

1 d484f6df Christos Stavrakakis
# -*- coding: utf-8 -*-
2 d484f6df Christos Stavrakakis
import datetime
3 d484f6df Christos Stavrakakis
from south.db import db
4 d484f6df Christos Stavrakakis
from south.v2 import DataMigration
5 d484f6df Christos Stavrakakis
from django.db import models
6 d484f6df Christos Stavrakakis
7 d484f6df Christos Stavrakakis
class Migration(DataMigration):
8 d484f6df Christos Stavrakakis
9 d484f6df Christos Stavrakakis
    def forwards(self, orm):
10 d484f6df Christos Stavrakakis
        "Write your forwards methods here."
11 d484f6df Christos Stavrakakis
        # Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..."
12 d484f6df Christos Stavrakakis
        for nic in orm.NetworkInterface.objects.all():
13 d484f6df Christos Stavrakakis
            userid = nic.machine.userid
14 d484f6df Christos Stavrakakis
            nic.userid = userid
15 d484f6df Christos Stavrakakis
            nic.save()
16 d484f6df Christos Stavrakakis
            network = nic.network
17 d484f6df Christos Stavrakakis
            for attr in ["ipv4", "ipv6"]:
18 d484f6df Christos Stavrakakis
                address = getattr(nic, attr)
19 d484f6df Christos Stavrakakis
                if address:
20 d484f6df Christos Stavrakakis
                    ipversion = 4 if attr == "ipv4" else 6
21 d484f6df Christos Stavrakakis
                    subnet = nic.network.subnets.get(ipversion=ipversion)
22 d484f6df Christos Stavrakakis
                    orm.IPAddress.objects.create(network=network,
23 d484f6df Christos Stavrakakis
                                                 subnet=subnet,
24 d484f6df Christos Stavrakakis
                                                 nic=nic,
25 d484f6df Christos Stavrakakis
                                                 userid=userid,
26 d484f6df Christos Stavrakakis
                                                 address=address)
27 d484f6df Christos Stavrakakis
28 d484f6df Christos Stavrakakis
29 d484f6df Christos Stavrakakis
    def backwards(self, orm):
30 d484f6df Christos Stavrakakis
        "Write your backwards methods here."
31 d484f6df Christos Stavrakakis
        for ip in orm.IPAddress.objects.filter(deleted=False):
32 d484f6df Christos Stavrakakis
            nic = ip.nic
33 d484f6df Christos Stavrakakis
            attr = "ipv4" if nic.subnet.ipversion == 4 else "ipv6"
34 d484f6df Christos Stavrakakis
            setattr(nic, attr, ip.address)
35 d484f6df Christos Stavrakakis
            nic.save()
36 d484f6df Christos Stavrakakis
37 d484f6df Christos Stavrakakis
38 d484f6df Christos Stavrakakis
    models = {
39 d484f6df Christos Stavrakakis
        'db.backend': {
40 d484f6df Christos Stavrakakis
            'Meta': {'ordering': "['clustername']", 'object_name': 'Backend'},
41 d484f6df Christos Stavrakakis
            'clustername': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
42 d484f6df Christos Stavrakakis
            'ctotal': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
43 d484f6df Christos Stavrakakis
            'dfree': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
44 d484f6df Christos Stavrakakis
            'disk_templates': ('synnefo.db.fields.SeparatedValuesField', [], {'null': 'True'}),
45 d484f6df Christos Stavrakakis
            'drained': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
46 d484f6df Christos Stavrakakis
            'dtotal': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
47 d484f6df Christos Stavrakakis
            'hash': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
48 d484f6df Christos Stavrakakis
            'hypervisor': ('django.db.models.fields.CharField', [], {'default': "'kvm'", 'max_length': '32'}),
49 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
50 d484f6df Christos Stavrakakis
            'index': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'unique': 'True'}),
51 d484f6df Christos Stavrakakis
            'mfree': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
52 d484f6df Christos Stavrakakis
            'mtotal': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
53 d484f6df Christos Stavrakakis
            'offline': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
54 d484f6df Christos Stavrakakis
            'password_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
55 d484f6df Christos Stavrakakis
            'pinst_cnt': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
56 d484f6df Christos Stavrakakis
            'port': ('django.db.models.fields.PositiveIntegerField', [], {'default': '5080'}),
57 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
58 d484f6df Christos Stavrakakis
            'username': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True', 'blank': 'True'})
59 d484f6df Christos Stavrakakis
        },
60 d484f6df Christos Stavrakakis
        'db.backendnetwork': {
61 d484f6df Christos Stavrakakis
            'Meta': {'unique_together': "(('network', 'backend'),)", 'object_name': 'BackendNetwork'},
62 d484f6df Christos Stavrakakis
            'backend': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'networks'", 'on_delete': 'models.PROTECT', 'to': "orm['db.Backend']"}),
63 d484f6df Christos Stavrakakis
            'backendjobid': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
64 d484f6df Christos Stavrakakis
            'backendjobstatus': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
65 d484f6df Christos Stavrakakis
            'backendlogmsg': ('django.db.models.fields.TextField', [], {'null': 'True'}),
66 d484f6df Christos Stavrakakis
            'backendopcode': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
67 d484f6df Christos Stavrakakis
            'backendtime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1, 1, 1, 0, 0)'}),
68 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
69 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
70 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
71 d484f6df Christos Stavrakakis
            'mac_prefix': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
72 d484f6df Christos Stavrakakis
            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'backend_networks'", 'to': "orm['db.Network']"}),
73 d484f6df Christos Stavrakakis
            'operstate': ('django.db.models.fields.CharField', [], {'default': "'PENDING'", 'max_length': '30'}),
74 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
75 d484f6df Christos Stavrakakis
        },
76 d484f6df Christos Stavrakakis
        'db.bridgepooltable': {
77 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'BridgePoolTable'},
78 d484f6df Christos Stavrakakis
            'available_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
79 d484f6df Christos Stavrakakis
            'base': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
80 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
81 d484f6df Christos Stavrakakis
            'offset': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
82 d484f6df Christos Stavrakakis
            'reserved_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
83 d484f6df Christos Stavrakakis
            'size': ('django.db.models.fields.IntegerField', [], {})
84 d484f6df Christos Stavrakakis
        },
85 d484f6df Christos Stavrakakis
        'db.flavor': {
86 d484f6df Christos Stavrakakis
            'Meta': {'unique_together': "(('cpu', 'ram', 'disk', 'disk_template'),)", 'object_name': 'Flavor'},
87 d484f6df Christos Stavrakakis
            'cpu': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
88 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
89 d484f6df Christos Stavrakakis
            'disk': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
90 d484f6df Christos Stavrakakis
            'disk_template': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
91 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
92 d484f6df Christos Stavrakakis
            'ram': ('django.db.models.fields.IntegerField', [], {'default': '0'})
93 d484f6df Christos Stavrakakis
        },
94 d484f6df Christos Stavrakakis
        'db.floatingip': {
95 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'FloatingIP'},
96 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
97 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
98 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
99 d484f6df Christos Stavrakakis
            'ipv4': ('django.db.models.fields.IPAddressField', [], {'unique': 'True', 'max_length': '15', 'db_index': 'True'}),
100 d484f6df Christos Stavrakakis
            'machine': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'floating_ips'", 'null': 'True', 'to': "orm['db.VirtualMachine']"}),
101 d484f6df Christos Stavrakakis
            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'floating_ips'", 'to': "orm['db.Network']"}),
102 d484f6df Christos Stavrakakis
            'serial': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'floating_ips'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['db.QuotaHolderSerial']"}),
103 d484f6df Christos Stavrakakis
            'userid': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'})
104 d484f6df Christos Stavrakakis
        },
105 d484f6df Christos Stavrakakis
        'db.ipaddress': {
106 d484f6df Christos Stavrakakis
            'Meta': {'unique_together': "(('network', 'address'),)", 'object_name': 'IPAddress'},
107 d484f6df Christos Stavrakakis
            'address': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
108 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
109 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
110 d484f6df Christos Stavrakakis
            'floating_ip': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
111 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
112 d484f6df Christos Stavrakakis
            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ips'", 'to': "orm['db.Network']"}),
113 d484f6df Christos Stavrakakis
            'nic': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ips'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['db.NetworkInterface']"}),
114 d484f6df Christos Stavrakakis
            'serial': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ips'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['db.QuotaHolderSerial']"}),
115 d484f6df Christos Stavrakakis
            'subnet': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ips'", 'to': "orm['db.Subnet']"}),
116 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
117 d484f6df Christos Stavrakakis
            'userid': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'})
118 d484f6df Christos Stavrakakis
        },
119 d484f6df Christos Stavrakakis
        'db.ippooltable': {
120 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'IPPoolTable'},
121 d484f6df Christos Stavrakakis
            'available_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
122 d484f6df Christos Stavrakakis
            'base': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
123 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
124 d484f6df Christos Stavrakakis
            'offset': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
125 d484f6df Christos Stavrakakis
            'reserved_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
126 d484f6df Christos Stavrakakis
            'size': ('django.db.models.fields.IntegerField', [], {}),
127 d484f6df Christos Stavrakakis
            'subnet': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ip_pools'", 'null': 'True', 'to': "orm['db.Subnet']"})
128 d484f6df Christos Stavrakakis
        },
129 d484f6df Christos Stavrakakis
        'db.macprefixpooltable': {
130 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'MacPrefixPoolTable'},
131 d484f6df Christos Stavrakakis
            'available_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
132 d484f6df Christos Stavrakakis
            'base': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
133 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
134 d484f6df Christos Stavrakakis
            'offset': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
135 d484f6df Christos Stavrakakis
            'reserved_map': ('django.db.models.fields.TextField', [], {'default': "''"}),
136 d484f6df Christos Stavrakakis
            'size': ('django.db.models.fields.IntegerField', [], {})
137 d484f6df Christos Stavrakakis
        },
138 d484f6df Christos Stavrakakis
        'db.network': {
139 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'Network'},
140 d484f6df Christos Stavrakakis
            'action': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '32', 'null': 'True'}),
141 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
142 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
143 d484f6df Christos Stavrakakis
            'drained': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
144 d484f6df Christos Stavrakakis
            'external_router': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
145 d484f6df Christos Stavrakakis
            'flavor': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
146 d484f6df Christos Stavrakakis
            'floating_ip_pool': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
147 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
148 d484f6df Christos Stavrakakis
            'link': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
149 d484f6df Christos Stavrakakis
            'mac_prefix': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
150 d484f6df Christos Stavrakakis
            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['db.VirtualMachine']", 'through': "orm['db.NetworkInterface']", 'symmetrical': 'False'}),
151 d484f6df Christos Stavrakakis
            'mode': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True'}),
152 d484f6df Christos Stavrakakis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
153 d484f6df Christos Stavrakakis
            'public': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
154 d484f6df Christos Stavrakakis
            'serial': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'network'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['db.QuotaHolderSerial']"}),
155 d484f6df Christos Stavrakakis
            'state': ('django.db.models.fields.CharField', [], {'default': "'PENDING'", 'max_length': '32'}),
156 d484f6df Christos Stavrakakis
            'tags': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}),
157 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
158 d484f6df Christos Stavrakakis
            'userid': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'db_index': 'True'})
159 d484f6df Christos Stavrakakis
        },
160 d484f6df Christos Stavrakakis
        'db.networkinterface': {
161 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'NetworkInterface'},
162 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
163 d484f6df Christos Stavrakakis
            'device_owner': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}),
164 d484f6df Christos Stavrakakis
            'dirty': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
165 d484f6df Christos Stavrakakis
            'firewall_profile': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
166 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
167 d484f6df Christos Stavrakakis
            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
168 d484f6df Christos Stavrakakis
            'ipv4': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True'}),
169 d484f6df Christos Stavrakakis
            'ipv6': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}),
170 d484f6df Christos Stavrakakis
            'mac': ('django.db.models.fields.CharField', [], {'max_length': '32', 'unique': 'True', 'null': 'True'}),
171 d484f6df Christos Stavrakakis
            'machine': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nics'", 'to': "orm['db.VirtualMachine']"}),
172 d484f6df Christos Stavrakakis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}),
173 d484f6df Christos Stavrakakis
            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nics'", 'to': "orm['db.Network']"}),
174 d484f6df Christos Stavrakakis
            'security_groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['db.SecurityGroup']", 'null': 'True', 'symmetrical': 'False'}),
175 d484f6df Christos Stavrakakis
            'state': ('django.db.models.fields.CharField', [], {'default': "'ACTIVE'", 'max_length': '32'}),
176 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
177 d484f6df Christos Stavrakakis
            'userid': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'db_index': 'True'})
178 d484f6df Christos Stavrakakis
        },
179 d484f6df Christos Stavrakakis
        'db.quotaholderserial': {
180 d484f6df Christos Stavrakakis
            'Meta': {'ordering': "['serial']", 'object_name': 'QuotaHolderSerial'},
181 d484f6df Christos Stavrakakis
            'accept': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
182 d484f6df Christos Stavrakakis
            'pending': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
183 d484f6df Christos Stavrakakis
            'resolved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
184 d484f6df Christos Stavrakakis
            'serial': ('django.db.models.fields.BigIntegerField', [], {'primary_key': 'True', 'db_index': 'True'})
185 d484f6df Christos Stavrakakis
        },
186 d484f6df Christos Stavrakakis
        'db.securitygroup': {
187 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'SecurityGroup'},
188 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
189 d484f6df Christos Stavrakakis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
190 d484f6df Christos Stavrakakis
        },
191 d484f6df Christos Stavrakakis
        'db.subnet': {
192 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'Subnet'},
193 d484f6df Christos Stavrakakis
            'cidr': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True'}),
194 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
195 d484f6df Christos Stavrakakis
            'dhcp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
196 d484f6df Christos Stavrakakis
            'dns_nameservers': ('synnefo.db.fields.SeparatedValuesField', [], {'null': 'True'}),
197 d484f6df Christos Stavrakakis
            'gateway': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True'}),
198 d484f6df Christos Stavrakakis
            'host_routes': ('synnefo.db.fields.SeparatedValuesField', [], {'null': 'True'}),
199 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
200 d484f6df Christos Stavrakakis
            'ipversion': ('django.db.models.fields.IntegerField', [], {'default': '4'}),
201 d484f6df Christos Stavrakakis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}),
202 d484f6df Christos Stavrakakis
            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'subnets'", 'to': "orm['db.Network']"})
203 d484f6df Christos Stavrakakis
        },
204 d484f6df Christos Stavrakakis
        'db.virtualmachine': {
205 d484f6df Christos Stavrakakis
            'Meta': {'object_name': 'VirtualMachine'},
206 d484f6df Christos Stavrakakis
            'action': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '30', 'null': 'True'}),
207 d484f6df Christos Stavrakakis
            'backend': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'virtual_machines'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': "orm['db.Backend']"}),
208 d484f6df Christos Stavrakakis
            'backend_hash': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}),
209 d484f6df Christos Stavrakakis
            'backendjobid': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
210 d484f6df Christos Stavrakakis
            'backendjobstatus': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
211 d484f6df Christos Stavrakakis
            'backendlogmsg': ('django.db.models.fields.TextField', [], {'null': 'True'}),
212 d484f6df Christos Stavrakakis
            'backendopcode': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
213 d484f6df Christos Stavrakakis
            'backendtime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1, 1, 1, 0, 0)'}),
214 d484f6df Christos Stavrakakis
            'buildpercentage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
215 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
216 d484f6df Christos Stavrakakis
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
217 d484f6df Christos Stavrakakis
            'flavor': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.Flavor']", 'on_delete': 'models.PROTECT'}),
218 d484f6df Christos Stavrakakis
            'hostid': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
219 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
220 d484f6df Christos Stavrakakis
            'imageid': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
221 d484f6df Christos Stavrakakis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
222 d484f6df Christos Stavrakakis
            'operstate': ('django.db.models.fields.CharField', [], {'default': "'BUILD'", 'max_length': '30'}),
223 d484f6df Christos Stavrakakis
            'serial': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'virtual_machine'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['db.QuotaHolderSerial']"}),
224 d484f6df Christos Stavrakakis
            'suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
225 d484f6df Christos Stavrakakis
            'task': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True'}),
226 d484f6df Christos Stavrakakis
            'task_job_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
227 d484f6df Christos Stavrakakis
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
228 d484f6df Christos Stavrakakis
            'userid': ('django.db.models.fields.CharField', [], {'max_length': '100', 'db_index': 'True'})
229 d484f6df Christos Stavrakakis
        },
230 d484f6df Christos Stavrakakis
        'db.virtualmachinediagnostic': {
231 d484f6df Christos Stavrakakis
            'Meta': {'ordering': "['-created']", 'object_name': 'VirtualMachineDiagnostic'},
232 d484f6df Christos Stavrakakis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
233 d484f6df Christos Stavrakakis
            'details': ('django.db.models.fields.TextField', [], {'null': 'True'}),
234 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
235 d484f6df Christos Stavrakakis
            'level': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
236 d484f6df Christos Stavrakakis
            'machine': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'diagnostics'", 'to': "orm['db.VirtualMachine']"}),
237 d484f6df Christos Stavrakakis
            'message': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
238 d484f6df Christos Stavrakakis
            'source': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
239 d484f6df Christos Stavrakakis
            'source_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'})
240 d484f6df Christos Stavrakakis
        },
241 d484f6df Christos Stavrakakis
        'db.virtualmachinemetadata': {
242 d484f6df Christos Stavrakakis
            'Meta': {'unique_together': "(('meta_key', 'vm'),)", 'object_name': 'VirtualMachineMetadata'},
243 d484f6df Christos Stavrakakis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
244 d484f6df Christos Stavrakakis
            'meta_key': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
245 d484f6df Christos Stavrakakis
            'meta_value': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
246 d484f6df Christos Stavrakakis
            'vm': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'metadata'", 'to': "orm['db.VirtualMachine']"})
247 d484f6df Christos Stavrakakis
        }
248 d484f6df Christos Stavrakakis
    }
249 d484f6df Christos Stavrakakis
250 d484f6df Christos Stavrakakis
    complete_apps = ['db']
251 d484f6df Christos Stavrakakis
    symmetrical = True