Exemplo n.º 1
0
    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 != {})
Exemplo n.º 2
0
    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 != {})
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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