30 sys.path.append(
'/usr/lib/cc1/')
31 os.environ.setdefault(
"DJANGO_SETTINGS_MODULE",
"cm.settings")
33 from cm.models.storage
import Storage
34 from common.states
import storage_states
38 print "Cannot import CM database model. Probably unconfigured!"
43 conn = libvirt.open(
'qemu:///system')
47 for storage_name
in conn.listStoragePools():
48 lv_storages.append(conn.storagePoolLookupByName(storage_name))
51 cm_storages = [storage.name
for storage
in Storage.objects.filter(state=storage_states[
'ok'])]
54 for lv_storage
in lv_storages:
56 if lv_storage.name()
in cm_storages
and lv_storage.info()[0] != libvirt.VIR_STORAGE_POOL_RUNNING:
59 print "SUCCESS: Storage %s destroyed" % lv_storage.name()
61 print "ERROR: Cannot destroy storage %s: %s" % (lv_storage.name(), str(e))
65 print "SUCCESS: Storage %s undefined" % lv_storage.name()
67 print "ERROR: Cannot undefine storage %s"
68 elif lv_storage.name()
not in cm_storages
and lv_storage.name() !=
'images':
69 print "WARNING: Storage %s not exists in ClusterManager!" % lv_storage.name()
73 if lv_storage.info()[0] != libvirt.VIR_STORAGE_POOL_RUNNING:
77 print "WARNING: Cannot build storage"
81 print "ERROR: Cannot start storage pool %s: %s" % (lv_storage.name(), str(e))
84 for storage
in cm_storages:
85 s = Storage.objects.get(name=storage)
86 if storage
in conn.listStoragePools()
and conn.storagePoolLookupByName(storage).
info()[0] == libvirt.VIR_STORAGE_POOL_RUNNING:
87 print "INFO: Storage %s is running" % storage
91 conn.storagePoolDefineXML(s.libvirt_template(), 0)
93 print "WARNING: Storage already defined"
96 pool = conn.storagePoolLookupByName(s.name)
98 print "ERROR: Cannot find defined storage: %s" % str(e)
99 s.state = storage_states[
'locked']
107 print "ERROR: Cannot create storage pool: %s" % str(e)
108 s.state = storage_states[
'locked']
116 conn = libvirt.open(
'qemu:///system')
120 for storage_name
in conn.listStoragePools():
121 lv_storages.append(conn.storagePoolLookupByName(storage_name))
124 cm_storages = [storage.name
for storage
in Storage.objects.filter(state=storage_states[
'ok'])]
126 for lv_storage
in lv_storages:
128 if lv_storage.name()
in cm_storages:
131 print "SUCCESS: Storage %s destroyed" % lv_storage.name()
133 print "ERROR: Cannot destroy storage %s: %s" % (lv_storage.name(), str(e))
136 lv_storage.undefine()
137 print "SUCCESS: Storage %s undefined" % lv_storage.name()
139 print "ERROR: Cannot undefine storage %s"
140 elif lv_storage.name()
not in cm_storages
and lv_storage.name() !=
'images':
141 print "WARNING: Storage %s not exists in ClusterManager!" % lv_storage.name()