Revision afa0fca4 src/Ganeti/Query/Instance.hs

b/src/Ganeti/Query/Instance.hs
628 628
    case instanceState of
629 629
      InstanceStateRunning | adminState == AdminUp -> Running
630 630
                           | otherwise -> ErrorUp
631
      InstanceStateShutdown | adminState == AdminUp -> UserDown
631
      InstanceStateShutdown | adminState == AdminUp && allowDown -> UserDown
632 632
                            | otherwise -> StatusDown
633 633
  where adminState = instAdminState inst
634 634
        instanceState = instInfoState instInfo
635 635

  
636
        hvparams = fromContainer $ instHvparams inst
637

  
638
        allowDown =
639
          instHypervisor inst /= Kvm ||
640
          (Map.member C.hvKvmUserShutdown hvparams &&
641
           hvparams Map.! C.hvKvmUserShutdown == J.JSBool True)
642

  
636 643
-- | Determines the status of a dead instance.
637 644
deadInstanceStatus :: Instance -> InstanceStatus
638 645
deadInstanceStatus inst =

Also available in: Unified diff