Add limit negation to VM list
When using the "state", "node", or "tag" arguments to a VM list, add support for a "negate" flag to look for all VMs *not in* the state, node, or tag state.
This commit is contained in:
		@@ -975,7 +975,7 @@ def get_info(zkhandler, domain):
 | 
			
		||||
    return True, domain_information
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_list(zkhandler, node, state, tag, limit, is_fuzzy=True):
 | 
			
		||||
def get_list(zkhandler, node, state, tag, limit, is_fuzzy=True, negate=False):
 | 
			
		||||
    if node:
 | 
			
		||||
        # Verify node is valid
 | 
			
		||||
        if not common.verifyNode(zkhandler, node):
 | 
			
		||||
@@ -1032,7 +1032,9 @@ def get_list(zkhandler, node, state, tag, limit, is_fuzzy=True):
 | 
			
		||||
 | 
			
		||||
        if tag:
 | 
			
		||||
            vm_tags = zkhandler.children(('domain.meta.tags', vm))
 | 
			
		||||
            if tag in vm_tags:
 | 
			
		||||
            if negate and tag not in vm_tags:
 | 
			
		||||
                is_tag_match = True
 | 
			
		||||
            if not negate and tag in vm_tags:
 | 
			
		||||
                is_tag_match = True
 | 
			
		||||
        else:
 | 
			
		||||
            is_tag_match = True
 | 
			
		||||
@@ -1040,7 +1042,9 @@ def get_list(zkhandler, node, state, tag, limit, is_fuzzy=True):
 | 
			
		||||
        # Check on node
 | 
			
		||||
        if node:
 | 
			
		||||
            vm_node = zkhandler.read(('domain.node', vm))
 | 
			
		||||
            if vm_node == node:
 | 
			
		||||
            if negate and vm_node != node:
 | 
			
		||||
                is_node_match = True
 | 
			
		||||
            if not negate and vm_node == node:
 | 
			
		||||
                is_node_match = True
 | 
			
		||||
        else:
 | 
			
		||||
            is_node_match = True
 | 
			
		||||
@@ -1048,7 +1052,9 @@ def get_list(zkhandler, node, state, tag, limit, is_fuzzy=True):
 | 
			
		||||
        # Check on state
 | 
			
		||||
        if state:
 | 
			
		||||
            vm_state = zkhandler.read(('domain.state', vm))
 | 
			
		||||
            if vm_state == state:
 | 
			
		||||
            if negate and vm_state != state:
 | 
			
		||||
                is_state_match = True
 | 
			
		||||
            if not negate and vm_state == state:
 | 
			
		||||
                is_state_match = True
 | 
			
		||||
        else:
 | 
			
		||||
            is_state_match = True
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user