예제 #1
0
    def test_calculate_job_results(self):
        db_obj = FakeDBObj(self)
        rt = ResultTrace()
        pbs_list = {
            "account": ["account1", "account2"],
            "cores_per_node": [24, 48],
            "numnodes": [100, 200],
            "class": ["queue1", "queue2"],
            "wallclock_requested": [120, 368],
            "created": [1000, 2000],
            "start": [1100, 2200],
            "completion": [1500, 2700],
            "jobname": ["name1", "name2"]
        }
        rt._lists_submit = rt._transform_pbs_to_slurm(pbs_list)

        rt.calculate_job_results(True, db_obj, 1)

        self.assertEqual(db_obj._id_count, 12)
        self.assertEqual(db_obj._set_fields, [
            "jobs_runtime_cdf", "jobs_runtime_stats", "jobs_waittime_cdf",
            "jobs_waittime_stats", "jobs_turnaround_cdf",
            "jobs_turnaround_stats", "jobs_requested_wc_cdf",
            "jobs_requested_wc_stats", "jobs_cpus_alloc_cdf",
            "jobs_cpus_alloc_stats", "jobs_slowdown_cdf", "jobs_slowdown_stats"
        ])
        self.assertEqual(db_obj._hist_count, 6)
        self.assertEqual(db_obj._stats_count, 6)
예제 #2
0
    def test_load_job_results(self):
        db_obj = self._db
        hist = Histogram()
        stat = NumericStats()
        self.addCleanup(self._del_table, "histograms")
        self.addCleanup(self._del_table, "numericStats")
        hist.create_table(db_obj)
        stat.create_table(db_obj)

        rt = ResultTrace()
        pbs_list = {
            "account": ["account1", "account2"],
            "cores_per_node": [24, 48],
            "numnodes": [100, 200],
            "class": ["queue1", "queue2"],
            "wallclock_requested": [120, 368],
            "created": [1000, 2000],
            "start": [1100, 2200],
            "completion": [1500, 2700],
            "jobname": ["name1", "name2"]
        }
        rt._lists_submit = rt._transform_pbs_to_slurm(pbs_list)

        rt.calculate_job_results(True, db_obj, 1)

        db_obj = self._db
        new_rt = ResultTrace()
        new_rt.load_job_results(db_obj, 1)

        for field in [
                "jobs_runtime_cdf", "jobs_runtime_stats", "jobs_waittime_cdf",
                "jobs_waittime_stats", "jobs_turnaround_cdf",
                "jobs_turnaround_stats", "jobs_requested_wc_cdf",
                "jobs_requested_wc_stats", "jobs_cpus_alloc_cdf",
                "jobs_cpus_alloc_stats", "jobs_slowdown_cdf",
                "jobs_slowdown_stats"
        ]:
            self.assertNotEqual(rt.jobs_results[field], None)