Revision be7b8d37 db/models.py

b/db/models.py
2 2

  
3 3
from django.db import models
4 4
from django.contrib.auth.models import User
5
import synnefo.vocabs
5
import vocabs
6 6

  
7 7
class Limit(models.Model):
8 8
    description = models.CharField(max_length=45)
9

  
10
	class Meta:
11
		verbose_name = u'Available limits for users'
12

  
9
    
10
    class Meta:
11
        verbose_name = u'Available limits for users'
12
    
13 13
    def __unicode__(self):
14 14
        return self.description
15 15

  
......
20 20
    quota = models.IntegerField()
21 21
    created = models.DateField()
22 22
    monthly_rate = models.IntegerField()
23
    user = models.ForeignKey(User, unique=True)    
23
    user = models.ForeignKey(User, unique=True)
24 24
    limits = models.ManyToManyField(Limit, through='UserLimit')
25

  
26
	class Meta:
27
		verbose_name = u'Ocean User'
28

  
25
    
26
    class Meta:
27
        verbose_name = u'Ocean User'
28
    
29 29
    def __unicode__(self):
30 30
        return self.name
31 31

  
......
34 34
    user = models.ForeignKey(OceanUser)
35 35
    limit = models.ForeignKey(Limit)
36 36
    value = models.IntegerField()
37

  
37
    
38 38
    class Meta:
39 39
        unique_together = ('user', 'limit')
40
		verbose_name = u'Enforced limits for each user'
41

  
40
        verbose_name = u'Enforced limits for each user'
41
    
42 42
    def __unicode__(self):
43 43
        return u'Limit %s for user %s: %d' % (self.limit, self.user, self.value)
44 44

  
45 45

  
46 46
class Flavor(models.Model):
47
    name = property(_get_name)
48
	cpu = models.IntegerField(default=0)
49
	ram = models.IntegerField(default=0)
50
	disk = models.IntegerField(default=0)
47
    cpu = models.IntegerField(default=0)
48
    ram = models.IntegerField(default=0)
49
    disk = models.IntegerField(default=0)
51 50
    cost_active = models.PositiveIntegerField()
52 51
    cost_inactive = models.PositiveIntegerField()
52
    
53
    class Meta:
54
        verbose_name = u'Virtual Machine flavors'
55
    
56
    def _get_name(self):
57
        return u'c%dr%dd%d' % ( self.cpu, self.ram, self.disk )
53 58

  
54
	class Meta:
55
		verbose_name = u'Virtual Machine flavors'
56

  
57
	def _get_name(self):
58
		return u'c%dr%dd%d' % ( cpu, ram, disk )
59
    name = property(_get_name)
59 60

  
60 61
    def __unicode__(self):
61 62
        return self.name
......
64 65
class VirtualMachine(models.Model):
65 66
    name = models.CharField(max_length=255)
66 67
    created = models.DateTimeField()
67
    state = models.CharField(choices=vocabs.STATES, default=0)
68
    started = models.DateTimeField()
68
    state = models.CharField(choices=vocabs.STATES, max_length=30)
69
    charged = models.DateTimeField()
69 70
    imageid = models.IntegerField()
70 71
    hostid = models.CharField(max_length=100)
71 72
    server_label = models.CharField(max_length=100)
72 73
    image_version = models.CharField(max_length=100)
73
	ipfour = models.IPAddressField()
74
	ipsix = models.CharField(max_length=100)
74
    ipfour = models.IPAddressField()
75
    ipsix = models.CharField(max_length=100)
75 76
    owner = models.ForeignKey(OceanUser)
76 77
    flavor = models.ForeignKey(Flavor)
77

  
78
    
78 79
    class Meta:
79 80
        verbose_name = u'Virtual machine instances'
80 81
        get_latest_by = 'created'
81

  
82
    
82 83
    def __unicode__(self):
83 84
        return self.name
84 85

  
85 86

  
87
class VirtualMachineMetadata(models.Model):
88
    meta_key = models.CharField(max_length=50)
89
    meta_value = models.CharField(max_length=500)
90
    vm = models.ForeignKey(VirtualMachine)
91
    
92
    class Meta:
93
        verbose_name = u'Metadata for virtual machine instances'
94
    
95
    def __unicode__(self):
96
        return u'%s, %s for %s' % ( self.key, self.value, self.vm.name )
97

  
98

  
86 99
class AccountingLog(models.Model):
87 100
    vm = models.ForeignKey(VirtualMachine)
88 101
    date = models.DateTimeField()
89
	state = models.CharField(choices=vocabs.STATES, default=0)
90

  
102
    state = models.CharField(choices=vocabs.STATES, max_length=30)
103
    
91 104
    class Meta:
92 105
        verbose_name = u'Charging log'
106

  
107
	def __unicode__(self):
108
		return u'%s %s %s' % ( self.vm.name, self.date, self.state )

Also available in: Unified diff