Revision d4de2ea8
b/src/Ganeti/DataCollectors/InstStatus.hs | ||
---|---|---|
42 | 42 |
import Ganeti.DataCollectors.CLI |
43 | 43 |
import Ganeti.DataCollectors.InstStatusTypes |
44 | 44 |
import Ganeti.Hypervisor.Xen |
45 |
import Ganeti.Hypervisor.Xen.Types |
|
45 | 46 |
import Ganeti.Objects |
46 | 47 |
import Ganeti.Utils |
47 | 48 |
|
... | ... | |
89 | 90 |
currUInfo = idNum >>= (`Map.lookup` uptimes) |
90 | 91 |
uptime = fmap uInfoUptime currUInfo |
91 | 92 |
adminState = instAdminState inst |
93 |
actualState = |
|
94 |
if adminState == AdminDown && isNothing currDomain |
|
95 |
then ActualShutdown |
|
96 |
else case currDomain of |
|
97 |
(Just dom@(Domain _ _ _ _ (Just isHung))) -> |
|
98 |
if isHung |
|
99 |
then ActualHung |
|
100 |
else domState dom |
|
101 |
_ -> ActualUnknown |
|
92 | 102 |
return $ |
93 | 103 |
InstStatus |
94 | 104 |
name |
95 | 105 |
(instUuid inst) |
96 | 106 |
adminState |
107 |
actualState |
|
97 | 108 |
uptime |
98 | 109 |
(instMtime inst) |
99 | 110 |
|
b/src/Ganeti/DataCollectors/InstStatusTypes.hs | ||
---|---|---|
29 | 29 |
) where |
30 | 30 |
|
31 | 31 |
|
32 |
import Ganeti.Hypervisor.Xen.Types |
|
32 | 33 |
import Ganeti.Objects |
33 | 34 |
import Ganeti.THH |
34 | 35 |
|
... | ... | |
37 | 38 |
[ simpleField "name" [t| String |] |
38 | 39 |
, simpleField "uuid" [t| String |] |
39 | 40 |
, simpleField "adminState" [t| AdminState |] |
41 |
, simpleField "actualState" [t| ActualState |] |
|
40 | 42 |
, optionalNullSerField $ |
41 | 43 |
simpleField "uptime" [t| String |] |
42 | 44 |
, simpleField "mtime" [t| Double |] |
Also available in: Unified diff