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:
@ -54,12 +54,12 @@ def vm_info(config, vm):
|
||||
return False, response.json().get('message', '')
|
||||
|
||||
|
||||
def vm_list(config, limit, target_node, target_state, target_tag):
|
||||
def vm_list(config, limit, target_node, target_state, target_tag, negate):
|
||||
"""
|
||||
Get list information about VMs (limited by {limit}, {target_node}, or {target_state})
|
||||
|
||||
API endpoint: GET /api/v1/vm
|
||||
API arguments: limit={limit}, node={target_node}, state={target_state}, tag={target_tag}
|
||||
API arguments: limit={limit}, node={target_node}, state={target_state}, tag={target_tag}, negate={negate}
|
||||
API schema: [{json_data_object},{json_data_object},etc.]
|
||||
"""
|
||||
params = dict()
|
||||
@ -71,6 +71,7 @@ def vm_list(config, limit, target_node, target_state, target_tag):
|
||||
params['state'] = target_state
|
||||
if target_tag:
|
||||
params['tag'] = target_tag
|
||||
params['negate'] = negate
|
||||
|
||||
response = call_api(config, 'get', '/vm', params=params)
|
||||
|
||||
|
@ -1827,15 +1827,19 @@ def vm_dump(filename, domain):
|
||||
'-r', '--raw', 'raw', is_flag=True, default=False,
|
||||
help='Display the raw list of VM names only.'
|
||||
)
|
||||
@click.option(
|
||||
'-n', '--negate', 'negate', is_flag=True, default=False,
|
||||
help='Negate the specified node, state, or tag limit(s).'
|
||||
)
|
||||
@cluster_req
|
||||
def vm_list(target_node, target_state, target_tag, limit, raw):
|
||||
def vm_list(target_node, target_state, target_tag, limit, raw, negate):
|
||||
"""
|
||||
List all virtual machines; optionally only match names or full UUIDs matching regex LIMIT.
|
||||
|
||||
NOTE: Red-coloured network lists indicate one or more configured networks are missing/invalid.
|
||||
"""
|
||||
|
||||
retcode, retdata = pvc_vm.vm_list(config, limit, target_node, target_state, target_tag)
|
||||
retcode, retdata = pvc_vm.vm_list(config, limit, target_node, target_state, target_tag, negate)
|
||||
if retcode:
|
||||
retdata = pvc_vm.format_list(config, retdata, raw)
|
||||
else:
|
||||
|
Reference in New Issue
Block a user