def test_wq_clear(self):
     workers = datastores.BaseDocument()
     workers["valid1"] = {"time": time.time() + 2}
     workers["invalid1"] = {"time": time.time() - 2}
     workers["invalid2"] = {"time": time.time() - 3}
     self.assertEqual(len(workers), 3)
     workers.clear()
     self.assertEqual(len(workers), 0)
Example #2
0
 def setUp(self):
     super().setUp()
     self.args = tests.FakeArgs()
     with patch("directord.plugin_import", autospec=True):
         self.server = server.Server(args=self.args)
     self.server.workers = datastores.BaseDocument()
     self.server.return_jobs = datastores.BaseDocument()
     self.server.driver = self.mock_driver
     self.job_item = {
         "job_id": "XXX",
         "job_sha3_224": "YYY",
         "parent_id": "ZZZ",
         "verb": "TEST",
     }
     self.server.create_return_jobs(task="XXX",
                                    job_item=self.job_item,
                                    targets=["test-node"])
 def test_wq_prune_valid(self):
     workers = datastores.BaseDocument()
     workers["valid1"] = {"time": time.time() + 2}
     workers["invalid1"] = {"time": time.time() - 2}
     workers["invalid2"] = {"time": time.time() - 3}
     workers.prune()
     self.assertEqual(len(workers), 1)
     self.assertIn("valid1", workers)
Example #4
0
 def test_create_return_jobs_exists(self):
     self.server.return_jobs = datastores.BaseDocument()
     self.server.return_jobs["XXX"] = {"exists": True}
     status = self.server.create_return_jobs(
         task="XXX",
         job_item=self.job_item,
         targets=[b"test-node1", b"test-node2"],
     )
     self.assertDictEqual(
         status,
         {"exists": True},
     )
Example #5
0
 def test_create_return_jobs_named(self):
     self.maxDiff = 1024
     self.server.return_jobs = datastores.BaseDocument()
     job_item = self.job_item.copy()
     job_item["parent_name"] = "test parent name"
     job_item["job_name"] = "test job name"
     status = self.server.create_return_jobs(
         task="XXX",
         job_item=job_item,
         targets=["test-node1", "test-node2"],
     )
     self.assertDictEqual(
         status.__dict__,
         {
             "_createtime": ANY,
             "_executiontime": {
                 "test-node1": 0,
                 "test-node2": 0
             },
             "_lasttime": ANY,
             "_processing": {
                 "test-node1": "\x00",
                 "test-node2": "\x00"
             },
             "_roundtripltime": {
                 "test-node1": 0,
                 "test-node2": 0
             },
             "job_id": "XXX",
             "JOB_DEFINITION": ANY,
             "JOB_SHA3_224": "YYY",
             "JOB_NAME": "test job name",
             "PARENT_JOB_ID": "ZZZ",
             "PARENT_JOB_NAME": "test parent name",
             "VERB": "TEST",
             "COMPONENT_TIMESTAMP": None,
             "INFO": {
                 "test-node1": None,
                 "test-node2": None
             },
             "PROCESSING": None,
             "RETURN_TIMESTAMP": None,
             "STDERR": {
                 "test-node1": None,
                 "test-node2": None
             },
             "STDOUT": {
                 "test-node1": None,
                 "test-node2": None
             },
         },
     )
Example #6
0
 def test_run_socket_server_manage_purge_jobs(self, mock_socket,
                                              mock_unlink, mock_chmod,
                                              mock_chown):
     socket = mock_socket.return_value = MagicMock()
     conn = MagicMock()
     conn.recv.return_value = json.dumps({
         "manage": {
             "purge_jobs": None
         }
     }).encode()
     conn.sendall = MagicMock()
     socket.accept.return_value = [conn, MagicMock()]
     return_jobs = self.server.return_jobs = datastores.BaseDocument()
     return_jobs["k"] = {"v": "test"}
     self.server.run_socket_server()
     mock_unlink.assert_called_with(self.args.socket_path)
     self.assertDictEqual(self.server.return_jobs, {})
     conn.sendall.assert_called_with(b'{"success": true}')
     mock_chmod.assert_called()
     mock_chown.assert_called()
Example #7
0
 def test_run_socket_server_manage_purge_nodes(self, mock_socket,
                                               mock_unlink, mock_chmod,
                                               mock_chown):
     socket = mock_socket.return_value = MagicMock()
     conn = MagicMock()
     conn.recv.return_value = json.dumps({
         "manage": {
             "purge_nodes": None
         }
     }).encode()
     conn.sendall = MagicMock()
     socket.accept.return_value = [conn, MagicMock()]
     self.server.workers = datastores.BaseDocument()
     for i in ["test-node1", "test-node2"]:
         w = models.Worker(identity=i)
         w.version = "x.x.x"
         w.expire_time = 0
         self.server.workers[w.identity] = w
     self.server.run_socket_server()
     mock_unlink.assert_called_with(self.args.socket_path)
     self.assertDictEqual(self.server.workers, {})
     conn.sendall.assert_called_with(b'{"success": true}')
     mock_chmod.assert_called()
     mock_chown.assert_called()
 def test_wq_prune_0(self):
     workers = datastores.BaseDocument()
     workers["test"] = 1
     workers.clear()
     self.assertDictEqual(workers, dict())