X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fobserver%2Fopenstacksyncstep.py;fp=planetstack%2Fobserver%2Fopenstacksyncstep.py;h=7bfe9f4eb7998008a4f14a606d568d85dcdcf3dd;hb=24836f18c96de50f93cacb2be40f311f66e4876a;hp=0000000000000000000000000000000000000000;hpb=f61e17af98a435ab1eac843ee865abff81f5fa4c;p=plstackapi.git diff --git a/planetstack/observer/openstacksyncstep.py b/planetstack/observer/openstacksyncstep.py new file mode 100644 index 0000000..7bfe9f4 --- /dev/null +++ b/planetstack/observer/openstacksyncstep.py @@ -0,0 +1,27 @@ +import os +import base64 +from syncstep import SyncStep + +class OpenStackSyncStep: + """ PlanetStack Sync step for copying data to OpenStack + """ + + def __init__(self, **args): + super(SyncStep,self).__init__(**args) + return + + def call(self): + pending = self.fetch_pending() + failed = [] + for o in pending: + if (not self.depends_on(o, failed)): + try: + self.sync_record(o) + o.enacted = datetime.now() # Is this the same timezone? XXX + o.save(update_fields=['enacted']) + except: + failed.append(o) + + + def __call__(self): + return self.call()