def timed_full_import(): years = [2009, 2010, 2011, 2012, 2013, 2014] months = [(1, 3), (4, 7), (8, 10), (9, 12)] for acc in ACCluster.objects.all(): nr = 0 for year in years: for month in months: begin = datetime(year=year, month=month[0], day=1) end = datetime(year=year, month=month[1], day=31) with ac_api_client(acc) as api: try: r = api.request('report-bulk-objects', {'filter-out-type': 'meeting', 'filter-gte-date-modified': begin.isoformat(), 'filter-lte-date-modified': end.isoformat()}, raise_error=False) if r: nr = 0 for row in r.et.xpath("//row"): Content.create(acc, api, row) nr += 1 except ACPException as e: logging.error('ACPException in content.timed_full_import') logging.error('Period %s %s-%s failed for cluster %s.' % (year, month[0], month[1], acc)) logging.error(e) logging.error(traceback.format_exc()) pass except Exception as e: logging.error('Exception in content.timed_full_import') logging.error('Period %s %s-%s failed for cluster %s.' % (year, month[0], month[1], acc)) logging.error(e) logging.error(traceback.format_exc()) pass logging.info("%s: Imported %d content objects." % (acc, nr))
def import_acc(acc, since=0): with ac_api_client(acc) as api: if since > 0: then = datetime.now()-timedelta(seconds=since) then = then.replace(microsecond=0) r = api.request('report-bulk-objects', {'filter-out-type': 'meeting', 'filter-gt-date-modified': then.isoformat()}) else: r = api.request('report-bulk-objects', {'filter-out-type': 'meeting'}) if r: nr = 0 for row in r.et.xpath("//row"): Content.create(acc, api, row) nr += 1 logging.info("%s: Imported %d content objects." % (acc, nr))