Revision 60bf38e1

b/README
31 31
    to 
32 32
        ctype = self.request.META.get('CONTENT_TYPE', type_formencoded).split(";")[0]
33 33

  
34
3)On Ubuntu 10.04 (tested by mgogoulos) you'll have to install zmq-static with:
34
3) On Ubuntu 10.04 (tested by mgogoulos) you'll have to install zmq-static with:
35 35
        sudo aptitude install uuid-dev 
36 36
        ./bin/pip install pyzmq-static
37 37

  
38
4) Database initialization: [the following commands assume the DB is at "./database.sqlite"]
39
	recreate db, load db/fixtures/initial_data.json:
40

  
41
	$ rm database.sqlite
42
	$ bin/python manage.py syncdb
43

  
44
	load fixtures, as necessary [take a look under db/fixtures/]:
45
	$ bin/python manage.py loaddata db/fixtures/flavors.json
46
	$ bin/python manage.py loaddata db/fixtures/vms.json
47
	...
b/db/fixtures/disks.json
1
[
2
    {
3
        "model": "db.Disk",
4
        "pk": 1,
5
        "fields": {
6
            "name": "My_Music",
7
            "created": "2011-02-10 00:00:00",
8
            "updated": "2011-02-10 00:00:00",
9
            "size" : "20",
10
            "vm" : "1001",
11
            "owner" : "1"
12
        }
13
    }, 
14
    {
15
        "model": "db.Disk",
16
        "pk": 2,
17
        "fields": {
18
            "name": "My_Videos",
19
            "created": "2011-02-10 00:00:00",
20
            "updated": "2011-02-10 00:00:00",
21
            "size" : "300",
22
            "vm" : "1001",
23
            "owner" : "1"
24
        }
25
    } 
26
] 
b/db/fixtures/flavors.json
1
[
2
    {
3
        "model": "db.Flavor",
4
        "pk": 1,
5
        "fields": {
6
            "cpu": 1,
7
            "ram": 1024,
8
            "disk": 20 
9
        }
10
    },
11

  
12
    {
13
        "model": "db.Flavor",
14
        "pk": 2,
15
        "fields": {
16
            "cpu": 1,
17
            "ram": 1024,
18
            "disk": 40 
19
        }
20
    },
21

  
22
    {
23
        "model": "db.Flavor",
24
        "pk": 3,
25
        "fields": {
26
            "cpu": 1,
27
            "ram": 1024,
28
            "disk": 80 
29
        }
30
    },
31

  
32
    {
33
        "model": "db.Flavor",
34
        "pk": 4,
35
        "fields": {
36
            "cpu": 1,
37
            "ram": 2048,
38
            "disk": 20 
39
        }
40
    },
41

  
42
    {
43
        "model": "db.Flavor",
44
        "pk": 5,
45
        "fields": {
46
            "cpu": 1,
47
            "ram": 2048,
48
            "disk": 40 
49
        }
50
    },
51

  
52
    {
53
        "model": "db.Flavor",
54
        "pk": 6,
55
        "fields": {
56
            "cpu": 1,
57
            "ram": 2048,
58
            "disk": 80 
59
        }
60
    },
61

  
62
    {
63
        "model": "db.Flavor",
64
        "pk": 7,
65
        "fields": {
66
            "cpu": 1,
67
            "ram": 4096,
68
            "disk": 20 
69
        }
70
    },
71

  
72
    {
73
        "model": "db.Flavor",
74
        "pk": 8,
75
        "fields": {
76
            "cpu": 1,
77
            "ram": 4096,
78
            "disk": 40 
79
        }
80
    },
81

  
82
    {
83
        "model": "db.Flavor",
84
        "pk": 9,
85
        "fields": {
86
            "cpu": 1,
87
            "ram": 4096,
88
            "disk": 80 
89
        }
90
    },
91

  
92
    {
93
        "model": "db.Flavor",
94
        "pk": 10,
95
        "fields": {
96
            "cpu": 2,
97
            "ram": 1024,
98
            "disk": 20 
99
        }
100
    },
101

  
102
    {
103
        "model": "db.Flavor",
104
        "pk": 11,
105
        "fields": {
106
            "cpu": 2,
107
            "ram": 1024,
108
            "disk": 40 
109
        }
110
    },
111

  
112
    {
113
        "model": "db.Flavor",
114
        "pk": 12,
115
        "fields": {
116
            "cpu": 2,
117
            "ram": 1024,
118
            "disk": 80 
119
        }
120
    },
121

  
122
    {
123
        "model": "db.Flavor",
124
        "pk": 13,
125
        "fields": {
126
            "cpu": 2,
127
            "ram": 2048,
128
            "disk": 20 
129
        }
130
    },
131

  
132
    {
133
        "model": "db.Flavor",
134
        "pk": 14,
135
        "fields": {
136
            "cpu": 2,
137
            "ram": 2048,
138
            "disk": 40 
139
        }
140
    },
141

  
142
    {
143
        "model": "db.Flavor",
144
        "pk": 15,
145
        "fields": {
146
            "cpu": 2,
147
            "ram": 2048,
148
            "disk": 80 
149
        }
150
    },
151

  
152
    {
153
        "model": "db.Flavor",
154
        "pk": 16,
155
        "fields": {
156
            "cpu": 2,
157
            "ram": 4096,
158
            "disk": 20 
159
        }
160
    },
161

  
162
    {
163
        "model": "db.Flavor",
164
        "pk": 17,
165
        "fields": {
166
            "cpu": 2,
167
            "ram": 4096,
168
            "disk": 40 
169
        }
170
    },
171

  
172
    {
173
        "model": "db.Flavor",
174
        "pk": 18,
175
        "fields": {
176
            "cpu": 2,
177
            "ram": 4096,
178
            "disk": 80 
179
        }
180
    },
181

  
182
    {
183
        "model": "db.Flavor",
184
        "pk": 19,
185
        "fields": {
186
            "cpu": 4,
187
            "ram": 1024,
188
            "disk": 20 
189
        }
190
    },
191

  
192
    {
193
        "model": "db.Flavor",
194
        "pk": 20,
195
        "fields": {
196
            "cpu": 4,
197
            "ram": 1024,
198
            "disk": 40 
199
        }
200
    },
201

  
202
    {
203
        "model": "db.Flavor",
204
        "pk": 21,
205
        "fields": {
206
            "cpu": 4,
207
            "ram": 1024,
208
            "disk": 80 
209
        }
210
    },
211

  
212
    {
213
        "model": "db.Flavor",
214
        "pk": 22,
215
        "fields": {
216
            "cpu": 4,
217
            "ram": 2048,
218
            "disk": 20 
219
        }
220
    },
221

  
222
    {
223
        "model": "db.Flavor",
224
        "pk": 23,
225
        "fields": {
226
            "cpu": 4,
227
            "ram": 2048,
228
            "disk": 40 
229
        }
230
    },
231

  
232
    {
233
        "model": "db.Flavor",
234
        "pk": 24,
235
        "fields": {
236
            "cpu": 4,
237
            "ram": 2048,
238
            "disk": 80 
239
        }
240
    },
241

  
242
    {
243
        "model": "db.Flavor",
244
        "pk": 25,
245
        "fields": {
246
            "cpu": 4,
247
            "ram": 4096,
248
            "disk": 20 
249
        }
250
    },
251

  
252
    {
253
        "model": "db.Flavor",
254
        "pk": 26,
255
        "fields": {
256
            "cpu": 4,
257
            "ram": 4096,
258
            "disk": 40 
259
        }
260
    },
261

  
262
    {
263
        "model": "db.Flavor",
264
        "pk": 27,
265
        "fields": {
266
            "cpu": 4,
267
            "ram": 4096,
268
            "disk": 80 
269
        }
270
    }
271
] 
b/db/fixtures/images.json
1
[
2
    {
3
        "model": "db.Image",
4
        "pk": 1,
5
        "fields": {
6
            "name": "Debian Squeeze",
7
            "created": "2011-02-06 00:00:00",
8
            "updated": "2011-02-06 00:00:00",
9
            "state": "ACTIVE",
10
            "description": "Full Debian Squeeze Installation"
11
        }
12
    },
13
    {
14
        "model": "db.Image",
15
        "pk": 2,
16
        "fields": {
17
            "name": "Slackware 13.1",
18
            "created": "2011-02-10 00:00:00",
19
            "updated": "2011-02-10 00:00:00",
20
            "state": "ACTIVE",
21
            "description": "Full Slackware 13.1 Installation",
22
            "owner" : 1
23
        }
24
    }
25
] 
b/db/fixtures/initial_data.json
11 11
            "user" : 1,
