Blame view

src/InputOutput/IHMImpl/Process/IHMInputOutputRunningInfoProcessClass.php 1.75 KB
22521f1c   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

/**
 * @class IHMInputOutputRunningInfoProcessClass
 * @brief Implementation of a IHMInputOutputInfoProcessAbstractClass used to treat a request to get the status of all running process
 * @details
 */
class IHMInputOutputRunningInfoProcessClass extends IHMInputOutputInfoProcessAbstractClass
{
	/*
	 * @brief get the list of running job
	*/
	public function getJobIds($input)
	{
		return $this->jobsManager->getJobsByStatus('in_progress');
	}

	/*
	 * @brief method to marshall the result
	*/
	public function marshallResult($data)
	{
		$nFinished   = 0;
		$nError      = 0;
		$nInProgress = 0;
		$jobsFinished = null;
		$jobsInProgress = null;

		foreach ($data as $d)
		{
			if (!$d->getSuccess())
				continue;

			$jobInfo = $this->jobsManager->updateJobStatus(
					$d->getId(),
					$d->getStatus() == ProcessStatusEnumClass::RUNNING,
ba82a624   Benjamin Renard   Get kernel execut...
37
38
					$d->getErrorCode(),
					$d->getExecTime());
22521f1c   Benjamin Renard   First commit
39
40
41
42

			if (!$jobInfo['success'])
				continue;

c6b591d9   Nathanael Jourdane   Send runningPath ...
43
44
			$jobInfo['runningPath'] = $d->getRunningPath();

22521f1c   Benjamin Renard   First commit
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
			switch ($jobInfo['status'])
			{
				case 'in_progress' :
					if (!isset($jobsInProgress))
						$jobsInProgress = array();
					$jobsInProgress[] = $jobInfo;
					++$nInProgress;
					break;
				case 'done' :
					if (!isset($jobsFinished))
						$jobsFinished = array();
					$jobsFinished[] = $jobInfo;
					++$nFinished;
					break;
				default :
					if (!isset($jobsFinished))
						$jobsFinished = array();
					$jobsFinished[] = $jobInfo;
					++$nError;
			}
		}

		return array(
				'success'        => true,
				'nFinished'      => $nFinished,
				'nError'         => $nError,
				'nInProgress'    => $nInProgress,
				'jobsFinished'   => $jobsFinished,
				'jobsInProgress' => $jobsInProgress);
	}
}

ba82a624   Benjamin Renard   Get kernel execut...
77
?>