Fix cdash reporter time stamps (#38825)
* Fix cdash reporter time stamps (#38818). The cdash reporter is created before packages are installed so save the starttime then instead of the endtime. * Use endtime instead of starttime for the endtime of update --------- Co-authored-by: Tamara Dahlgren <dahlgren1@llnl.gov>
This commit is contained in:
		@@ -92,11 +92,11 @@ def __init__(self, configuration: CDashConfiguration):
 | 
			
		||||
        self.osname = platform.system()
 | 
			
		||||
        self.osrelease = platform.release()
 | 
			
		||||
        self.target = spack.platforms.host().target("default_target")
 | 
			
		||||
        self.endtime = int(time.time())
 | 
			
		||||
        self.starttime = int(time.time())
 | 
			
		||||
        self.buildstamp = (
 | 
			
		||||
            configuration.buildstamp
 | 
			
		||||
            if configuration.buildstamp
 | 
			
		||||
            else build_stamp(configuration.track, self.endtime)
 | 
			
		||||
            else build_stamp(configuration.track, self.starttime)
 | 
			
		||||
        )
 | 
			
		||||
        self.buildIds: Dict[str, str] = {}
 | 
			
		||||
        self.revision = ""
 | 
			
		||||
@@ -125,7 +125,7 @@ def build_report_for_package(self, report_dir, package, duration):
 | 
			
		||||
            report_data[phase] = {}
 | 
			
		||||
            report_data[phase]["loglines"] = []
 | 
			
		||||
            report_data[phase]["status"] = 0
 | 
			
		||||
            report_data[phase]["endtime"] = self.endtime
 | 
			
		||||
            report_data[phase]["starttime"] = self.starttime
 | 
			
		||||
 | 
			
		||||
        # Track the phases we perform so we know what reports to create.
 | 
			
		||||
        # We always report the update step because this is how we tell CDash
 | 
			
		||||
@@ -179,9 +179,9 @@ def build_report_for_package(self, report_dir, package, duration):
 | 
			
		||||
            build_pos = phases_encountered.index("build")
 | 
			
		||||
            phases_encountered.insert(0, phases_encountered.pop(build_pos))
 | 
			
		||||
 | 
			
		||||
        self.starttime = self.endtime - duration
 | 
			
		||||
        self.endtime = self.starttime + duration
 | 
			
		||||
        for phase in phases_encountered:
 | 
			
		||||
            report_data[phase]["starttime"] = self.starttime
 | 
			
		||||
            report_data[phase]["endtime"] = self.endtime
 | 
			
		||||
            report_data[phase]["log"] = "\n".join(report_data[phase]["loglines"])
 | 
			
		||||
            errors, warnings = parse_log_events(report_data[phase]["loglines"])
 | 
			
		||||
 | 
			
		||||
@@ -328,7 +328,7 @@ def test_report_for_package(self, report_dir, package, duration):
 | 
			
		||||
            self.buildname = "{0}-{1}".format(self.current_package_name, package["id"])
 | 
			
		||||
        else:
 | 
			
		||||
            self.buildname = self.report_build_name(self.current_package_name)
 | 
			
		||||
        self.starttime = self.endtime - duration
 | 
			
		||||
        self.endtime = self.starttime + duration
 | 
			
		||||
 | 
			
		||||
        report_data = self.initialize_report(report_dir)
 | 
			
		||||
        report_data["hostname"] = socket.gethostname()
 | 
			
		||||
@@ -373,7 +373,7 @@ def concretization_report(self, report_dir, msg):
 | 
			
		||||
        self.buildname = self.base_buildname
 | 
			
		||||
        report_data = self.initialize_report(report_dir)
 | 
			
		||||
        report_data["update"] = {}
 | 
			
		||||
        report_data["update"]["starttime"] = self.endtime
 | 
			
		||||
        report_data["update"]["starttime"] = self.starttime
 | 
			
		||||
        report_data["update"]["endtime"] = self.endtime
 | 
			
		||||
        report_data["update"]["revision"] = self.revision
 | 
			
		||||
        report_data["update"]["log"] = msg
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user