0b04f2d53447536a3517ad08eecc79f1eaaf572c
[invirt/packages/invirt-database.git] / client / usr / bin / sipb-xen-lvcreate
1 #!/usr/bin/env python
2
3 from sipb_xen_database import *
4 import sys
5 import os.path
6 from subprocess import call
7
8 connect('postgres://sipb-xen@sipb-xen-dev.mit.edu/sipb_xen')
9
10 def check(b):
11     if not b:
12         exit(1)
13
14 vg = "xenvg"
15 for d in Disk.select():
16     check(re.match('^[A-Za-z0-9]+$', d.guest_device_name))
17     machine = Machine.get(d.machine_id)
18     check(re.match('^[A-Za-z0-9][A-Za-z0-9._-]*$', machine.name))
19     lvname = machine.name + "_" + d.guest_device_name
20     if not os.path.exists("/dev/%s/%s" % (vg, lvname)):
21         # LV doesn't exist
22         print >>sys.stderr, "Creating LV %s..." % (lvname,)
23         rv = call(["lvcreate", "-L", str(d.size) + "M", "-n", lvname, vg])
24         if rv != 0:
25             print >>sys.stderr, "Error creating LV %s\n" %(lvname,)