diff --git a/virtrust/src/virtrust/api/domain.cpp b/virtrust/src/virtrust/api/domain.cpp index 53a399dfac978403358433fd4c22139293d9d8ff..977a0ca4a58663e06ed827b2841957f5e26d3985 100644 --- a/virtrust/src/virtrust/api/domain.cpp +++ b/virtrust/src/virtrust/api/domain.cpp @@ -559,6 +559,11 @@ auto ToMaps(int tsbVmNum, Description *tsbVmInfo, int virtVmNum, virDomainPtr *v if (flags == DomainListFlags::LIST_DOMAINS_ACTIVE && !CompareTsbVirtState((tsbVmInfo + i)->state, VIR_DOMAIN_RUNNING)) { continue; + } + // 如果查INACTIVE 过滤running态的 + if (flags == DomainListFlags::LIST_DOMAINS_INACTIVE && + CompareTsbVirtState((tsbVmInfo + i)->state, VIR_DOMAIN_RUNNING)) { + continue; } tsbVmMap.emplace(tsbVmUuid, *(tsbVmInfo + i)); } @@ -581,6 +586,9 @@ auto ToMaps(int tsbVmNum, Description *tsbVmInfo, int virtVmNum, virDomainPtr *v if (flags == DomainListFlags::LIST_DOMAINS_ACTIVE && outInfo.state != VIR_DOMAIN_RUNNING) { continue; } + if (flags == DomainListFlags::LIST_DOMAINS_INACTIVE && outInfo.state == VIR_DOMAIN_RUNNING) { + continue; + } virtVmMap.emplace(virtVmUuid, outInfo); } return std::make_pair(tsbVmMap, virtVmMap);