# Module cartridge.topology

Topology validation and filtering.

## Functions

### cluster_is_healthy ()

Check the cluster health. It is healthy if all instances are healthy.

The function is designed mostly for testing purposes.

Returns:

(boolean) true / false

## Local Functions

### get_leaders_orded (topology_cfg, replicaset_uuid, new_order)

Get full list of replicaset leaders.

Full list is composed of:

- New order array

- Initial order from topology_cfg (with no repetitions)

- All other servers in the replicaset, sorted by uuid, ascending

Neither `topology_cfg` nor `new_order` tables are modified. New order validity is ignored too.

Parameters:

- topology_cfg: (table)

- replicaset_uuid: (string)

- new_order: (optional table)

Returns:

({string,…}) array of leaders uuids

### validate (topology_new, topology_old)

Validate topology configuration.

Parameters:

- topology_new: (table)

- topology_old: (table)

Returns:

(boolean) true

Or

(nil)

(table) Error description

### find_server_by_uri (topology_cfg, uri)

Find the server in topology config.

(Added in v1.2.0-17)

Parameters:

- topology_cfg: (table)

- uri: (string)

Returns:

(nil or string) instance_uuid found

### refine_servers_uri (topology_cfg)

Merge servers URIs form topology_cfg with fresh membership status.

This function sustains cartridge operability in case of advertise_uri change. The uri map is composed basing on topology_cfg, but if some of them turns out to be dead, the member with corresponding payload.uuid is searched beyond.

(Added in v2.3.0-7)

Parameters:

- topology_cfg: (table)

Returns:

({[uuid]) = uri} with all servers except expelled ones.

### probe_missing_members (servers)

Send UDP ping to servers missing from membership table.

Parameters:

- servers: (table)

Returns:

(boolean) true

Or

(nil)

(table) Error description

### get_fullmesh_replication (topology_cfg, replicaset_uuid)

Get replication config to set up full mesh.

(Added in v1.2.0-17)

Parameters:

- topology_cfg: (table)

- replicaset_uuid: (string)

Returns:

(table)