예제 #1
0
 def get_queue(self):
     from pdagent.pdqueue import PDQueue
     from pdagent.jsonstore import JsonStore
     backoff_db = JsonStore("backoff", self.default_dirs["db_dir"])
     backoff_interval = self.main_config["backoff_interval_secs"]
     retry_limit_for_possible_errors = \
         self.main_config["retry_limit_for_possible_errors"]
     counter_db = JsonStore("aggregates", self.default_dirs["db_dir"])
     return PDQueue(
         lock_class=FileLock,
         queue_dir=self.default_dirs["outqueue_dir"],
         time_calc=time,
         event_size_max_bytes=4 * 1024 * 1024,  # 4MB limit.
         backoff_db=backoff_db,
         backoff_interval=backoff_interval,
         retry_limit_for_possible_errors=retry_limit_for_possible_errors,
         counter_db=counter_db)
예제 #2
0
 def setUp(self):
     try:
         os.makedirs(_TEST_DIR)
     except OSError as e:
         if e.errno != errno.EEXIST:
             raise
     try:
         os.unlink(_TEST_STORE_FILE)
     except OSError as e:
         if e.errno != errno.ENOENT:
             raise
     self.store = JsonStore(_TEST_STORE_NAME, _TEST_DIR)
예제 #3
0
 def test_write_and_read(self):
     j = {
         "foo": "bar",
         "baz": 1
         }
     self.store.set(j)
     self.assertEqual(self.store.get(), j)
     # ensure that json is persisted.
     self.assertTrue(os.path.isfile(_TEST_STORE_FILE))
     fp = None
     try:
         fp = open(_TEST_STORE_FILE, "r")
         self.assertEqual(json.load(fp), j)
     finally:
         if fp:
             fp.close()
     # ensure that a different store can pick up persisted content.
     self.assertEqual(JsonStore(_TEST_STORE_NAME, _TEST_DIR).get(), j)