Mike,
I think your idea of a non-operational command with an input variable for the aggregate will work. Adding what Karale suggested will produce the behavior we are looking for.
As for available capactiy, I came up with something similar.
SELECT
round(aggregate.available_size_mb/1000) AS 'Available (GB)',
aggregate.name AS 'Name'
FROM
cm_storage.aggregate AS aggregate
JOIN
cm_storage.volume AS volume
ON volume.aggregate_id = aggregate.id
WHERE
volume.name = '${volume}'
I played with committed capacity a little with a subquery. The concept is there but some tweaking will be needed to get something meaningful like overcomitted capacity in percentage.
SELECT
round(sum(volume.size_mb/1000)) AS 'Committed (GB)'
FROM
cm_storage.volume AS volume
WHERE
volume.aggregate_id IN (SELECT
volume.aggregate_id AS 'Aggregate ID'
FROM
cm_storage.volume AS volume
WHERE
volume.name ='${volume}')
Thank you,
Lawrence