Beispiel #1
0
    def stepEnd(self, step, stepReport):
        """
        _stepEnd_

        Fill with step-ending information
        """
        helper = WMStepHelper(step)

        stepSuccess = stepReport.getStepExitCode(stepName=helper.name())
        stepReport.setStepCounter(stepName=helper.name(),
                                  counter=self.stepCount)
        if self.jobSuccess == 0:
            self.jobSuccess = int(stepSuccess)
        if int(stepSuccess) != 0:
            self.failedStep = helper.name()

        data = {}
        data['MessageType'] = 'jobRuntime-stepEnd'
        data['MessageTS'] = time.strftime(self.tsFormat, time.gmtime())
        data['taskId'] = self.taskName
        data['jobId'] = self.jobName
        data['%d_ExeEnd' % self.stepCount] = helper.name()
        data['%d_ExeExitCode' % self.stepCount] = stepReport.getStepExitCode(
            stepName=helper.name())
        data['%d_NCores' % self.stepCount] = helper.getNumberOfCores()

        if helper.name() == 'StageOut':
            data['%d_StageOutExitStatus' % self.stepCount] = int(
                stepReport.stepSuccessful(stepName=helper.name()))

        times = stepReport.getTimes(stepName=helper.name())
        if times['stopTime'] is not None and times['startTime'] is not None:
            data['%d_ExeWCTime' %
                 self.stepCount] = times['stopTime'] - times['startTime']
        else:
            logging.error('Failed to retrieve start/end step time: %s', times)
            data['%d_ExeWCTime' % self.stepCount] = 0
        self.WrapperWCTime += data['%d_ExeWCTime' % self.stepCount]

        step = stepReport.retrieveStep(step=helper.name())
        try:
            data['%d_ExeCPUTime' % self.stepCount] = getattr(
                step.performance.cpu, 'TotalJobCPU', 0)
        except AttributeError:
            msg = "Failed to retrieve cpu performance for step %s. Defaulting to 0" % helper.name(
            )
            logging.warn(msg)
            data['%d_ExeCPUTime' % self.stepCount] = 0
        self.WrapperCPUTime += float(data['%d_ExeCPUTime' % self.stepCount])

        self.lastStep = helper.name()
        self.maxCores = max(self.maxCores, helper.getNumberOfCores())

        self.publish(data=data)

        return data
    def stepEnd(self, step, stepReport):
        """
        _stepEnd_

        Fill with step-ending information
        """
        helper = WMStepHelper(step)

        stepSuccess = stepReport.getStepExitCode(stepName=helper.name())
        stepReport.setStepCounter(stepName=helper.name(), counter=self.stepCount)
        if self.jobSuccess == 0:
            self.jobSuccess = int(stepSuccess)
        if int(stepSuccess) != 0:
            self.failedStep = helper.name()

        data = {}
        data['MessageType'] = 'jobRuntime-stepEnd'
        data['MessageTS'] = time.strftime(self.tsFormat,
                                          time.gmtime())
        data['taskId'] = self.taskName
        data['jobId'] = self.jobName
        data['%d_ExeEnd' % self.stepCount] = helper.name()
        data['%d_ExeExitCode' % self.stepCount] = stepReport.getStepExitCode(
            stepName=helper.name())
        data['%d_NCores' % self.stepCount] = helper.getNumberOfCores()

        if helper.name() == 'StageOut':
            data['%d_StageOutExitStatus' % self.stepCount] = int(
                stepReport.stepSuccessful(stepName=helper.name()))

        times = stepReport.getTimes(stepName=helper.name())
        if times['stopTime'] is not None and times['startTime'] is not None:
            data['%d_ExeWCTime' % self.stepCount] = times['stopTime'] - times['startTime']
        else:
            logging.error('Failed to retrieve start/end step time: %s', times)
            data['%d_ExeWCTime' % self.stepCount] = 0
        self.WrapperWCTime += data['%d_ExeWCTime' % self.stepCount]

        step = stepReport.retrieveStep(step=helper.name())
        try:
            data['%d_ExeCPUTime' % self.stepCount] = getattr(step.performance.cpu,
                                                             'TotalJobCPU', 0)
        except AttributeError:
            msg = "Failed to retrieve cpu performance for step %s. Defaulting to 0" % helper.name()
            logging.warn(msg)
            data['%d_ExeCPUTime' % self.stepCount] = 0
        self.WrapperCPUTime += float(data['%d_ExeCPUTime' % self.stepCount])

        self.lastStep = helper.name()
        self.maxCores = max(self.maxCores, helper.getNumberOfCores())

        self.publish(data=data)

        return data
    def stepEnd(self, step, stepReport):
        """
        _stepEnd_

        Fill with step-ending information
        """
        helper = WMStepHelper(step)

        stepSuccess = stepReport.getStepExitCode(stepName = helper.name())
        stepReport.setStepCounter(stepName = helper.name(), counter = self.stepCount)
        if self.jobSuccess == 0:
            self.jobSuccess = int(stepSuccess)
        if int(stepSuccess) != 0:
            self.failedStep = helper.name()

        data = {}
        data['MessageType']                     = 'jobRuntime-stepEnd'
        data['MessageTS']                       = time.strftime(self.tsFormat,
                                                         time.gmtime())
        data['taskId']                          = self.taskName
        data['jobId']                           = self.jobName
        data['%d_ExeEnd' % self.stepCount]      = helper.name()
        data['%d_ExeExitCode' % self.stepCount] = stepReport.getStepExitCode(
                                                    stepName = helper.name())

        if helper.name() == 'StageOut':
            data['%d_StageOutExitStatus' % self.stepCount] = int(
                        stepReport.stepSuccessful(stepName = helper.name()))

        times = stepReport.getTimes(stepName = helper.name())
        if times['stopTime'] != None and times['startTime'] != None:
            data['%d_ExeWCTime' % self.stepCount] = \
                                       times['stopTime'] - times['startTime']
            data['%d_NCores' % self.stepCount] = helper.getNumberOfCores()
            self.maxCores = max(self.maxCores, helper.getNumberOfCores())

        step = stepReport.retrieveStep(step = helper.name())

        if hasattr(step, 'performance'):
            if hasattr(step.performance, 'cpu'):
                data['%d_ExeCPUTime' % self.stepCount] = \
                                                getattr(step.performance.cpu,
                                                        'TotalJobCPU', 0)
                self.WrapperCPUTime += float(data['%d_ExeCPUTime'
                                                        % self.stepCount])

        self.WrapperWCTime += data['%d_ExeWCTime' % self.stepCount]
        self.lastStep = helper.name()

        self.publish(data = data)

        return data
