Skip to content

Instantly share code, notes, and snippets.

@ThinGuy
Last active June 18, 2018 18:45
Show Gist options
  • Save ThinGuy/19e46476f00e8947b82ccae6f3110970 to your computer and use it in GitHub Desktop.
Save ThinGuy/19e46476f00e8947b82ccae6f3110970 to your computer and use it in GitHub Desktop.
Print relevant NIC information from Ready MaaS nodes, Useful when automating the creation of bridges, bonds, etc.
maas-ready-nic-info () {
( printf "System|ID|VLAN|Tag|MAC|Name|Child of|Parent to|Hostname|Available Subnets on current VLAN\n";
sudo -u postgres psql -P pager=off -F"|" --no-align -t maasdb -c \
"SELECT node.system_id,interface.id,interface.vlan_id,vlan.vid,interface.mac_address,interface.name,ifparent.parent_id,ifchild.child_id,node.hostname, array_to_string(array_agg(distinct subnet.cidr),',') AS niclist \
FROM maasserver_interface interface \
LEFT OUTER JOIN maasserver_vlan vlan ON vlan.id = interface.vlan_id \
LEFT OUTER JOIN maasserver_subnet subnet ON subnet.vlan_id = interface.vlan_id \
LEFT OUTER JOIN maasserver_node node ON interface.node_id = node.id \
LEFT OUTER JOIN maasserver_interfacerelationship ifparent ON interface.id = ifparent.child_id \
LEFT OUTER JOIN maasserver_interfacerelationship ifchild ON interface.id = ifchild.parent_id \
WHERE node.node_type = 0 AND interface.id IS NOT NULL AND node.status = 4 \
GROUP BY node.system_id,interface.id,interface.vlan_id,interface.mac_address,interface.name,ifparent.parent_id,ifchild.child_id,node.hostname,vlan.vid"
)|sed 's/|||/|-|-|/g;s/||/|-|/g;'|column -nexts\|;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment