Validate demotion successor against peer map
This commit is contained in:
@@ -37,7 +37,13 @@ runtime_state = {
|
||||
}
|
||||
|
||||
result = plugin.demote_prepare(
|
||||
{"PACEMAKER_NODE_NAME": "david-eve"},
|
||||
{
|
||||
"PACEMAKER_NODE_NAME": "david-eve",
|
||||
"PG_REPLICATION_PEERS": (
|
||||
"david-prodesk=192.168.1.4:5432,"
|
||||
"david-eve=192.168.1.3:5432"
|
||||
),
|
||||
},
|
||||
runtime_state,
|
||||
{},
|
||||
)
|
||||
@@ -47,6 +53,9 @@ assert result["ready"] is False
|
||||
assert result["identity_validated"] is True
|
||||
assert result["reason"] == "database_checks_pending"
|
||||
assert result["checks"]["database_checks"] is False
|
||||
assert result["checks"]["peer_map"] is True
|
||||
assert result["successor_host"] == "192.168.1.4"
|
||||
assert result["successor_port"] == 5432
|
||||
assert result["mutation"] is False
|
||||
assert result["successor_node"] == "david-prodesk"
|
||||
print("valid_prepare accepted")
|
||||
@@ -90,3 +99,28 @@ print("missing_successor rejected")
|
||||
|
||||
print()
|
||||
print("DEMOTE_PREPARE_TEST_PASS=1")
|
||||
|
||||
result = plugin.demote_prepare(
|
||||
{
|
||||
"PACEMAKER_NODE_NAME": "david-eve",
|
||||
"PG_REPLICATION_PEERS": (
|
||||
"david-macbookpro=192.168.1.5:5432"
|
||||
),
|
||||
},
|
||||
{
|
||||
"postgresql": {
|
||||
"notification": {
|
||||
"type": "pre",
|
||||
"operation": "demote",
|
||||
"demote_uname": "david-eve",
|
||||
"promote_uname": "david-prodesk",
|
||||
"received_at": time.time(),
|
||||
},
|
||||
},
|
||||
},
|
||||
{},
|
||||
)
|
||||
|
||||
assert result["ocf_rc"] == 1
|
||||
assert result["reason"] == "successor_not_configured"
|
||||
print("unconfigured_successor rejected")
|
||||
|
||||
Reference in New Issue
Block a user