def test_query_ress(self): """ Test querying RESS """ # Condor path and config location # These will be set correctly as long as the test is run in the same environment # as what is needed to run the factory/wms collector if "CONDOR_CONFIG" not in os.environ: condor_config = "/etc/condor/condor_config" condorExe.init() self.assertTrue(condorExe.condor_bin_path != None and condorExe.condor_sbin_path != None) condorExe.set_path(condorExe.condor_bin_path, condorExe.condor_sbin_path) # Test that information is retrieved and is populated correctly infosys_entries = query_ress("osg-ress-1.fnal.gov", "engage") self.assertNotEqual(infosys_entries, {}) keys = infosys_entries.keys() entry = infosys_entries[keys[0]] self.assertTrue(entry['site_name'] != '') self.assertTrue(entry['gridtype'] != '') self.assertTrue(entry['gatekeeper'] != '') self.assertTrue(entry['wall_clocktime'] != 0) self.assertTrue(entry['ref_id'] != '') self.assertTrue(entry['ce_status'] != '') self.assertTrue(entry['glexec_bin'] == 'OSG') self.assertTrue(entry['work_dir'] == 'OSG') self.assertEqual(entry['source'], "osg-ress-1.fnal.gov") self.assertEqual(entry['source_type'], 'RESS') self.assertTrue(entry['GlueCEUniqueID'] != '') # Test bad ress source self.assertRaises(Exception, query_ress, "bad.url", "cms") # Test bad vo name infosys_entries = query_ress( "osg-ress-1.fnal.gov", "junk_testing_bad_vo_name_that_is_not_valid") self.assertEqual(infosys_entries, {}) # Test empty vo name infosys_entries = query_ress("osg-ress-1.fnal.gov", "") self.assertTrue(infosys_entries != {})
def test_query_ress(self): """ Test querying RESS """ # Condor path and config location # These will be set correctly as long as the test is run in the same environment # as what is needed to run the factory/wms collector if not os.environ.has_key("CONDOR_CONFIG"): condor_config="/etc/condor/condor_config" condorExe.init() self.assertTrue(condorExe.condor_bin_path != None and condorExe.condor_sbin_path != None) condorExe.set_path(condorExe.condor_bin_path, condorExe.condor_sbin_path) # Test that information is retrieved and is populated correctly infosys_entries = query_ress("osg-ress-1.fnal.gov", "engage") self.assertNotEqual(infosys_entries, {}) keys = infosys_entries.keys() entry = infosys_entries[keys[0]] self.assertTrue(entry['site_name'] != '') self.assertTrue(entry['gridtype'] != '') self.assertTrue(entry['gatekeeper'] != '') self.assertTrue(entry['wall_clocktime'] != 0) self.assertTrue(entry['ref_id'] != '') self.assertTrue(entry['ce_status'] != '') self.assertTrue(entry['glexec_bin'] == 'OSG') self.assertTrue(entry['work_dir'] == 'OSG') self.assertEqual(entry['source'], "osg-ress-1.fnal.gov") self.assertEqual(entry['source_type'], 'RESS') self.assertTrue(entry['GlueCEUniqueID'] != '') # Test bad ress source self.assertRaises(Exception, query_ress, "bad.url", "cms") # Test bad vo name infosys_entries = query_ress("osg-ress-1.fnal.gov", "junk_testing_bad_vo_name_that_is_not_valid") self.assertEqual(infosys_entries, {}) # Test empty vo name infosys_entries = query_ress("osg-ress-1.fnal.gov", "") self.assertTrue(infosys_entries != {})
def find_entries_with_different_content(config_xml, skip_disabled): """ Find entries where their content doesn't match what is published in the information system. """ try: # Find all enabled config entries with ref ids config_dom = minidom.parse(config_xml) config_entries = infosys_lib.parse_entries(config_dom, skip_missing_ref_id=True, skip_disabled=skip_disabled) # Create an info systems list from factory config infosystems = infosys_lib.parse_info_systems(config_dom) has_ress = False for infosys in infosystems: if infosystems[infosys].lower() == 'ress': has_ress = True break if has_ress: # Update path with condor condor_path = infosys_lib.parse_condor_path(config_dom) os.environ["CONDOR_CONFIG"] = condor_path + "/etc/condor_config" condorExe.set_path(condor_path + "/bin", condor_path + "/sbin") except: print("Error parsing the the config file '%s', exiting the tool." % config_xml) sys.exit(2) # Retrieve info systems entries bdii_entries = {} ress_entries = {} tg_entries = {} for infosys, type in infosystems.iteritems(): if type.lower() == 'bdii': bdii_entries.update(infosys_lib.query_bdii(infosys)) elif type.lower() == 'ress': ress_entries.update(infosys_lib.query_ress(infosys)) elif type.lower() == 'tg': tg_entries.update(infosys_lib.query_teragrid()) id_match_bdii_entries = find_entries_id_match(bdii_entries, config_entries, 'bdii') id_match_ress_entries = find_entries_id_match(ress_entries, config_entries, 'ress') id_match_tg_entries = find_entries_id_match(tg_entries, config_entries, 'tg') return id_match_bdii_entries, id_match_ress_entries, id_match_tg_entries
def find_entries_with_ids_not_published(config_xml, skip_disabled): """ Find config entries not published in the information systems. """ try: # Find all enabled config entries with ref ids config_dom = minidom.parse(config_xml) config_entries = infosys_lib.parse_entries(config_dom, skip_missing_ref_id=True, skip_disabled=skip_disabled) # Create an info systems list from factory config infosystems = infosys_lib.parse_info_systems(config_dom) has_ress = False for infosys in infosystems: if infosystems[infosys].lower() == 'ress': has_ress = True break if has_ress: # Update path with condor condor_path = infosys_lib.parse_condor_path(config_dom) os.environ["CONDOR_CONFIG"] = condor_path + "/etc/condor_config" condorExe.set_path(condor_path + "/bin", condor_path + "/sbin") except: print "Error parsing the the config file '%s', exiting the tool." % config_xml sys.exit(2) # Retrieve info systems entries bdii_entries = {} ress_entries = {} tg_entries = {} for infosys, type in infosystems.iteritems(): if type.lower() == 'bdii': bdii_entries.update(infosys_lib.query_bdii(infosys)) elif type.lower() == 'ress': ress_entries.update(infosys_lib.query_ress(infosys)) elif type.lower() == 'tg': tg_entries.update(infosys_lib.query_teragrid()) id_not_found_bdii_entries = find_entries_id_not_found(bdii_entries, config_entries, 'bdii') id_not_found_ress_entries = find_entries_id_not_found(ress_entries, config_entries, 'ress') id_not_found_tg_entries = find_entries_id_not_found(tg_entries, config_entries, 'tg') return id_not_found_bdii_entries, id_not_found_ress_entries, id_not_found_tg_entries