Example #1
0
    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
Example #2
0
 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