def test_write_marker_to_db_marker_exists(self): executions_queue = self.get_queue() dumper = Dumper(queue=executions_queue, export_dir='/tmp', batch_size=5, max_files_per_sleep=1, file_prefix='st2-stuff-', file_format='json') timestamps = [ isotime.parse(execution.end_timestamp) for execution in self.execution_apis ] max_timestamp = max(timestamps) first_marker_db = dumper._write_marker_to_db(max_timestamp) second_marker_db = dumper._write_marker_to_db(max_timestamp + datetime.timedelta( hours=1)) markers = DumperMarker.get_all() self.assertEqual(len(markers), 1) final_marker_id = markers[0].id self.assertEqual(first_marker_db.id, final_marker_id) self.assertEqual(second_marker_db.id, final_marker_id) self.assertEqual(markers[0].marker, second_marker_db.marker) self.assertTrue( second_marker_db.updated_at > first_marker_db.updated_at)
def _get_export_marker_from_db(self): try: markers = DumperMarker.get_all() except: return None else: if len(markers) >= 1: marker = markers[0] return isotime.parse(marker.marker) else: return None
def _write_marker_to_db(self, new_marker): LOG.info('Updating marker in db to: %s', new_marker) markers = DumperMarker.get_all() if len(markers) > 1: LOG.exception('More than one dumper marker found. Using first found one.') marker = isotime.format(new_marker, offset=False) updated_at = date_utils.get_datetime_utc_now() if markers: marker_id = markers[0]['id'] else: marker_id = None marker_db = DumperMarkerDB(id=marker_id, marker=marker, updated_at=updated_at) return DumperMarker.add_or_update(marker_db)
def test_write_marker_to_db_marker_exists(self): executions_queue = self.get_queue() dumper = Dumper(queue=executions_queue, export_dir='/tmp', batch_size=5, max_files_per_sleep=1, file_prefix='st2-stuff-', file_format='json') timestamps = [isotime.parse(execution.end_timestamp) for execution in self.execution_apis] max_timestamp = max(timestamps) first_marker_db = dumper._write_marker_to_db(max_timestamp) second_marker_db = dumper._write_marker_to_db(max_timestamp + datetime.timedelta(hours=1)) markers = DumperMarker.get_all() self.assertEqual(len(markers), 1) final_marker_id = markers[0].id self.assertEqual(first_marker_db.id, final_marker_id) self.assertEqual(second_marker_db.id, final_marker_id) self.assertEqual(markers[0].marker, second_marker_db.marker) self.assertTrue(second_marker_db.updated_at > first_marker_db.updated_at)
def _write_marker_to_db(self, new_marker): LOG.info('Updating marker in db to: %s', new_marker) marker = DumperMarker.get_all() if len(marker) > 1: LOG.exception( 'More than one dumper marker found. Using first found one.') marker_db = None if marker: marker = marker[0] marker_db = DumperMarkerDB(id=marker['id']) else: marker_db = DumperMarkerDB() marker_db.marker = isotime.format(new_marker, offset=False) marker_db.updated_at = date_utils.get_datetime_utc_now() return DumperMarker.add_or_update(marker_db)
def _write_marker_to_db(self, new_marker): LOG.info("Updating marker in db to: %s", new_marker) markers = DumperMarker.get_all() if len(markers) > 1: LOG.exception( "More than one dumper marker found. Using first found one.") marker = isotime.format(new_marker, offset=False) updated_at = date_utils.get_datetime_utc_now() if markers: marker_id = markers[0]["id"] else: marker_id = None marker_db = DumperMarkerDB(id=marker_id, marker=marker, updated_at=updated_at) return DumperMarker.add_or_update(marker_db)