def handle(self, *args, **kwargs): #configfile = static("acessorio.json") configfile = os.path.join(settings.BASE_DIR, "static/acessorio.json") with open(configfile) as config_file: config = json.load(config_file) yt = Connection(url='https://youtrack.ugent.be', token=config['YTTOKR']) # get CMB issues PRCissues = yt.get_all_issues("PRC-", 0, 500) # open PRC issue IDs PRCissuesIDs = [] Currentissuesindexes = list() counter = 0 for issue in PRCissues: #print(issue['id']) if datetime.datetime.now() - datetime.datetime.fromtimestamp( int(issue["created"]) / 1000) < datetime.timedelta( hours=40): #timesincecreation = datetime.datetime.now() - datetime.datetime.fromtimestamp(int(issue["created"])/1000) #if timesincecreation < datetime.timedelta(hours=60) and timesincecreation > datetime.timedelta(hours=1): PRCissuesIDs.append(issue["id"]) Currentissuesindexes.append(counter) counter = counter + 1 # update PRCissues (filter State Closed) print(PRCissuesIDs) PRCissues = [PRCissues[index] for index in Currentissuesindexes] filename = os.path.join(settings.BASE_DIR, "static/PRC_issues_creation_hourly.csv") with open(filename, 'w', encoding='utf-8') as csvfile: #csvfile.write('Running start date\tLab PI\tType\tUser Name\tYouTrack\tProject Name (YouTrack)\t# samples\tMS_Injections_Per_Sample\trun length (hours)\ttotal running time (hours)\tMass_Spectrometer\tCreated_DateH\tArrival_DateH\tMS_RunStateH\tMS_RunStatesH\tMS_RunStatesnrH\tre-runs/problems\tMS_RunStartH\tMS_RunStartsH\tMS_RunStartsnrH\tresolvedH\tResolvedDateH\tCleatedDate\n') #csvfile.write('YouTrack_id,Contact_Email,Analysis_Type\n') i = 0 for issue in PRCissues: # name of fields in issue indices = list() for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) # YouTrack_id issueid = issue['id'] # Project_name issuecontactemail = issue['Contact_Email'] # sendRegistrationEmail if 'sendRegistrationEmail' in indices: issuesendregistrationemail = issue['sendRegistrationEmail'] else: issuesendregistrationemail = 'Yes' # No_Samples if 'Analysis_Type' in indices: issueAnalysisType = str(issue['Analysis_Type']) else: issueAnalysisType = 'None' row = issueid + ',' + issuecontactemail + ',' + issueAnalysisType + ',' + issuesendregistrationemail row = row + '\n' csvfile.write(row, ) i = i + 1
import csv import re import time import datetime httplib2.debuglevel = 4 #httplib.debuglevel=4 # connection yt = Connection( 'https://youtrack.ugent.be', 'root', 'PRCyt,17*' ) #, proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP, 'youtrack.ugent.be', 8080)) print('connected') # get CMB issues PRCissues = yt.get_all_issues("PRC-", 0, 500) #datetime.datetime.now()-datetime.datetime.fromtimestamp(int(issue['created'])<datetime.timedelta(minutes=40) #datetime.datetime.fromtimestamp(int(PRCissues[0]['created'])/1000).strftime('%Y-%m-%d %H:%M:%S.%f') # issue IDs per project # open PRC issue IDs PRCissuesIDs = [] Currentissuesindexes = list() counter = 0 for issue in PRCissues: if datetime.datetime.now() - datetime.datetime.fromtimestamp( int(issue["created"]) / 1000) < datetime.timedelta(hours=4): PRCissuesIDs.append(issue["id"]) Currentissuesindexes.append(counter) counter = counter + 1 # update PRCissues (filter State Closed)
def handle(self, *args, **kwargs): configfile=os.path.join(settings.BASE_DIR, "static/acessorio.json") with open(configfile, encoding='utf-8') as config_file: config = json.load(config_file) yt = Connection(url='https://youtrack.ugent.be', token=config['YTTOKR']) #@ # get CMB issues PRCissues = yt.get_all_issues("PRC",0,1000) CMBissues = yt.get_all_issues("CMB",0,1000) PSBissues = yt.get_all_issues("PSB",0,1000) MSSissues = yt.get_all_issues("MSStatus-",0,100) # issue IDs per project # open PRC issue IDs PRCissuesIDs = [] PRCCurrentissuesindexes = list() counter=0 for issue in PRCissues: if issue["State"]=='Created' or issue["State"]=='Arrived' or issue["State"]=='Sample_Prep' or issue["State"]=="MS_Run" or issue["State"]=="Data_Analysis" or issue["State"]=="Closed": PRCissuesIDs.append(issue["id"]) PRCCurrentissuesindexes.append(counter) counter = counter+1 # update PRCissues (filter State Closed) PRCissues = [PRCissues[index] for index in PRCCurrentissuesindexes] CMBissuesIDs = [] CMBCurrentissuesindexes = list() counter=0 for issue in CMBissues: if issue["State"]=='Arrived' or issue["State"]=='Sample_Prep' or issue["State"]=="MS_Run" or issue["State"]=="Data_Analysis": CMBissuesIDs.append(issue["id"]) CMBCurrentissuesindexes.append(counter) counter = counter+1 # update PRCissues (filter State Closed) CMBissues = [CMBissues[index] for index in CMBCurrentissuesindexes] PSBissuesIDs = [] PSBCurrentissuesindexes = list() counter=0 for issue in PSBissues: if issue["State"]=='Arrived' or issue["State"]=='Sample_Prep' or issue["State"]=="MS_Run" or issue["State"]=="Data_Analysis": PSBissuesIDs.append(issue["id"]) PSBCurrentissuesindexes.append(counter) counter = counter+1 # update PRCissues (filter State Closed) PSBissues = [PSBissues[index] for index in PSBCurrentissuesindexes] # function to handle inhesistent attributes def find_attribute_in_list(element, list_element): try: index_element = list_element.index(element) return index_element except ValueError: return 'None' #filename ="/home/pportal/dev2Sep18/prcsite/vibproteomicscore/static/PRCCMBPSB_issues_dailyreport.csv" filename =os.path.join(settings.BASE_DIR, "static/PRCCMBPSB_issues_dailyreport.csv") with open(filename, 'w', encoding='utf-8') as csvfile: #csvfile.write('Running start date\tLab PI\tType\tUser Name\tYouTrack\tProject Name (YouTrack)\t# samples\tMS_Injections_Per_Sample\trun length (hours)\ttotal running time (hours)\tMass_Spectrometer\tCreated_DateH\tArrival_DateH\tMS_RunStateH\tMS_RunStatesH\tMS_RunStatesnrH\tre-runs/problems\tMS_RunStartH\tMS_RunStartsH\tMS_RunStartsnrH\tresolvedH\tResolvedDateH\tCleatedDate\n') csvfile.write('YouTrack_id,No_Samples,total_running_time,Mass_Spectrometer,State,Scheduling_State,Project_Name\n') i=0 for issue in PRCissues: # name of fields in issue indices = list() for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) # YouTrack_id issueid=issue['id'] # Project_name issuesummary=issue['summary'] # No_Samples if 'No_Samples' in indices: issueNoSamples=str(issue['No_Samples']) else: issueNoSamples='None' # total running time (hours) if 'MS_Total_Time_h' in indices: issueMS_Total_Time_h=issue['MS_Total_Time_h'] else: issueMS_Total_Time_h='None' # Mass_Spectrometer if 'Mass_Spectrometer' in indices: issueMassSpectrometer=issue['Mass_Spectrometer'] else: issueMassSpectrometer='None' # State if 'State' in indices: issueState=issue['State'] else: issueState='None' # Scheduling_State if 'Scheduling_State' in indices: issueSchedulingState=issue['Scheduling_State'] else: issueSchedulingState='None' row = issueid+',' + issueNoSamples+ ',' + issueMS_Total_Time_h + ',' + issueMassSpectrometer + "," + issueState + "," + issueSchedulingState + ',' + issuesummary row = row + '\n' csvfile.write(row,) i = i+1 for issue in CMBissues: # name of fields in issue indices = list() for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) # YouTrack_id issueid=issue['id'] # Project_name issuesummary=issue['summary'] # No_Samples if 'No_Samples' in indices: issueNoSamples=str(issue['No_Samples']) else: issueNoSamples='None' # total running time (hours) if 'MS_Total_Time_h' in indices: issueMS_Total_Time_h=issue['MS_Total_Time_h'] else: issueMS_Total_Time_h='None' # Mass_Spectrometer if 'Mass_Spectrometer' in indices: issueMassSpectrometer=issue['Mass_Spectrometer'] else: issueMassSpectrometer='None' # State if 'State' in indices: issueState=issue['State'] else: issueState='None' # Scheduling_State if 'Scheduling_State' in indices: issueSchedulingState=issue['Scheduling_State'] else: issueSchedulingState='None' row = issueid + ',' + issueNoSamples+ ',' + issueMS_Total_Time_h + ',' + issueMassSpectrometer + "," + issueState + "," + issueSchedulingState+',' + issuesummary row = row + '\n' csvfile.write(row,) i = i+1 for issue in PSBissues: # name of fields in issue indices = list() for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) # YouTrack_id issueid=issue['id'] # Project_name issuesummary=issue['summary'] # No_Samples if 'No_Samples' in indices: issueNoSamples=str(issue['No_Samples']) else: issueNoSamples='None' # total running time (hours) if 'MS_Total_Time_h' in indices: issueMS_Total_Time_h=issue['MS_Total_Time_h'] else: issueMS_Total_Time_h='None' # Mass_Spectrometer if 'Mass_Spectrometer' in indices: issueMassSpectrometer=issue['Mass_Spectrometer'] else: issueMassSpectrometer='None' # State if 'State' in indices: issueState=issue['State'] else: issueState='None' # Scheduling_State if 'Scheduling_State' in indices: issueSchedulingState=issue['Scheduling_State'] else: issueSchedulingState='None' row = issueid + ',' + issueNoSamples+ ',' + issueMS_Total_Time_h + ',' + issueMassSpectrometer + "," + issueState + "," + issueSchedulingState+',' + issuesummary row = row + '\n' csvfile.write(row,) i = i+1 csvfile.close() filename =os.path.join(settings.BASE_DIR, "static/MSSissues_issues_dailyreport.csv") with open(filename, 'w', encoding='utf-8') as csvfile: #csvfile.write('Running start date\tLab PI\tType\tUser Name\tYouTrack\tProject Name (YouTrack)\t# samples\tMS_Injections_Per_Sample\trun length (hours)\ttotal running time (hours)\tMass_Spectrometer\tCreated_DateH\tArrival_DateH\tMS_RunStateH\tMS_RunStatesH\tMS_RunStatesnrH\tre-runs/problems\tMS_RunStartH\tMS_RunStartsH\tMS_RunStartsnrH\tresolvedH\tResolvedDateH\tCleatedDate\n') csvfile.write('Mass_Spectrometer,Status,Status_description\n') # name of fields in issue indices = list() rowlist=[None]*5 MSindexed_lst = ['Orbitrap Fusion Lumos','Q-Exactive HF','Q-Exactive HF Biopharma', 'Q-Exactive','LTQ Orbitrap Elite'] for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) for i in range(5): # Mass Spectrometer issue = MSSissues[i] indices = list() for attr_name, attr_type in issue._attribute_types.items(): indices.append(attr_name) issueMS=issue['Mass_Spectrometer'] # MassSpec status issueStatus=issue['Status'] # Status description if 'Status_description' in indices: issueStatusdescription=str(issue['Status_description']).lower() elif issueStatus == "On": issueStatusdescription='running' else: issueStatusdescription='under maintenance' row = issueMS + ',' + issueStatus + "," + issueStatusdescription row = row + '\n' rowlist[MSindexed_lst.index(issueMS)]=row #i = i+1 for i in range(5): csvfile.write(rowlist[i]) csvfile.close()