def get_cron_triggers(self, start_datetime_obj, granularity=['hours', 'minutes', 'seconds'][ 1], lookahead=24 * 60, lookback=60, tostring=True): _error = None if isinstance(start_datetime_obj, type("")): start_datetime_obj = datetime.strptime(start_datetime_obj, "%Y-%m-%dT%H:%M:%S") cron_dict_str = self.get('cron_dict') if not cron_dict_str: cron_dict = {} else: try: cron_dict = json.loads(cron_dict_str) except: msg = "error decoding string to json for node '%s' (%s): %s" % (self.name, self.id, cron_dict_str) logging.getLogger('backend').error(msg) _error = msg cron_dict = {} if not cron_dict: return _error, [] try: g = su.iter_date(start_datetime_obj, cron_dict, granularity, lookahead, lookback) if tostring: res = [x.isoformat() for x in g] else: res = [x for x in g] except: msg = "error building datetime generator for node '%s' (%s): %s" % (self.name, self.id, cron_dict_str) logging.getLogger('backend').error(msg) _error = msg return _error, [] return _error, res
def get_iter_date(self, start_datetime_obj, granularity, lookahead=24 * 60, lookback=60): g = su.iter_date(start_datetime_obj, json.loads(self.get('cron_dict')), granularity, lookahead, lookback) return g