12 12
            "violations" : 0
13 13
   	    }
14
    },
15
    {
16
        "model": "db.Flavor",
17
        "pk": 1,
18
        "fields": {
19
            "cpu": 1,
20
            "ram": 1024,
21
            "disk": 10
22
        }
23
    },
24
    {
25
        "model": "db.Flavor",
26
        "pk": 2,
27
        "fields": {
28
            "cpu": 1,
29
            "ram": 1024,
30
            "disk": 10
31
        }
32
    },
33
    {
34
        "model": "db.VirtualMachine",
35
        "pk": 1001,
36
        "fields": {
37
            "name": "snf-1001",
38
            "created": "2011-02-06 00:00:00",
39
            "updated": "2011-02-06 00:00:00",
40
            "charged": "2011-02-06 00:00:00",
41
            "sourceimage": 1,
42
            "hostid": "HAL-9000",
43
            "description": "database server",
44
            "ipfour": "192.168.2.1",
45
            "ipsix": "::1",
46
            "flavor": 1,
47
            "_operstate": "STOPPED"
48
        }
49
    },
50
    {
51
        "model": "db.VirtualMachine",
52
        "pk": 1002,
53
        "fields": {
54
            "name": "snf-1002",
55
            "created": "2011-02-10 00:00:00",
56
            "updated": "2011-02-10 00:00:00",
57
            "charged": "2011-02-10 00:00:00",
58
            "sourceimage": 1,
59
            "hostid": "HAL-9000",
60
            "description": "mail server",
61
            "ipfour": "192.168.2.2",
62
            "ipsix": "::2",
63
            "flavor": 1,
64
            "_operstate": "BUILD"
65
        }
66
    },
