Revision b4808d2b

b/db/fixtures/db_test_data.json
1 1
[
2 2
    {
3 3
        "model": "db.SynnefoUser",
4
        "pk": 1,
4
        "pk": 30000,
5 5
        "fields": {
6 6
            "name": "admin user",
7
            "created": "2011-02-06 00:00:00",
8
            "updated": "2011-02-06 00:00:00",
9
            "credit": 1,
10
            "monthly_rate": 1,
7
            "credit": 0,
8
            "created": "2011-02-06",
9
            "monthly_rate": 10,
11 10
            "user" : 1,
12 11
            "violations" : 0
13 12
   	    }
14 13
    },
15 14
    {
15
        "model" : "db.Limit",
16
        "pk" : 30000,
17
        "fields" : {
18
            "name" : "QUOTA_CREDIT",
19
            "user" : 1,
20
            "value" : 100
21
        }
22
    },
23
    {
16 24
        "model": "db.Flavor",
17
        "pk": 1,
25
        "pk": 30000,
18 26
        "fields": {
19 27
            "cpu": 1,
20 28
            "ram": 1024,
......
23 31
    },
24 32
    {
25 33
        "model": "db.Flavor",
26
        "pk": 2,
34
        "pk": 30001,
27 35
        "fields": {
28 36
            "cpu": 1,
29 37
            "ram": 1024,
30
            "disk": 10
38
            "disk": 20
39
        }
40
    },
41
    {
42
        "model" : "db.FlavorCostHistory",
43
        "pk" : 30000,
44
        "fields" : {
45
            "cost_active" : 10,
46
            "cost_inactive" : 5,
47
            "effective_from" : "2011-01-01",
48
            "flavor" : 30000
49
        }
50
    },
51
    {
52
        "model" : "db.FlavorCostHistory",
53
        "pk" : 30001,
54
        "fields" : {
55
            "cost_active" : 2,
56
            "cost_inactive" : 1,
57
            "effective_from" : "2010-01-01",
58
            "flavor" : 30000
31 59
        }
32 60
    },
33 61
    {
34 62
        "model": "db.VirtualMachine",
35
        "pk": 1001,
63
        "pk": 30000,
36 64
        "fields": {
37 65
            "name": "snf-1001",
38 66
            "created": "2011-02-06 00:00:00",
39
            "updated": "2011-02-06 00:00:00",
40 67
            "charged": "2011-02-06 00:00:00",
41
            "sourceimage": 1,
68
            "sourceimage": 30000,
42 69
            "hostid": "HAL-9000",
43 70
            "description": "database server",
44 71
            "ipfour": "192.168.2.1",
45 72
            "ipsix": "::1",
46
            "flavor": 1,
73
            "flavor": 30000,
47 74
            "_operstate": "STOPPED"
48 75
        }
49 76
    },
50 77
    {
51 78
        "model": "db.VirtualMachine",
52
        "pk": 1002,
79
        "pk": 30001,
53 80
        "fields": {
54 81
            "name": "snf-1002",
55 82
            "created": "2011-02-10 00:00:00",
56
            "updated": "2011-02-10 00:00:00",
57 83
            "charged": "2011-02-10 00:00:00",
58
            "sourceimage": 1,
84
            "sourceimage": 30000,
59 85
            "hostid": "HAL-9000",
60 86
            "description": "mail server",
61 87
            "ipfour": "192.168.2.2",
62 88
            "ipsix": "::2",
63
            "flavor": 1,
89
            "flavor": 30000,
64 90
            "_operstate": "BUILD"
65 91
        }
66 92
    },
67 93
    {
68 94
        "model": "db.VirtualMachine",
69
        "pk": 1003,
95
        "pk": 30002,
70 96
        "fields": {
71 97
            "name": "snf-1003",
72
            "created": "2011-02-10 00:00:00",
73
            "updated": "2011-02-10 00:00:00",
74
            "charged": "2011-02-10 00:00:00",
75
            "sourceimage": 1,
98
            "created": "2009-02-10 00:00:00",
99
            "charged": "2010-01-01 00:00:00",
100
            "sourceimage": 30000,
76 101
            "hostid": "HAL-9000",
77 102
            "description": "my server",
78 103
            "ipfour": "192.168.2.3",
79 104
            "ipsix": "::3",
80
            "flavor": 1,
105
            "flavor": 30000,
81 106
            "_operstate": "STARTED"
82 107
        }
83 108
    },
84 109
    {
85 110
        "model": "db.VirtualMachine",
86
        "pk": 1004,
111
        "pk": 30003,
87 112
        "fields": {
88 113
            "name": "snf-1004",
89 114
            "created": "2011-02-10 00:00:00",
90
            "updated": "2011-02-10 00:00:00",
91 115
            "charged": "2011-02-10 00:00:00",
92
            "sourceimage": 1,
116
            "sourceimage": 30000,
93 117
            "hostid": "HAL-9000",
94 118
            "description": "my 2nd server",
95 119
            "ipfour": "192.168.2.4",
96 120
            "ipsix": "::4",
97
            "flavor": 1,
121
            "flavor": 30000,
98 122
            "_operstate": "STARTED"
99 123
        }
100 124
    },
101 125
    {
126
        "model" : "db.AccountingLog",
127
        "pk" : 30000,
128
        "fields" : {
129
            "vm" : 30000,
130
            "date" : "2010-01-01",
131
            "state" : "STARTED"
132
        }
133
    },
134
    {
135
        "model" : "db.AccountingLog",
136
        "pk" : 30001,
137
        "fields" : {
138
            "vm" : 30000,
139
            "date" : "2011-02-01",
140
            "state" : "STARTED"
141
        }
142
    },
143
    {
144
        "model" : "db.AccountingLog",
145
        "pk" : 30002,
146
        "fields" : {
147
            "vm" : 30002,
148
            "date" : "2010-01-01",
149
            "state" : "STARTED"
150
        }
151
    },
152
    {
153
        "model" : "db.AccountingLog",
154
        "pk" : 30003,
155
        "fields" : {
156
            "vm" : 30002,
157
            "date" : "2010-03-01",
158
            "state" : "STOPPED"
159
        }
160
    },
161
    {
162
        "model" : "db.AccountingLog",
163
        "pk" : 30004,
164
        "fields" : {
165
            "vm" : 30002,
166
            "date" : "2011-01-01",
167
            "state" : "STARTED"
168
        }
169
    },
170
    {
102 171
        "model": "db.Image",
103
        "pk": 1,
172
        "pk": 30000,
104 173
        "fields": {
105 174
            "name": "Debian Squeeze",
106
            "created": "2011-02-06 00:00:00",
107 175
            "updated": "2011-02-06 00:00:00",
176
            "created": "2011-02-06 00:00:00",
108 177
            "state": "ACTIVE",
109
            "description": "Full Debian Squeeze Installation"
178
            "description": "Full Debian Squeeze Installation",
179
            "owner" : 30000
110 180
        }
111 181
    },
112 182
    {
113 183
        "model": "db.Image",
114
        "pk": 2,
184
        "pk": 30001,
115 185
        "fields": {
116 186
            "name": "Slackware 13.1",
117
            "created": "2011-02-10 00:00:00",
118 187
            "updated": "2011-02-10 00:00:00",
188
            "created": "2011-02-10 00:00:00",
119 189
            "state": "ACTIVE",
120 190
            "description": "Full Slackware 13.1 Installation",
121
            "owner" : 1
191
            "owner" : 30000
122 192
        }
123 193
    },   
124 194
    {
125 195
        "model": "db.Disk",
126
        "pk": 1,
196
        "pk": 30000,
127 197
        "fields": {
128 198
            "name": "My_Music",
129 199
            "created": "2011-02-10 00:00:00",
130
            "updated": "2011-02-10 00:00:00",
131
            "size" : "20",
132
            "vm" : "1001",
133
            "owner" : "1"
200
            "size" : 20,
201
            "vm" : 30000,
202
            "owner" : 30000
134 203
        }
135 204
    }, 
136 205
    {
137 206
        "model": "db.Disk",
138
        "pk": 2,
207
        "pk": 30001,
139 208
        "fields": {
140 209
            "name": "My_Videos",
141 210
            "created": "2011-02-10 00:00:00",
142
            "updated": "2011-02-10 00:00:00",
143
            "size" : "300",
144
            "vm" : "1001",
145
            "owner" : "1"
211
            "size" : 300,
212
            "vm" : 30000,
213
            "owner" : 30000
146 214
        }
147 215
    } 
148
] 
216
]
b/db/models.py
63 63
            return limit_objs[0].value
