polardbxengine/router/tests/component/data/metadata_3_secondaries_pass.js

79 lines
2.2 KiB
JavaScript

/**
* run 4 nodes on the current host
*
* - 1 PRIMARY
* - 3 SECONDARY
*
* via HTTP interface
*
* - MD_asked
* - primary_asked
* - health_asked
*/
var common_stmts = require("common_statements");
var gr_memberships = require("gr_memberships");
var gr_node_host = "127.0.0.1";
var group_replication_membership_online =
gr_memberships.nodes(gr_node_host, mysqld.global.gr_nodes);
var options = {
group_replication_membership: group_replication_membership_online,
};
// first node is PRIMARY
options.group_replication_primary_member = options.group_replication_membership[0][0];
// prepare the responses for common statements
var common_responses = common_stmts.prepare_statement_responses([
"select_port",
"router_select_schema_version",
], options);
// track the statements directly to allow the HTTP interface to query
// if they have been executed ("asked")
var router_select_metadata =
common_stmts.get("router_select_metadata", options);
var router_select_group_replication_primary_member =
common_stmts.get("router_select_group_replication_primary_member", options);
var router_select_group_membership_with_primary_mode =
common_stmts.get("router_select_group_membership_with_primary_mode", options);
if (mysqld.global.MD_asked == undefined) {
mysqld.global.MD_asked = false;
}
if (mysqld.global.primary_asked == undefined) {
mysqld.global.primary_asked = false;
}
if (mysqld.global.health_asked == undefined) {
mysqld.global.health_asked = false;
}
({
stmts: function (stmt) {
if (common_responses.hasOwnProperty(stmt)) {
return common_responses[stmt];
}
else if (stmt === router_select_metadata.stmt) {
mysqld.global.MD_asked = true;
return router_select_metadata;
}
else if (stmt === router_select_group_replication_primary_member.stmt) {
mysqld.global.primary_asked = true;
return router_select_group_replication_primary_member;
}
else if (stmt === router_select_group_membership_with_primary_mode.stmt) {
mysqld.global.health_asked = true;
return router_select_group_membership_with_primary_mode;
}
else {
return common_stmts.unknown_statement_response(stmt);
}
}
})