11#!/usr/bin/python
22import os , sys
33import simplejson
4- import json
4+ import simplejson as json
55import time
66import urllib , httplib , urllib2
77import string
@@ -30,14 +30,16 @@ def fetch_all_pledges(url,api):
3030 pledges = {}
3131 pledgesSites = {}
3232 count = 0
33+ pledgeCurTime = int (time .strftime ("%Y" ))
3334 for i in jsn ['result' ]:
3435 #_____________________________
36+ print i
3537 pledgeDate = i [2 ]
3638 pledgeTime = i [1 ]
3739 pledgeSiteName = i [0 ]
3840 #pledgeCpuValue = i[3]
3941 #_____________________________
40- if pledgeDate == 2014 :
42+ if pledgeDate == pledgeCurTime :
4143 current = time .time ()
4244 diff = current - pledgeTime
4345 if pledges .has_key (pledgeSiteName ):
@@ -53,13 +55,27 @@ def fetch_all_pledges(url,api):
5355# function matchs pledges values gets from siteDB with SiteName
5456
5557def matchPledges (pledgeList ):
58+ #_______________________fetch all siteName : FederationName because Pledges is defined by federation name not siteName._____________________
59+ headers = {"Accept" : "application/json" }
60+ url = "cmsweb.cern.ch"
61+ api = "/sitedb/data/prod/federations-sites"
62+ sitesList = []
63+ matchList = {}
64+ if 'X509_USER_PROXY' in os .environ :
65+ print 'X509_USER_PROXY found'
66+ conn = httplib .HTTPSConnection (url , cert_file = os .getenv ('X509_USER_PROXY' ), key_file = os .getenv ('X509_USER_PROXY' ))
67+ r1 = conn .request ("GET" ,api , None , headers )
68+ r2 = conn .getresponse ()
69+ inputjson = r2 .read ()
70+ jn = simplejson .loads (inputjson )
71+ conn .close ()
72+
73+ for siteName in jn ['result' ]:
74+ if siteName [3 ][0 :2 ] != 'T3' :
75+ matchList [siteName [3 ]] = siteName [2 ]
76+ sitesList .append (siteName [3 ])
77+ #___________________________________________________________________________________________________________________________
5678 pledges = {}
57- #sitesList = ['T1_TW_ASGC','T1_FR_CCIN2P3','T1_CH_CERN','T1_IT_CNAF','T1_US_FNAL','T1_US_FNAL_Disk','T1_RU_JINR','T1_RU_JINR_Disk','T1_DE_KIT','T1_ES_PIC','T1_UK_RAL','T1_UK_RAL_Disk','T2_IT_Bari','T2_CN_Beijing','T2_K_SGrid_Bristol','T2_K_London_Brunel','T2_FR_CCIN2P3','T2_CH_CERN','T2_CH_CERN_AI','T2_CH_CERN_HLT','T2_CH_CERN_T0','T2_ES_CIEMAT','T2_CH_CSCS','T2_TH_CUNSTDA','T2_S_Caltech','T2_DE_DESY','T2_EE_Estonia','T2_S_Florida','T2_FR_GRIF_IRFU','T2_FR_GRIF_LLR','T2_BR_UERJ','T2_FI_HIP','T2_AT_Vienna','T2_HU_Budapest','T2_UK_London_IC','T2_ES_IFCA','T2_RU_IHEP','T2_BE_IIHE','T2_RU_INR', 'T2_FR_IPHC','T2_RU_ITEP','T2_GR_Ioannina','T2_RU_JINR','T2_UA_KIPT','T2_KR_KNU','T2_IT_Legnaro','T2_BE_UCL','T2_TR_METU','T2_US_MIT','T2_PT_NCG_Lisbon','T2_PK_NCP','T2_US_Nebraska','T2_RU_PNPI','T2_IT_Pisa','T2_US_Purde', 'T2_RU_RRC_KI','T2_DE_RWTH','T2_IT_Rome','T2_UK_SGrid_RALPP','T2_RU_SINP','T2_BR_SPRACE','T2_IN_TIFR','T2_TW_Taiwan','T2_US_UCSD','T2_MY_UPM_BIRUNI', 'T2_US_Vanderbilt','T2_PL_Warsaw','T2_US_Wisconsin']
58- sitesList = ['T1_TW_ASGC' ,'T1_FR_CCIN2P3' ,'T1_CH_CERN' ,'T1_IT_CNAF' ,'T1_US_FNAL' ,'T1_US_FNAL_Disk' ,'T1_RU_JINR' ,'T1_RU_JINR_Disk' ,'T1_DE_KIT' ,'T1_ES_PIC' ,'T1_UK_RAL' ,'T1_UK_RAL_Disk' ,'T2_IT_Bari' ,'T2_CN_Beijing' ,'T2_UK_SGrid_Bristol' ,'T2_UK_London_Brunel' ,'T2_FR_CCIN2P3' ,'T2_CH_CERN' ,'T2_CH_CERN_AI' ,'T2_CH_CERN_HLT' ,'T2_CH_CERN_T0' ,'T2_ES_CIEMAT' ,'T2_CH_CSCS' ,'T2_TH_CUNSTDA' ,'T2_US_Caltech' ,'T2_DE_DESY' ,'T2_EE_Estonia' ,'T2_US_Florida' ,'T2_FR_GRIF_IRFU' ,'T2_FR_GRIF_LLR' ,'T2_BR_UERJ' ,'T2_FI_HIP' ,'T2_AT_Vienna' ,'T2_HU_Budapest' ,'T2_UK_London_IC' ,'T2_ES_IFCA' ,'T2_RU_IHEP' ,'T2_BE_IIHE' ,'T2_RU_INR' , 'T2_FR_IPHC' ,'T2_RU_ITEP' ,'T2_GR_Ioannina' ,'T2_RU_JINR' ,'T2_UA_KIPT' ,'T2_KR_KNU' ,'T2_IT_Legnaro' ,'T2_BE_UCL' ,'T2_TR_METU' ,'T2_US_MIT' ,'T2_PT_NCG_Lisbon' ,'T2_PK_NCP' ,'T2_US_Nebraska' ,'T2_RU_PNPI' ,'T2_IT_Pisa' ,'T2_US_Purdue' , 'T2_RU_RRC_KI' ,'T2_DE_RWTH' ,'T2_IT_Rome' ,'T2_UK_SGrid_RALPP' ,'T2_RU_SINP' ,'T2_BR_SPRACE' ,'T2_IN_TIFR' ,'T2_TW_Taiwan' ,'T2_US_UCSD' ,'T2_MY_UPM_BIRUNI' , 'T2_US_Vanderbilt' ,'T2_PL_Warsaw' ,'T2_US_Wisconsin' ]
59- #reportRoot = GetXMLFromURL( "https://cmsweb.cern.ch/sitedb/reports/showXMLReport?reportid=naming_convention.ini")
60- #result = reportRoot.find('result')
61- #matchList = {'T3_US_PuertoRico': 'UPRM', 'T2_FI_HIP': 'Helsinki Institute of Physics', 'T2_UK_SGrid_RALPP': 'Rutherford PPD', 'T2_FR_GRIF_LLR': 'GRIF_LLR', 'T2_UK_London_IC': 'IC', 'T3_UK_London_QMUL': 'QMUL', 'T3_TW_NTU_HEP': 'NTU_HEP', 'T3_US_Omaha': 'Firefly', 'T2_KR_KNU': 'KNU', 'T2_RU_SINP': 'SINP', 'T3_US_UMD': 'UMD', 'T2_CH_CERN_AI': 'CERN Tier-2 AI', 'T1_TW_ASGC': 'ASGC', 'T3_US_Colorado': 'Colorado', 'T3_US_UB': 'SUNY_BUFFALO', 'T1_UK_RAL_Disk': 'RALDISK', 'T3_IT_Napoli': 'INFN-NAPOLI-CMS', 'T3_NZ_UOA': 'NZ-UOA', 'T2_TH_CUNSTDA': 'CUNSTDA', 'T3_US_Kansas': 'Kansas', 'T3_US_ParrotTest': 'T3 US ParrotTest', 'T3_GR_IASA': 'IASA', 'T3_US_Parrot': 'T3 US Parrot', 'T2_IT_Bari': 'Bari', 'T2_US_UCSD': 'UCSD', 'T2_RU_IHEP': 'IHEP', 'T3_US_Vanderbilt_EC2': 'Vanderbilt_EC2', 'T1_RU_JINR': 'JINR-T1', 'T2_RU_RRC_KI': 'RRC_KI', 'T2_CH_CERN': 'CERN Tier-2', 'T3_BY_NCPHEP': 'BY-NCPHEP', 'T2_US_Vanderbilt': 'Vanderbilt', 'T3_GR_Demokritos': 'Demokritos', 'T3_US_UTENN': 'UTenn', 'T3_US_UCR': 'UC Riverside', 'T3_TW_NCU': 'NCU', 'T2_CH_CSCS': 'CSCS', 'T2_UA_KIPT': 'KIPT', 'T2_PK_NCP': 'NCP-LCG2', 'T2_RU_PNPI': 'PNPI', 'T2_IN_TIFR': 'TIFR', 'T3_UK_London_UCL': 'University College London', 'T3_US_Brown': 'Brown-CMS', 'T3_US_UCD': 'UCD', 'T3_CO_Uniandes': 'UNIANDES', 'T3_KR_KNU': 'KR_KNU', 'T2_FR_IPHC': 'IPHC', 'T3_US_OSU': 'OSU', 'T3_US_TAMU': 'TAMU', 'T1_US_FNAL': 'FNAL', 'T3_IT_Trieste': 'Trieste', 'T2_IT_Rome': 'Rome', 'T2_UK_London_Brunel': 'Brunel', 'T3_IN_PUHEP': 'PUHEP', 'T3_IT_Firenze': 'Firenze', 'T1_US_FNAL_Disk': 'FNALDISK', 'T2_EE_Estonia': 'Estonia', 'T3_UK_ScotGrid_ECDF': 'ECDF', 'T2_CN_Beijing': 'Beijing', 'T2_US_Florida': 'Florida', 'T3_US_Princeton_ICSE': 'Princeton ICSE ', 'T3_IT_MIB': 'INFN-MIB', 'T3_US_FNALXEN': 'FNALXEN', 'T3_US_Rutgers': 'Rutgers', 'T1_DE_KIT': 'KIT', 'T3_IR_IPM': 'IPM', 'T2_US_Wisconsin': 'Wisconsin', 'T2_HU_Budapest': 'Hungary', 'T2_DE_RWTH': 'RWTH', 'T3_IT_Perugia': 'Perugia', 'T3_UK_SGrid_Oxford': 'Oxford', 'T3_US_NU': 'Northwestern', 'T2_BR_UERJ': 'HEPGRID_UERJ', 'T3_MX_Cinvestav': 'cinvestav', 'T3_US_FNALLPC': 'FNALLPC', 'T3_US_UIowa': 'UIowa', 'T3_RU_FIAN': 'FIAN', 'T3_US_Cornell': 'Cornell', 'T2_ES_IFCA': 'IFCA', 'T3_US_UVA': 'UVA', 'T3_ES_Oviedo': 'Oviedo', 'T3_US_NotreDame': 'NWICG_NDCMS', 'T2_DE_DESY': 'DESY', 'T1_UK_RAL': 'RAL', 'T2_US_Caltech': 'Caltech', 'T3_FR_IPNL': 'IN2P3-IPNL', 'T2_TW_Taiwan': 'Taiwan', 'T3_US_NEU': 'Northeastern', 'T3_UK_London_RHUL': 'RHUL', 'T0_CH_CERN': 'CERN Tier-0', 'T1_RU_JINR_Disk': 'JINR-T1DISK', 'T3_CN_PKU': 'CN_PKU', 'T3_US_Baylor': 'Baylor University Tier3', 'T2_US_Nebraska': 'Nebraska', 'T2_ES_CIEMAT': 'CIEMAT', 'T3_US_Princeton': 'Princeton', 'T3_UK_ScotGrid_GLA': 'UKI-SCOTGRID-GLASGOW', 'T2_CH_CERN_T0': 'CERN Tier-2 T0', 'T3_US_TTU': 'TTU', 'T3_US_FSU': 'T3_US_FSU', 'T3_KR_UOS': 'UOS', 'T2_BR_SPRACE': 'SPRACE', 'T1_IT_CNAF': 'CNAF', 'T3_US_Minnesota': 'Minnesota', 'T2_TR_METU': 'METU', 'T2_AT_Vienna': 'Hephy-Vienna', 'T2_US_Purdue': 'Purdue', 'T3_US_Rice': 'Rice', 'T3_HR_IRB': 'IRB', 'T2_BE_UCL': 'Louvain', 'T3_US_FIT': 'FLTECH', 'T2_UK_SGrid_Bristol': 'Bristol', 'T2_PT_NCG_Lisbon': 'NCG-INGRID-PT', 'T1_ES_PIC': 'PIC', 'T3_US_JHU': 'JHU', 'T2_IT_Legnaro': 'Legnaro', 'T2_RU_INR': 'INR', 'T3_US_FIU': 'T3_US_FIU', 'T3_EU_Parrot': 'T3 EU Parrot', 'T2_RU_JINR': 'JINR', 'T2_IT_Pisa': 'Pisa', 'T2_GR_Ioannina': 'Ioannina', 'T3_US_MIT': 'T3 US MIT', 'T2_CH_CERN_HLT': 'CERN Tier-2 HLT', 'T2_MY_UPM_BIRUNI': 'UPM Biruni', 'T1_FR_CCIN2P3': 'CC-IN2P3', 'T2_FR_GRIF_IRFU': 'GRIF_IRFU', 'T3_US_UMiss': 'UMissHEP', 'T2_FR_CCIN2P3': 'CC-IN2P3 AF', 'T2_PL_Warsaw': 'Warsaw', 'T3_AS_Parrot': 'T3 AS Parrot', 'T2_US_MIT': 'MIT', 'T2_BE_IIHE': 'IIHE', 'T2_RU_ITEP': 'ITEP', 'T1_CH_CERN': 'CERN', 'T3_CH_PSI': 'PSI', 'T3_IT_Bologna': 'Bologna-T3'}
62- matchList = {'T2_FI_HIP' : 'Helsinki Institute of Physics' , 'T2_UK_SGrid_RALPP' : 'Rutherford PPD' , 'T2_FR_GRIF_LLR' : 'GRIF_LLR' , 'T2_UK_London_IC' : 'IC' , 'T3_US_Omaha' : 'Firefly' , 'T2_KR_KNU' : 'KNU' , 'T2_RU_SINP' : 'SINP' , 'T2_CH_CERN_AI' : 'CERN Tier-2 AI' , 'T1_TW_ASGC' : 'ASGC' , 'T3_US_Colorado' : 'Colorado' , 'T1_UK_RAL_Disk' : 'RALDISK' , 'T2_TH_CUNSTDA' : 'CUNSTDA' , 'T2_IT_Bari' : 'Bari' , 'T2_US_UCSD' : 'UCSD' , 'T2_RU_IHEP' : 'IHEP' , 'T1_RU_JINR' : 'JINR-T1' , 'T2_RU_RRC_KI' : 'RRC_KI' , 'T2_CH_CERN' : 'CERN Tier-2' , 'T2_US_Vanderbilt' : 'Vanderbilt' , 'T2_CH_CSCS' : 'CSCS' , 'T2_UA_KIPT' : 'KIPT' , 'T2_PK_NCP' : 'NCP-LCG2' , 'T2_RU_PNPI' : 'PNPI' , 'T2_IN_TIFR' : 'TIFR' , 'T2_FR_IPHC' : 'IPHC' , 'T1_US_FNAL' : 'FNAL' , 'T2_IT_Rome' : 'Rome' , 'T2_UK_London_Brunel' : 'Brunel' , 'T1_US_FNAL_Disk' : 'FNALDISK' , 'T2_EE_Estonia' : 'Estonia' , 'T2_CN_Beijing' : 'Beijing' , 'T2_US_Florida' : 'Florida' , 'T1_DE_KIT' : 'KIT' , 'T2_US_Wisconsin' : 'Wisconsin' , 'T2_HU_Budapest' : 'Hungary' , 'T2_DE_RWTH' : 'RWTH' , 'T2_BR_UERJ' : 'HEPGRID_UERJ' , 'T2_ES_IFCA' : 'IFCA' , 'T2_DE_DESY' : 'DESY' , 'T1_UK_RAL' : 'RAL' , 'T2_US_Caltech' : 'Caltech' , 'T2_TW_Taiwan' : 'Taiwan' , 'T0_CH_CERN' : 'CERN Tier-0' , 'T1_RU_JINR_Disk' : 'JINR-T1DISK' , 'T2_US_Nebraska' : 'Nebraska' , 'T2_ES_CIEMAT' : 'CIEMAT' , 'T2_CH_CERN_T0' : 'CERN Tier-2 T0' , 'T2_BR_SPRACE' : 'SPRACE' , 'T1_IT_CNAF' : 'CNAF' , 'T2_TR_METU' : 'METU' , 'T2_AT_Vienna' : 'Hephy-Vienna' , 'T2_US_Purdue' : 'Purdue' , 'T2_BE_UCL' : 'Louvain' , 'T2_UK_SGrid_Bristol' : 'Bristol' , 'T2_PT_NCG_Lisbon' : 'NCG-INGRID-PT' , 'T1_ES_PIC' : 'PIC' , 'T2_IT_Legnaro' : 'Legnaro' , 'T2_RU_INR' : 'INR' , 'T2_RU_JINR' : 'JINR' , 'T2_IT_Pisa' : 'Pisa' , 'T2_GR_Ioannina' : 'Ioannina' , 'T2_CH_CERN_HLT' : 'CERN Tier-2 HLT' , 'T2_MY_UPM_BIRUNI' : 'UPM Biruni' , 'T1_FR_CCIN2P3' : 'CC-IN2P3' , 'T2_FR_GRIF_IRFU' : 'GRIF_IRFU' , 'T2_FR_CCIN2P3' : 'CC-IN2P3 AF' , 'T2_PL_Warsaw' : 'Warsaw' , 'T2_US_MIT' : 'MIT' , 'T2_BE_IIHE' : 'IIHE' , 'T2_RU_ITEP' : 'ITEP' , 'T1_CH_CERN' : 'CERN' }
6379#_____________________________________________________________________________
6480 for site in matchList :
6581 if pledgeList .has_key (matchList [site ]):
@@ -69,15 +85,14 @@ def matchPledges(pledgeList):
6985 pledges [site ] = "n/a"
7086 return pledges
7187#____________________function creates JSON TXT file________________
72- def savetoFile (pledges , year , outputfile_txt ):
88+ def savetoFile (pledges , outputfile_txt ):
7389 saveTime = time .strftime ('%Y-%m-%d %H:%M:%S' )
7490 url = "https://cmsweb.cern.ch/sitedb/prod/pledges "
7591 #_______________JSON__________________________________________________
7692 filename = outputfile_txt + ".json"
7793 fileOp = open (filename , "w" )
7894 fileOp .write (unicode (simplejson .dumps (pledges , ensure_ascii = False )))
7995 fileOp .close ()
80-
8196 #_______________the List_____________________________________________
8297 filename = outputfile_txt + ".txt"
8398 fileOp = open (filename , "w" )
@@ -86,13 +101,11 @@ def savetoFile(pledges, year,outputfile_txt):
86101 if (pledges [tmpPledges ] > 0 ) : color = 'green'
87102 if (str (pledges [tmpPledges ]) == 'n/a' ) : color = 'white'
88103 fileOp .write (saveTime + "\t " + tmpPledges + "\t " + str (pledges [tmpPledges ]) + "\t " + color + "\t " + url + "\n " )
89-
90104 fileOp .close ()
91105
92106if __name__ == '__main__' :
93107 outputfile_txt = sys .argv [1 ]
94- year = sys .argv [2 ]
95108 print 'starting to fetch all pledges from siteDB'
96109 allPledgeList = fetch_all_pledges ('cmsweb.cern.ch' ,'/sitedb/data/prod/resource-pledges' )
97110 pledges = matchPledges (allPledgeList )
98- savetoFile (pledges , year , outputfile_txt )
111+ savetoFile (pledges , outputfile_txt )
0 commit comments