64 64
        
65 65
        return 0
66
        
66

  
67 67

  
68 68
class Image(models.Model):
69 69
    # This is WIP, FIXME
70 70
    IMAGE_STATES = (
71
                ('ACTIVE', 'Active'),
72
                ('SAVING', 'Saving'),
73
                ('DELETED', 'Deleted')
71
        ('ACTIVE', 'Active'),
72
        ('SAVING', 'Saving'),
73
        ('DELETED', 'Deleted')
74 74
    )
75 75

  
76 76
    name = models.CharField(max_length=255, help_text=_('description'))
......
79 79
    owner = models.ForeignKey(SynnefoUser,blank=True, null=True)
80 80
    created = models.DateTimeField('Time of creation', auto_now_add=True)
81 81
    updated = models.DateTimeField('Time of last update', auto_now=True)
82
    sourcevm = models.ForeignKey("VirtualMachine", null=True)
82 83

  
83 84
    class Meta:
84 85
        verbose_name = u'Image'
......
128 129

  
129 130

  
130 131
class Flavor(models.Model):
131
    cpu = models.IntegerField(default=0)
132
    ram = models.IntegerField(default=0)
133
    disk = models.IntegerField(default=0)
132
    cpu = models.IntegerField(default=0, unique=False)
133
    ram = models.IntegerField(default=0, unique=False)
134
    disk = models.IntegerField(default=0, unique=False)
134 135
    
135 136
    class Meta:
136 137
        verbose_name = u'Virtual machine flavor'
......
267 268
    charged = models.DateTimeField('Time of last charge', default=datetime.datetime.now())
268 269
    # Use string reference to avoid circular ForeignKey def.
269 270
    # FIXME: "sourceimage" works, "image" causes validation errors. See "related_name" in the Django docs.
270
    sourceimage = models.ForeignKey(Image, null=False) 
271
    sourceimage = models.ForeignKey("Image", null=False) 
271 272
    hostid = models.CharField(max_length=100)
272 273
    description = models.TextField(help_text=_('description'))
273 274
    ipfour = models.IPAddressField()

Also available in: Unified diff