@@ -91,38 +91,49 @@ def gethistoricaldata(request):
9191 else :
9292 env = env .first ()
9393
94- # Fetch Baseline data
94+ # Fetch Baseline data, filter by executable
9595 baseline_exe = Executable .objects .get (
9696 name = settings .DEF_BASELINE ['executable' ])
97- baseline_lastrev = Revision .objects .filter (
98- branch__project = baseline_exe .project ).order_by ('-date' )[0 ]
97+ baseline_revs = Revision .objects .filter (
98+ branch__project = baseline_exe .project ).order_by ('-date' )
99+ baseline_lastrev = baseline_revs [0 ]
100+ for rev in baseline_revs :
101+ baseline_results = Result .objects .filter (
102+ executable = baseline_exe , revision = rev , environment = env )
103+ if baseline_results :
104+ baseline_lastrev = rev
105+ break
106+ if len (baseline_results ) == 0 :
107+ logger .error ('Could not find results for {} rev="{}" env="{}"' .format (
108+ baseline_exe , baseline_lastrev , env ))
99109 data ['baseline' ] = '{} {}' .format (
100110 settings .DEF_BASELINE ['executable' ], baseline_lastrev .tag )
101- baseline_results = Result .objects .filter (
102- executable = baseline_exe , revision = baseline_lastrev , environment = env )
103111
104112 default_exe = Executable .objects .get (name = settings .DEF_EXECUTABLE )
105113 default_branch = Branch .objects .get (
106114 name = default_exe .project .default_branch ,
107115 project = default_exe .project )
108116
109- # Fetch tagged revisions for default executable
117+ # Fetch tagged revisions for executable
110118 default_taggedrevs = Revision .objects .filter (
111- branch = default_branch
112- ).exclude (tag = "" ).order_by ('date' )
113- data ['tagged_revs' ] = [rev .tag for rev in default_taggedrevs ]
119+ branch = default_branch
120+ ).exclude (tag = "" ).order_by ('date' )
114121 default_results = {}
115122 for rev in default_taggedrevs :
116- default_results [ rev . tag ] = Result .objects .filter (
123+ res = Result .objects .filter (
117124 executable = default_exe , revision = rev , environment = env )
118-
125+ if not res :
126+ logger .info ('no results for %s %s %s' % (str (default_exe ), str (rev ), str (env )))
127+ continue
128+ default_results [rev .tag ] = res
129+ data ['tagged_revs' ] = [rev .tag for rev in default_taggedrevs if rev .tag in default_results ]
119130 # Fetch data for latest results
120131 revs = Revision .objects .filter (
121132 branch = default_branch ).order_by ('-date' )[:5 ]
122133 default_lastrev = None
123134 for i in range (4 ):
124135 default_lastrev = revs [i ]
125- if default_lastrev .results .filter (executable = default_exe ):
136+ if default_lastrev .results .filter (executable = default_exe , environment = env ):
126137 break
127138 default_lastrev = None
128139 if default_lastrev is None :
@@ -892,7 +903,6 @@ def add_result(request):
892903 return HttpResponseBadRequest (response )
893904 else :
894905 create_report_if_enough_data (response [0 ], response [1 ], response [2 ])
895- logger .debug ("add_result: completed" )
896906 return HttpResponse ("Result data saved successfully" , status = 202 )
897907
898908
@@ -917,15 +927,11 @@ def add_json_results(request):
917927 else :
918928 unique_reports .add (response )
919929
920- logger .debug ("add_json_results: about to create reports" )
921930 for rep in unique_reports :
922931 create_report_if_enough_data (rep [0 ], rep [1 ], rep [2 ])
923932
924- logger .debug ("add_json_results: completed" )
925-
926933 return HttpResponse ("All result data saved successfully" , status = 202 )
927934
928-
929935def django_has_content_type ():
930936 return (django .VERSION [0 ] > 1 or
931937 (django .VERSION [0 ] == 1 and django .VERSION [1 ] >= 6 ))
0 commit comments