Restage to pl/master
diff --git a/planetstack/syndicate_observer/deleters/volume_deleter.py b/planetstack/syndicate_observer/deleters/volume_deleter.py
new file mode 100644
index 0000000..5b7c49b
--- /dev/null
+++ b/planetstack/syndicate_observer/deleters/volume_deleter.py
@@ -0,0 +1,63 @@
+import os
+import sys
+import traceback
+
+if __name__ == "__main__":
+ # for testing
+ if os.getenv("OPENCLOUD_PYTHONPATH"):
+ sys.path.append( os.getenv("OPENCLOUD_PYTHONPATH") )
+ else:
+ print >> sys.stderr, "No OPENCLOUD_PYTHONPATH variable set. Assuming that OpenCloud is in PYTHONPATH"
+
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+
+
+import logging
+from logging import Logger
+logging.basicConfig( format='[%(levelname)s] [%(module)s:%(lineno)d] %(message)s' )
+logger = logging.getLogger()
+logger.setLevel( logging.INFO )
+
+# point to planetstack
+if __name__ != "__main__":
+ if os.getenv("OPENCLOUD_PYTHONPATH") is not None:
+ sys.path.insert(0, os.getenv("OPENCLOUD_PYTHONPATH"))
+ else:
+ logger.warning("No OPENCLOUD_PYTHONPATH set; assuming your PYTHONPATH works")
+
+
+from syndicate_storage.models import Volume
+from observer.deleter import Deleter
+
+from django.forms.models import model_to_dict
+
+
+# syndicatelib will be in steps/..
+parentdir = os.path.join(os.path.dirname(__file__),"..")
+sys.path.insert(0,parentdir)
+
+import syndicatelib
+
+class VolumeDeleter(Deleter):
+ model='Volume'
+
+ def __init__(self, **args):
+ Deleter.__init__(self, **args)
+
+ def call(self, pk, model_dict):
+ try:
+ volume_name = model_dict['name']
+ syndicatelib.ensure_volume_absent( volume_name )
+ return True
+ except Exception, e:
+ traceback.print_exc()
+ logger.exception("Failed to erase volume '%s'" % volume_name)
+ return False
+
+
+if __name__ == "__main__":
+ vd = VolumeDeleter()
+
+ all_volumes = Volume.objects.all()
+ for vol in all_volumes:
+ vd( vol.pk, model_to_dict( vol ) )