Beispiel #4
0
    def stepEnd(self, step, stepReport):
        """
        _stepEnd_

        Fill with step-ending information
        """
        helper = WMStepHelper(step)

        stepSuccess = stepReport.getStepExitCode(stepName=helper.name())
        stepReport.setStepCounter(stepName=helper.name(),
                                  counter=self.stepCount)
        if self.jobSuccess == 0:
            self.jobSuccess = int(stepSuccess)
        if int(stepSuccess) != 0:
            self.failedStep = helper.name()

        data = {}
        data['MessageType'] = 'jobRuntime-stepEnd'
        data['MessageTS'] = time.strftime(self.tsFormat, time.gmtime())
        data['taskId'] = self.taskName
        data['jobId'] = self.jobName
        data['%d_ExeEnd' % self.stepCount] = helper.name()
        data['%d_ExeExitCode' % self.stepCount] = stepReport.getStepExitCode(
            stepName=helper.name())

        if helper.name() == 'StageOut':
            data['%d_StageOutExitStatus' % self.stepCount] = int(
                stepReport.stepSuccessful(stepName=helper.name()))

        times = stepReport.getTimes(stepName=helper.name())
        if times['stopTime'] != None and times['startTime'] != None:
            data['%d_ExeWCTime' % self.stepCount] = \
                                       times['stopTime'] - times['startTime']
            data['%d_NCores' % self.stepCount] = helper.getNumberOfCores()
            self.maxCores = max(self.maxCores, helper.getNumberOfCores())

        step = stepReport.retrieveStep(step=helper.name())

        if hasattr(step, 'performance'):
            if hasattr(step.performance, 'cpu'):
                data['%d_ExeCPUTime' % self.stepCount] = \
                                                getattr(step.performance.cpu,
                                                        'TotalJobCPU', 0)
                self.WrapperCPUTime += float(data['%d_ExeCPUTime' %
                                                  self.stepCount])

        self.WrapperWCTime += data['%d_ExeWCTime' % self.stepCount]
        self.lastStep = helper.name()

        self.publish(data=data)

        return data