67
    {
68
        "model": "db.VirtualMachine",
69
        "pk": 1003,
70
        "fields": {
71
            "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,
76
            "hostid": "HAL-9000",
77
            "description": "my server",
78
            "ipfour": "192.168.2.3",
79
            "ipsix": "::3",
80
            "flavor": 1,
81
            "_operstate": "STARTED"
82
        }
83
    },
84
    {
85
        "model": "db.VirtualMachine",
86
        "pk": 1004,
87
        "fields": {
88
            "name": "snf-1004",
89
            "created": "2011-02-10 00:00:00",
90
            "updated": "2011-02-10 00:00:00",
91
            "charged": "2011-02-10 00:00:00",
92
            "sourceimage": 1,
93
            "hostid": "HAL-9000",
94
            "description": "my 2nd server",
95
            "ipfour": "192.168.2.4",
96
            "ipsix": "::4",
97
            "flavor": 1,
98
            "_operstate": "STARTED"
99
        }
100
    },
101
    {
102
        "model": "db.Image",
103
        "pk": 1,
104
        "fields": {
105
            "name": "Debian Squeeze",
106
            "created": "2011-02-06 00:00:00",
107
            "updated": "2011-02-06 00:00:00",
108
            "state": "ACTIVE",
109
            "description": "Full Debian Squeeze Installation"
110
        }
111
    },
