Sync refactored into abstract steps
[plstackapi.git] / planetstack / observer / openstacksyncstep.py
1 import os
2 import base64
3 from syncstep import SyncStep
4
5 class OpenStackSyncStep:
6         """ PlanetStack Sync step for copying data to OpenStack 
7         """ 
8         
9         def __init__(self, **args):
10                 super(SyncStep,self).__init__(**args)
11                 return
12
13         def call(self):
14                 pending = self.fetch_pending()
15                 failed = []
16                 for o in pending:
17                         if (not self.depends_on(o, failed)):
18                                 try:
19                                         self.sync_record(o)
20                                         o.enacted = datetime.now() # Is this the same timezone? XXX
21                                         o.save(update_fields=['enacted'])
22                                 except:
23                                         failed.append(o)
24
25
26         def __call__(self):
27                 return self.call()