pmcf 6.64.2 → 6.64.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/services/keepalived.mjs +12 -12
package/package.json
CHANGED
|
@@ -13,6 +13,11 @@ import { CoreService, serviceEndpoints } from "../core-service.mjs";
|
|
|
13
13
|
|
|
14
14
|
import { writeLines } from "../utils.mjs";
|
|
15
15
|
|
|
16
|
+
const ROLE_PRIORITIES = {
|
|
17
|
+
master: 0,
|
|
18
|
+
backup: -20
|
|
19
|
+
};
|
|
20
|
+
|
|
16
21
|
export class keepalive_cluster_member extends core {
|
|
17
22
|
static attributes = {
|
|
18
23
|
cluster: {
|
|
@@ -23,7 +28,7 @@ export class keepalive_cluster_member extends core {
|
|
|
23
28
|
role: {
|
|
24
29
|
...enum_string_attribute_writable,
|
|
25
30
|
name: "role",
|
|
26
|
-
values: new Set(
|
|
31
|
+
values: new Set(Object.keys(ROLE_PRIORITIES))
|
|
27
32
|
}
|
|
28
33
|
};
|
|
29
34
|
static key = "cluster";
|
|
@@ -51,6 +56,10 @@ export class keepalive_cluster_member extends core {
|
|
|
51
56
|
get address() {
|
|
52
57
|
return this.owner.owner.address;
|
|
53
58
|
}
|
|
59
|
+
|
|
60
|
+
get priority() {
|
|
61
|
+
return this.owner.priority + ROLE_PRIORITIES[this.role];
|
|
62
|
+
}
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
export class keepalived extends CoreService {
|
|
@@ -68,7 +77,6 @@ export class keepalived extends CoreService {
|
|
|
68
77
|
}
|
|
69
78
|
|
|
70
79
|
clusters = new Set();
|
|
71
|
-
checkInterval = 60;
|
|
72
80
|
|
|
73
81
|
async *preparePackages(dir) {
|
|
74
82
|
const packageData = await this.preparePackage(dir);
|
|
@@ -97,7 +105,6 @@ export class keepalived extends CoreService {
|
|
|
97
105
|
|
|
98
106
|
for (const clusterMember of this.clusters.values()) {
|
|
99
107
|
const cluster = clusterMember.cluster;
|
|
100
|
-
const host = cluster.host;
|
|
101
108
|
const clusterName = cluster.name;
|
|
102
109
|
|
|
103
110
|
cfg.push(`vrrp_instance ${clusterName} {`);
|
|
@@ -123,20 +130,13 @@ export class keepalived extends CoreService {
|
|
|
123
130
|
|
|
124
131
|
cfg.push(` virtual_router_id ${cluster.id}`);
|
|
125
132
|
|
|
126
|
-
let reducedPrio = 0;
|
|
127
|
-
/*
|
|
128
|
-
let reducedPrio = cluster.masters.indexOf(ni);
|
|
129
|
-
if (reducedPrio < 0) {
|
|
130
|
-
reducedPrio = cluster.backups.indexOf(ni) + 5;
|
|
131
|
-
}
|
|
132
|
-
*/
|
|
133
133
|
const cred = new credential(this);
|
|
134
134
|
cred.name = `keepalived.${clusterName}.password`;
|
|
135
135
|
cred.localName = clusterName.toUpperCase() + "_PASSWORD";
|
|
136
136
|
cred._tags.add("keepalived.service");
|
|
137
137
|
this.credentials.set(cred.name, cred);
|
|
138
138
|
|
|
139
|
-
cfg.push(` priority ${
|
|
139
|
+
cfg.push(` priority ${clusterMember.priority}`);
|
|
140
140
|
cfg.push(" smtp_alert");
|
|
141
141
|
cfg.push(" advert_int 5");
|
|
142
142
|
cfg.push(" authentication {");
|
|
@@ -170,7 +170,7 @@ export class keepalived extends CoreService {
|
|
|
170
170
|
`services[types[${endpoint.type}]][0]`
|
|
171
171
|
);
|
|
172
172
|
|
|
173
|
-
console.log(member.fullName, endpoint.type, memberService?.fullName);
|
|
173
|
+
//console.log(member.fullName, endpoint.type, memberService?.fullName);
|
|
174
174
|
cfg.push(` real_server ${member.address} ${memberService.port} {`);
|
|
175
175
|
cfg.push(` weight ${memberService.weight}`);
|
|
176
176
|
|