112
    {
113
        "model": "db.Image",
114
        "pk": 2,
115
        "fields": {
116
            "name": "Slackware 13.1",
117
            "created": "2011-02-10 00:00:00",
118
            "updated": "2011-02-10 00:00:00",
119
            "state": "ACTIVE",
120
            "description": "Full Slackware 13.1 Installation",
121
            "owner" : 1
122
        }
123
    },   
124
    {
125
        "model": "db.Disk",
126
        "pk": 1,
127
        "fields": {
128
            "name": "My_Music",
129
            "created": "2011-02-10 00:00:00",
130
            "updated": "2011-02-10 00:00:00",
131
            "size" : "20",
132
            "vm" : "1001",
133
            "owner" : "1"
134
        }
135
    }, 
136
    {
137
        "model": "db.Disk",
138
        "pk": 2,
139
        "fields": {
140
            "name": "My_Videos",
141
            "created": "2011-02-10 00:00:00",
142
            "updated": "2011-02-10 00:00:00",
143
            "size" : "300",
144
            "vm" : "1001",
145
            "owner" : "1"
146
        }
147
    } 
14
    }
148 15
] 
b/db/fixtures/vms.json
1
[
2
    {
3
        "model": "db.VirtualMachine",
4
        "pk": 1001,
5
        "fields": {
6
            "name": "snf-1001",
7
            "created": "2011-02-06 00:00:00",
8
            "updated": "2011-02-06 00:00:00",
9
            "charged": "2011-02-06 00:00:00",
10
            "sourceimage": 1,
11
            "hostid": "HAL-9000",
12
            "description": "database server",
13
            "ipfour": "192.168.2.1",
14
            "ipsix": "::1",
15
            "flavor": 1,
16
            "_operstate": "STOPPED"
17
        }
18
    },
19
    {
20
        "model": "db.VirtualMachine",
21
        "pk": 1002,
22
        "fields": {
23
            "name": "snf-1002",
24
            "created": "2011-02-10 00:00:00",
25
            "updated": "2011-02-10 00:00:00",
26
            "charged": "2011-02-10 00:00:00",
27
            "sourceimage": 1,
28
            "hostid": "HAL-9000",
29
            "description": "mail server",
30
            "ipfour": "192.168.2.2",
31
            "ipsix": "::2",
32
            "flavor": 1,
33
            "_operstate": "BUILD"
34
        }
35
    },
36
    {
37
        "model": "db.VirtualMachine",
38
        "pk": 1003,
39
        "fields": {
40
            "name": "snf-1003",
41
            "created": "2011-02-10 00:00:00",
42
            "updated": "2011-02-10 00:00:00",
43
            "charged": "2011-02-10 00:00:00",
44
            "sourceimage": 1,
45
            "hostid": "HAL-9000",
46
            "description": "my server",
47
            "ipfour": "192.168.2.3",
48
            "ipsix": "::3",
49
            "flavor": 1,
50
            "_operstate": "STARTED"
51
        }
52
    },
53
    {
54
        "model": "db.VirtualMachine",
55
        "pk": 1004,
56
        "fields": {
57
            "name": "snf-1004",
58
            "created": "2011-02-10 00:00:00",
59
            "updated": "2011-02-10 00:00:00",
60
            "charged": "2011-02-10 00:00:00",
61
            "sourceimage": 1,
62
            "hostid": "HAL-9000",
63
            "description": "my 2nd server",
64
            "ipfour": "192.168.2.4",
65
            "ipsix": "::4",
66
            "flavor": 1,
67
            "_operstate": "STARTED"
68
        }
69
    }
70
]
b/db/models.py
134 134
    
135 135
    class Meta:
136 136
        verbose_name = u'Virtual machine flavor'
137
        unique_together = ("cpu","ram","disk")
137 138
            
138 139
    def _get_name(self):
139 140
        """Returns flavor name (generated)"""

Also available in: Unified diff