@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
61 lines • 4.48 kB
JavaScript
;
/**
* Runs the Cluster Configuration
* @packageDocumentation
*
* @version 0.0.0-alpha.0
* @date 2020-04-18
* @author Mittag, Jörg (Lawo) <joerg.mittag@lawo.com>
* @license SPDX-License-Identifier: MIT
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.runClusterConfig = void 0;
/**
* Runs the Cluster Configuration
*
* @param config The DMV Configuration
* @param master An open VMatrix connection to the cluster master
*/
async function runClusterConfig({ cluster: { communication, sources }, nodes }, master) {
console.log('Configuring Cluster');
let idx = -1;
for (const { hostname } of nodes) {
idx++;
await master.cluster.global.configuration.nodes.create_row({ name: hostname || `Node ${idx}`, index: idx });
}
// await Promise.all(
// nodes.map(
// ({ hostname }, idx) =>
// master.cluster.global.configuration.nodes.create_row({ "name": hostname ? hostname : `Node ${idx}`, "index": idx })
// )
// );
await Promise.all(nodes.flatMap(({ clusterIp }, idx) => [
master.cluster.global.configuration.nodes.row(idx).mode.write(idx === 0 ? 'MASTER' : 'SLAVE'),
master.cluster.global.configuration.nodes.row(idx).ctrl_ip_address.write(clusterIp),
]));
await Promise.all([
master.cluster.global.configuration.parameters.addresses.ctrl_mcast_addr.write(communication.addresses.control),
communication.addresses.heads ? master.cluster.global.configuration.parameters.addresses.multiviewers_heads_addr_first.write(communication.addresses.heads.red) : Promise.resolve(),
communication.addresses.heads ? master.cluster.global.configuration.parameters.addresses.multiviewers_heads_addr_inc.write(communication.addresses.heads.inc) : Promise.resolve(),
communication.addresses.heads?.blue ? master.cluster.global.configuration.parameters.addresses.secondary_multiviewers_heads_addr_first.write(communication.addresses.heads.blue) : Promise.resolve(),
communication.addresses.heads ? master.cluster.global.configuration.parameters.addresses.secondary_multiviewers_heads_addr_inc.write(communication.addresses.heads.inc) : Promise.resolve(),
communication.addresses.mipmaps ? master.cluster.global.configuration.parameters.addresses.mipmaps_mcast_addr_first.write(communication.addresses.mipmaps.red) : Promise.resolve(),
communication.addresses.mipmaps ? master.cluster.global.configuration.parameters.addresses.mipmaps_mcast_addr_inc.write(communication.addresses.mipmaps.inc) : Promise.resolve(),
communication.addresses.mipmaps?.blue ? master.cluster.global.configuration.parameters.addresses.secondary_mipmaps_mcast_addr_first.write(communication.addresses.mipmaps.blue) : Promise.resolve(),
communication.addresses.mipmaps ? master.cluster.global.configuration.parameters.addresses.secondary_mipmaps_mcast_addr_inc.write(communication.addresses.mipmaps.inc) : Promise.resolve(),
master.cluster.global.configuration.parameters.routing.ip_outs_ports.write(communication.routing.heads ?? 'PORTS_ALL_SPS'),
master.cluster.global.configuration.parameters.routing.mipmaps_ins_ports.write(communication.routing.mipmaps?.in ?? 'PORTS_ALL_SPS'),
master.cluster.global.configuration.parameters.routing.mipmaps_outs_ports.write(communication.routing.mipmaps?.out ?? 'PORTS_ALL_SPS'),
master.cluster.global.configuration.parameters.routing.ip_srcs_ports.write(communication.routing.sources),
master.cluster.global.configuration.parameters.offsets.srcs_i_p_2110.write(sources.offsets.video2110_20),
master.cluster.global.configuration.parameters.offsets.srcs_i_p_2022.write(sources.offsets.video2022_6),
master.cluster.global.configuration.parameters.offsets.srcs_external_mipmaps.write(sources.offsets.mipmaps),
master.cluster.global.configuration.parameters.offsets.srcs_multiviewers_heads.write(sources.offsets.heads),
master.cluster.global.configuration.parameters.offsets.srcs_s_d_i.write(sources.offsets.sdi),
master.cluster.global.configuration.parameters.offsets.srcs_per_node_s_d_i.write(sources.offsets.sdiPerNode.in),
master.cluster.global.configuration.parameters.offsets.outs_per_node_s_d_i.write(sources.offsets.sdiPerNode.out),
]);
}
exports.runClusterConfig = runClusterConfig;
exports.default = runClusterConfig;
//# sourceMappingURL=cluster.js.map