@Richard
It looks like Sheel has a workable option for you, but I figured I would throw in mine for reference. I am using this strictly for SnapMirror, but I think it will work for your purposes since the peering should be the same. If not, hopefully a little tweaking would get it there. My standard disclaimer: I am not a SQL query guru by any stretch, but at least this seems to work for me.
For the peered cluster:
SELECT
dest_cluster.name AS "Destination Custer"
FROM
cm_storage.vserver_peer,
cm_storage.cluster src_cluster,
cm_storage.vserver src_vserver,
cm_storage.cluster dest_cluster,
cm_storage.vserver dest_vserver
WHERE
vserver_peer.peer_vserver_id = src_vserver.id
AND vserver_peer.vserver_id = dest_vserver.id
AND dest_vserver.cluster_id = dest_cluster.id
AND vserver_peer.peer_state = 'peered'
AND vserver_peer.peer_vserver_local_name = '${sourcesvm}'
AND dest_vserver.is_repository IS NOT TRUE
AND (
dest_vserver.type = 'cluster'
OR dest_vserver.type = 'data'
)
AND dest_vserver.admin_state='running'
GROUP BY
dest_cluster.name ASC
For the peered SVM:
SELECT
dest_vserver.name AS "Destination SVM"
FROM
cm_storage.vserver_peer,
cm_storage.cluster src_cluster,
cm_storage.vserver src_vserver,
cm_storage.cluster dest_cluster,
cm_storage.vserver dest_vserver
WHERE
vserver_peer.peer_vserver_id = src_vserver.id
AND vserver_peer.vserver_id = dest_vserver.id
AND vserver_peer.peer_state = 'peered'
AND vserver_peer.peer_vserver_local_name = '${sourcesvm}'
AND dest_vserver.is_repository IS NOT TRUE
AND (
dest_vserver.type = 'cluster'
OR dest_vserver.type = 'data'
)
AND dest_vserver.admin_state='running'
GROUP BY
dest_vserver.name ASC
And an aggregate selection based on those showing only what that SVM can see, which may have way more info than you need (this assumes peered cluster variable of $destcluster and peered SVM variable of $destsvm) – I normally use Search or Define steps to determine aggregates anymore:
SELECT
aggregate.name AS 'Aggregate Name',
node.name AS ' Node',
aggregate.size_mb/1048576 AS 'Total Size (TB)',
aggregate.used_size_mb/1048576 AS 'Used Size (TB)',
aggregate.available_size_mb/1048576 AS 'Available Size (TB)',
IFNULL(aggregate.volume_count,
0) AS 'Volume Count',
REPLACE(disk_info_table.disk_type,
',',
' and ') AS 'Disk Type',
IF (aggregate.is_hybrid IS NULL,
'Not available',
IF (aggregate.is_hybrid,
'True',
'False')) AS 'Is FlashPool'
FROM
cm_storage.cluster,
cm_storage.node,
cm_storage.vserver,
(
SELECT
GROUP_CONCAT(DISTINCT(disk.type)) AS disk_type,
disk_aggr.aggregate_id AS aggr_id
FROM
cm_storage.disk DISK,
cm_storage.disk_aggregate disk_aggr
WHERE
disk_aggr.disk_id = disk.id
GROUP BY
disk_aggr.aggregate_id) AS disk_info_table,
cm_storage.aggregate
WHERE
cluster.name = '${destcluster}'
AND node.cluster_id = cluster.id
AND aggregate.node_id = node.id
AND aggregate.name NOT LIKE '%aggr0%'
AND (
aggregate.has_local_root IS NULL || aggregate.has_local_root = 0
)
AND (
aggregate.has_partner_root IS NULL || aggregate.has_partner_root = 0
)
AND disk_info_table.aggr_id = aggregate.id
AND vserver.name = '${destsvm}'
AND (
vserver.restricted_aggregate_count = 0 || aggregate.id IN (
SELECT
aggregate_id
FROM
cm_storage.vserver_allowed_aggregate
WHERE
vserver_id = vserver.id
AND vserver.cluster_id = cluster.id
)
)
ORDER BY
aggregate.name ASC,
node.name,
aggregate.size_mb,
aggregate.used_size_mb,
aggregate.available_size_mb,
disk_info_table.disk_type
Hopefully there is some useful info in there.
-Matt