Offline docs (switch to live docs)                         UI-only          CLI-only 

How to find machines

The Machines and Devices pages contain a powerful interactive search bar that lets you filter machines and devices. This article is designed to help you understand how to use this resource.

This article will explain:

This article also includes a filter properties reference

How to construct a MAAS search parameter

A valid MAAS search parameter looks like this:

Each search attribute is placed in the Search box, separated by spaces (if it’s an “AND” search operation), or by parentheses and commas (if’s it’s an “OR” operation). Specific search parameters use the notation “parameter-name” followed by a colon (“:”). For example, here we’re searching for “pod:”, which equates to the pod name (VM name).

You can match exactly by using the equals sign (“=”) with a filter fragment, or make a partial match by excluding the “=”. You can get an idea how these parameters work by using the filter dropdowns in the UI, which generate a valid search expression in the “Search” box. There is also a “not” operator (“!”) which can be applied to partial or exact matches.

How to do simple searches

To begin searching, enter your search text. As you type, MAAS will update search results in real time. You can search across virtually every parameter, including domain, name, tag, power type, IP, status, zone, and so on.

How to do filtered searches

Filter your searches to major categories by selecting one from the Filters drop-down menu next to the search bar.

For example, to find all “New” machines containing the name or tag ‘quail’, select Status/New from the drop-down Filters menu, and then type the word ‘quail’ next to it:

How to create manual filters

Enter filters manually in the search bar to more precisely control your searches:

filter-name:([=]val1,...,[=]val2)

Note: Surround search terms with parentheses when they must occur together, e.g., status:(failed testing).

How to set up exact matching

If you need an exact match, preface the search value with an equal sign. For example, to find machines belonging to a pod named able-cattle:

pod:=able-cattle

How to set up partial matching

Without an equal sign, MAAS returns partial matches. For example, the following will display all machines belonging to pods with names containing able or cattle:

pod:able,cattle

Multiple search terms

MAAS uses Boolean AND logic to evaluate multiple search terms. For example, when you type pod:able,cattle cpu:=5, MAAS displays machines that belong to pods with names containing able OR cattle AND having 5 CPU cores. Similarly, if you enter multiple words into the search tool, e.g., steady able, MAAS will display machines matching both terms (e.g., steady AND able).

Filter properties reference

The following table describes the expanded filter set for the MAAS machine list:

See How to search MAAS for more details on how to use these parameters.

Parameter (bold) w/example Shows nodes… Dyn Grp Man
arch:(=architecture) with “architecture” Grp
arch:(!=architecture) NOT with “architecture” Dyn
zone:(=zone-name) in “zone-name” Dyn Grp
zone:(!=zone-name) NOT in “zone-name” Dyn
pool:(=resource-pool) in “resource-pool” Dyn Grp
pool:(!=resource-pool) NOT in “resource-pool” Dyn
pod:(=pod-name) with “pod-name” Dyn Grp
pod:(!=pod-name) NOT with “pod-name” Dyn
pod_type:(=pod-type) with power type “pod-type” Dyn Grp Man
pod_type:(!=pod-type) NOT with power type “pod-type” Dyn Man
domain:(=domain-name) with “domain-name” Dyn Grp Man
domain:(!=domain-name) NOT with “domain-name” Dyn Man
status:(=op-status) having “op-status” Grp
status:(!=op-status) NOT having “op-status” Dyn
owner:(=user) owned by “user” Dyn Grp
owner:(!=user) NOT owned by “user” Dyn
power_state:(=power-state) having “power-state” Grp Man
power_state:(!=power-state) NOT having “power-state” Dyn Man
tags:(=tag-name) with tag “tag-name” Dyn
tags:(!=tag-name) NOT with tag “tag-name” Dyn
fabrics:(=fabric-name) in “fabric-name” Dyn
fabrics:(!=fabric-name) NOT in “fabric-name” Dyn
fabric_classes:(=fabric-class) in “fabric-class” Dyn Man
fabric_classes:(!=fabric-class) NOT in “fabric-class” Dyn Man
fabric_name:(=fabric-name) in “boot-interface-fabric” Dyn Man
fabric_name:(!=fabric-name) NOT in “boot-interface-fabric” Dyn Man
subnets:(=subnet-name) attached to “subnet-name” Dyn
subnets:(!=subnet-name) Not attached to “subnet-name” Dyn
link_speed:(link-speed) having “link-speed” Dyn Man
link_speed:(!link-speed) NOT having “link-speed” Dyn Man
vlans:(=vlan-name) attached to “vlan-name” Dyn
vlans:(!=vlan-name) NOT attached to “vlan-name” Dyn
storage:(storage-MB) having “storage-MB” Dyn Man
total_storage:(total-stg-MB) having “total-stg-MB” Dyn Man
total_storage:(!total-stg-MB) NOT having “total-stg-MB” Dyn Man
cpu_count:(cpu-count) having “cpu-count” Dyn Man
cpu_count:(!cpu-count) NOT having “cpu-count” Dyn Man
mem:(ram-in-MB) having “ram-in-MB” Dyn Man
mem:(!ram-in-MB) NOT having “ram-in-MB” Dyn Man
mac_address:(=MAC) having MAC address “MAC” Dyn Man
mac_address:(!=MAC) NOT having Dyn Man
agent_name:(=agent-name) Include nodes with agent-name Dyn Man
agent_name:(!=agent-name) Exclude nodes with agent-name Dyn Man
cpu_speed:(cpu-speed-GHz) CPU speed Dyn Man
cpu_speed:(!cpu-speed-GHz) CPU speed Dyn Man
osystem:(=os-name) The OS of the desired node Dyn Man
osystem:(!=os-name) OS to ignore Dyn Man
distro_series:(=distro-name) Include nodes using distro Dyn Man
distro_series:(!=distro-name) Exclude ndoes using distro Dyn Man
ip_addresses:(=ip-address) Node’s IP address Dyn Man
ip_addresses:(!=ip-address) IP address to ignore Dyn Man
spaces:(=space-name) Node’s spaces Dyn
spaces:(!=space-name) Node’s spaces Dyn
workloads:(=annotation-text) Node’s workload annotations Dyn
workloads:(!=annotation-text) Node’s workload annotations Dyn
physical_disk_count:(disk-count) Physical disk Count Dyn Man
physical_disk_count:(!disk-count) Physical disk Count Dyn Man
pxe_mac:(=PXE-MAC) Boot interface MAC address Dyn Man
pxe_mac:(!=PXE-MAC) Boot interface MAC address Dyn Man
fqdn:(=fqdn-value) Node FQDN Dyn Man
fqdn:(!=fqdn-value) Node FQDN Dyn Man
simple_status:(=status-val) Include nodes with simple-status Dyn Man
simple_status:(!=status-val) Exclude nodes with simple-status Dyn Man
devices:(=) Devices Dyn Man
interfaces:(=) Interfaces Dyn Man
parent:(=) Parent node Dyn Grp Man