def _system_count_metrics_for_query_grouped(name, grouping, query): group_counts = utilisation.system_utilisation_counts_by_group(grouping, query) for group, counts in group_counts.iteritems(): for state, count in counts.iteritems(): if state != 'idle_removed': metrics.measure('gauges.systems_%s.%s.%s' % (state, name, group.replace('.', '_')), count)
def test_grouped_counts(self): lc = data_setup.create_labcontroller() manual_ia64_system = data_setup.create_system(lab_controller=lc, arch="ia64") data_setup.create_manual_reservation(manual_ia64_system, start=datetime.datetime(2012, 1, 1, 0, 0, 0)) manual_ppc_system = data_setup.create_system(lab_controller=lc, arch="ppc") data_setup.create_manual_reservation(manual_ppc_system, start=datetime.datetime(2012, 1, 1, 0, 0, 0)) recipe_ia64_system = data_setup.create_system(lab_controller=lc, arch="ia64") data_setup.mark_recipe_running(data_setup.create_job().recipesets[0].recipes[0], system=recipe_ia64_system) session.flush() counts = system_utilisation_counts_by_group( Arch.arch, System.query.join(System.arch).filter(System.lab_controller == lc) ) print counts self.assertEqual(counts["ia64"]["recipe"], 1) self.assertEqual(counts["ia64"]["manual"], 1) self.assertEqual(counts["ppc"]["manual"], 1)