pmcf 1.6.1 → 1.6.2
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/model.mjs +33 -38
- package/types/model.d.mts +2 -1
package/package.json
CHANGED
package/src/model.mjs
CHANGED
|
@@ -100,6 +100,10 @@ export class Base {
|
|
|
100
100
|
return object;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
error(...args) {
|
|
104
|
+
console.error(`${this.toString()}:`, ...args);
|
|
105
|
+
}
|
|
106
|
+
|
|
103
107
|
toString() {
|
|
104
108
|
return this.typeName + ":" + (this.owner?.name || "") + "/" + this.name;
|
|
105
109
|
}
|
|
@@ -144,43 +148,32 @@ export class Owner extends Base {
|
|
|
144
148
|
}
|
|
145
149
|
|
|
146
150
|
addBridge(network, destinationNetworks) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
bridge.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
console.log(
|
|
161
|
-
"REPLACE",
|
|
162
|
-
network.name,
|
|
163
|
-
[...bridge].map(n => n.name||`(${n})`)
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
break;
|
|
151
|
+
if (destinationNetworks) {
|
|
152
|
+
let bridge;
|
|
153
|
+
|
|
154
|
+
for (bridge of this.#bridges) {
|
|
155
|
+
if (bridge.has(network.name)) {
|
|
156
|
+
bridge.delete(network.name);
|
|
157
|
+
bridge.add(network);
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (bridge.has(network)) {
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
167
164
|
}
|
|
168
165
|
|
|
169
|
-
if (bridge
|
|
170
|
-
|
|
166
|
+
if (!bridge) {
|
|
167
|
+
bridge = new Set([network]);
|
|
168
|
+
this.#bridges.add(bridge);
|
|
171
169
|
}
|
|
172
|
-
}
|
|
173
170
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
171
|
+
for (const name of destinationNetworks) {
|
|
172
|
+
bridge.add(this.network(name) || name);
|
|
173
|
+
}
|
|
178
174
|
|
|
179
|
-
|
|
180
|
-
bridge.add(this.network(name) || name);
|
|
175
|
+
return bridge;
|
|
181
176
|
}
|
|
182
|
-
|
|
183
|
-
return bridge;
|
|
184
177
|
}
|
|
185
178
|
|
|
186
179
|
addSubnet(subnet) {
|
|
@@ -200,7 +193,7 @@ export class Owner extends Base {
|
|
|
200
193
|
...super.toJSON(),
|
|
201
194
|
networks: [...this.#networks.keys()].sort(),
|
|
202
195
|
subnets: [...this.#subnets.keys()].sort(),
|
|
203
|
-
bridges: [...this.#bridges
|
|
196
|
+
bridges: [...this.#bridges].map(b => bridgeToJSON(b)),
|
|
204
197
|
hosts: [...this.#hosts.keys()].sort()
|
|
205
198
|
};
|
|
206
199
|
}
|
|
@@ -440,9 +433,7 @@ export class Network extends Owner {
|
|
|
440
433
|
|
|
441
434
|
owner.addNetwork(this);
|
|
442
435
|
|
|
443
|
-
|
|
444
|
-
this.bridge = owner.addBridge(this, bridges);
|
|
445
|
-
}
|
|
436
|
+
this.bridge = owner.addBridge(this, bridges);
|
|
446
437
|
}
|
|
447
438
|
|
|
448
439
|
get ipv4_netmask() {
|
|
@@ -557,11 +548,11 @@ export class Host extends Base {
|
|
|
557
548
|
if (iface.network) {
|
|
558
549
|
const network = owner.network(iface.network);
|
|
559
550
|
|
|
560
|
-
if (
|
|
561
|
-
console.error(`${this.toString()}: Missing network`, iface.network);
|
|
562
|
-
} else {
|
|
551
|
+
if (network) {
|
|
563
552
|
iface.network = network;
|
|
564
553
|
network.addHost(this);
|
|
554
|
+
} else {
|
|
555
|
+
this.error("Missing network", iface.network);
|
|
565
556
|
}
|
|
566
557
|
}
|
|
567
558
|
}
|
|
@@ -849,3 +840,7 @@ function extractFrom(object, propertyNames) {
|
|
|
849
840
|
}
|
|
850
841
|
return json;
|
|
851
842
|
}
|
|
843
|
+
|
|
844
|
+
function bridgeToJSON(bridge) {
|
|
845
|
+
return [...bridge].map(n => n.name || `(${n})`).sort();
|
|
846
|
+
}
|
package/types/model.d.mts
CHANGED
|
@@ -18,6 +18,7 @@ export class Base {
|
|
|
18
18
|
set directory(directory: any);
|
|
19
19
|
get directory(): any;
|
|
20
20
|
expand(object: any): any;
|
|
21
|
+
error(...args: any[]): void;
|
|
21
22
|
toString(): string;
|
|
22
23
|
get propertyNames(): string[];
|
|
23
24
|
toJSON(): {};
|
|
@@ -36,7 +37,7 @@ export class Owner extends Base {
|
|
|
36
37
|
toJSON(): {
|
|
37
38
|
networks: any[];
|
|
38
39
|
subnets: any[];
|
|
39
|
-
bridges: any[];
|
|
40
|
+
bridges: any[][];
|
|
40
41
|
hosts: any[];
|
|
41
42
|
};
|
|
42
43
|
#private;
|