Revision 19da4325

b/api/servers.py
120 120
    d = dict(id=vm.id, name=vm.name)
121 121
    if detail:
122 122
        d['status'] = get_rsapi_state(vm)
123
        d['progress'] = 100 if get_rsapi_state(vm) == 'ACTIVE' else 0
123
        d['progress'] = 100 if get_rsapi_state(vm) == 'ACTIVE' \
124
                        else vm.buildpercentage
124 125
        d['hostId'] = vm.hostid
125 126
        d['updated'] = util.isoformat(vm.updated)
126 127
        d['created'] = util.isoformat(vm.created)
b/db/migrations/0018_auto__add_field_virtualmachine_buildpercentage.py
9 9
    def forwards(self, orm):
10 10
        
11 11
        # Adding field 'VirtualMachine.buildpercentage'
12
        db.add_column('db_virtualmachine', 'buildpercentage', self.gf('django.db.models.fields.IntegerField')(null=True), keep_default=False)
12
        db.add_column('db_virtualmachine', 'buildpercentage', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
13 13

  
14 14

  
15 15
    def backwards(self, orm):
......
60 60
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
61 61
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
62 62
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.SynnefoUser']", 'null': 'True', 'blank': 'True'}),
63
            'public': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
63
            'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
64 64
            'sourcevm': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.VirtualMachine']", 'null': 'True'}),
65 65
            'state': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
66 66
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
......
74 74
        },
75 75
        'db.invitations': {
76 76
            'Meta': {'object_name': 'Invitations'},
77
            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
77
            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
78 78
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
79 79
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
80 80
            'level': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
......
97 97
            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['db.VirtualMachine']", 'through': "orm['db.NetworkInterface']", 'symmetrical': 'False'}),
98 98
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
99 99
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.SynnefoUser']", 'null': 'True'}),
100
            'public': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
100
            'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
101 101
            'state': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
102 102
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
103 103
        },
......
116 116
        },
117 117
        'db.networklink': {
118 118
            'Meta': {'object_name': 'NetworkLink'},
119
            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
119
            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
120 120
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
121 121
            'index': ('django.db.models.fields.IntegerField', [], {}),
122 122
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
......
146 146
            'backendjobstatus': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
147 147
            'backendlogmsg': ('django.db.models.fields.TextField', [], {'null': 'True'}),
148 148
            'backendopcode': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
149
            'buildpercentage': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
150
            'charged': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 7, 21, 14, 39, 5, 753749)'}),
149
            'buildpercentage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
150
            'charged': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 7, 25, 11, 3, 17, 877945)'}),
151 151
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
152
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
152
            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
153 153
            'flavor': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.Flavor']"}),
154 154
            'hostid': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
155 155
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
......
157 157
            'operstate': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
158 158
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.SynnefoUser']"}),
159 159
            'sourceimage': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['db.Image']"}),
160
            'suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
160
            'suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
161 161
            'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
162 162
        },
163 163
        'db.virtualmachinegroup': {
164
            'Meta': {'object_name': 'VirtualMachineGroup'},
164
            'Meta': {'ordering': "['name']", 'object_name': 'VirtualMachineGroup'},
165 165
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
166 166
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
167 167
            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['db.VirtualMachine']", 'symmetrical': 'False'}),
b/db/models.py
307 307
    backendjobstatus = models.CharField(choices=BACKEND_STATUSES, max_length=30,
308 308
                                        null=True)
309 309
    backendlogmsg = models.TextField(null=True)
310

  
311
    buildpercentage = models.IntegerField(null=True)
310
    buildpercentage = models.IntegerField(default=0)
312 311

  
313 312
    # Error classes
314 313
    class InvalidBackendIdError(Exception):

Also available in: Unified diff