pmcf 3.10.25 → 3.11.0
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/bin/pmcf-info +2 -1
- package/package.json +5 -5
- package/src/base.mjs +32 -29
- package/src/cluster.mjs +3 -2
- package/src/host.mjs +3 -5
- package/src/location.mjs +1 -0
- package/src/network-interfaces/ethernet.mjs +1 -0
- package/src/network-interfaces/loopback.mjs +4 -6
- package/src/network-interfaces/network-interface.mjs +11 -2
- package/src/network-interfaces/tun.mjs +1 -1
- package/src/network-interfaces/wireguard.mjs +1 -1
- package/src/network-interfaces/wlan.mjs +1 -0
- package/src/network-support.mjs +8 -3
- package/src/network.mjs +2 -1
- package/src/owner.mjs +3 -1
- package/src/root.mjs +1 -3
- package/src/service-owner.mjs +11 -3
- package/src/service.mjs +4 -2
- package/src/services/bind.mjs +6 -3
- package/src/services/chrony.mjs +4 -6
- package/src/services/headscale.mjs +1 -1
- package/src/services/influxdb.mjs +1 -0
- package/src/services/kea.mjs +14 -12
- package/src/services/mosquitto.mjs +1 -0
- package/src/services/openldap.mjs +1 -0
- package/src/services/systemd-journal-remote.mjs +1 -1
- package/src/services/systemd-journal-upload.mjs +1 -0
- package/src/services/systemd-journal.mjs +2 -2
- package/src/services/systemd-resolved.mjs +8 -6
- package/src/services/systemd-timesyncd.mjs +7 -7
- package/src/subnet.mjs +3 -1
- package/src/types.mjs +16 -38
- package/types/base.d.mts +5 -3
- package/types/cluster.d.mts +56 -10
- package/types/extra-source-service.d.mts +510 -9
- package/types/host.d.mts +20 -7
- package/types/location.d.mts +71 -6
- package/types/network-interfaces/ethernet.d.mts +630 -26
- package/types/network-interfaces/loopback.d.mts +629 -27
- package/types/network-interfaces/network-interface.d.mts +628 -26
- package/types/network-interfaces/tun.d.mts +629 -27
- package/types/network-interfaces/wireguard.d.mts +629 -27
- package/types/network-interfaces/wlan.d.mts +947 -40
- package/types/network-support.d.mts +54 -11
- package/types/network.d.mts +324 -8
- package/types/owner.d.mts +35 -3
- package/types/root.d.mts +71 -8
- package/types/service-owner.d.mts +1 -0
- package/types/service.d.mts +363 -13
- package/types/services/bind.d.mts +706 -23
- package/types/services/chrony.d.mts +689 -15
- package/types/services/headscale.d.mts +689 -15
- package/types/services/influxdb.d.mts +527 -14
- package/types/services/kea.d.mts +539 -18
- package/types/services/mosquitto.d.mts +530 -15
- package/types/services/openldap.d.mts +524 -13
- package/types/services/systemd-journal-remote.d.mts +524 -14
- package/types/services/systemd-journal-upload.d.mts +524 -13
- package/types/services/systemd-journal.d.mts +524 -14
- package/types/services/systemd-resolved.d.mts +689 -15
- package/types/services/systemd-timesyncd.d.mts +763 -90
- package/types/subnet.d.mts +14 -0
- package/src/filter.mjs +0 -91
- package/types/filter.d.mts +0 -1
package/src/services/kea.mjs
CHANGED
|
@@ -23,6 +23,7 @@ const KeaServiceTypeDefinition = {
|
|
|
23
23
|
owners: ServiceTypeDefinition.owners,
|
|
24
24
|
extends: ServiceTypeDefinition,
|
|
25
25
|
priority: 0.1,
|
|
26
|
+
key: "name",
|
|
26
27
|
attributes: {
|
|
27
28
|
"ddns-send-updates": {
|
|
28
29
|
...boolean_attribute_writable_true,
|
|
@@ -154,11 +155,8 @@ export class KeaService extends Service {
|
|
|
154
155
|
console.log("kea", name, network.name);
|
|
155
156
|
|
|
156
157
|
const dnsServerEndpoints = serviceEndpoints(network, {
|
|
157
|
-
services:
|
|
158
|
-
|
|
159
|
-
priority: ">=300"
|
|
160
|
-
},
|
|
161
|
-
endpoints: endpoint => endpoint.networkInterface.kind !== "loopback"
|
|
158
|
+
services: 'type="dns" && priority >= 300',
|
|
159
|
+
endpoints: endpoint => endpoint.networkInterface?.kind !== "loopback"
|
|
162
160
|
});
|
|
163
161
|
|
|
164
162
|
const packageData = {
|
|
@@ -176,10 +174,11 @@ export class KeaService extends Service {
|
|
|
176
174
|
const peers = async family =>
|
|
177
175
|
(
|
|
178
176
|
await Array.fromAsync(
|
|
179
|
-
network.findServices(
|
|
180
|
-
type
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
network.findServices(
|
|
178
|
+
`type="kea" && priority>=${
|
|
179
|
+
this.priority < 100 ? this.priority : 100
|
|
180
|
+
}`
|
|
181
|
+
)
|
|
183
182
|
)
|
|
184
183
|
)
|
|
185
184
|
.sort(sortDescendingByPriority)
|
|
@@ -422,9 +421,12 @@ export class KeaService extends Service {
|
|
|
422
421
|
Dhcp4: {
|
|
423
422
|
...(await commonConfig("4")),
|
|
424
423
|
subnet4: subnets
|
|
425
|
-
.filter(
|
|
426
|
-
|
|
427
|
-
|
|
424
|
+
.filter(
|
|
425
|
+
s =>
|
|
426
|
+
s.family === "IPv4" &&
|
|
427
|
+
// TODO keep out tailscale
|
|
428
|
+
s.cidr !== "100.64.0.2/32"
|
|
429
|
+
)
|
|
428
430
|
.map((subnet, index) => {
|
|
429
431
|
return {
|
|
430
432
|
id: index + 1,
|
|
@@ -7,7 +7,7 @@ const SystemdJournalServiceTypeDefinition = {
|
|
|
7
7
|
owners: ServiceTypeDefinition.owners,
|
|
8
8
|
extends: ServiceTypeDefinition,
|
|
9
9
|
priority: 0.1,
|
|
10
|
-
|
|
10
|
+
key: "name",
|
|
11
11
|
service: {}
|
|
12
12
|
};
|
|
13
13
|
|
|
@@ -30,7 +30,7 @@ export class SystemdJournalService extends Service {
|
|
|
30
30
|
|
|
31
31
|
systemdConfigs(name) {
|
|
32
32
|
return {
|
|
33
|
-
serviceName: "systemd-journald",
|
|
33
|
+
serviceName: "systemd-journald",
|
|
34
34
|
configFileName: `etc/systemd/journal.conf.d/${name}.conf`,
|
|
35
35
|
content: [
|
|
36
36
|
"Journal",
|
|
@@ -12,7 +12,7 @@ const SystemdResolvedServiceTypeDefinition = {
|
|
|
12
12
|
owners: ServiceTypeDefinition.owners,
|
|
13
13
|
extends: ExtraSourceServiceTypeDefinition,
|
|
14
14
|
priority: 0.1,
|
|
15
|
-
|
|
15
|
+
key: "name",
|
|
16
16
|
service: {}
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -34,11 +34,13 @@ export class SystemdResolvedService extends ExtraSourceService {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
systemdConfigs(name) {
|
|
37
|
-
const options = (
|
|
37
|
+
const options = (lower, upper, limit) => {
|
|
38
38
|
return {
|
|
39
|
-
services:
|
|
39
|
+
services: `(type="dns" || type="bind") && priority>=${lower} && priority<=${upper}`,
|
|
40
40
|
endpoints: e =>
|
|
41
|
-
e.networkInterface
|
|
41
|
+
e.networkInterface &&
|
|
42
|
+
e.networkInterface.kind !== "loopback" &&
|
|
43
|
+
e.family !== "dns",
|
|
42
44
|
select: endpoint => endpoint.address,
|
|
43
45
|
join: " ",
|
|
44
46
|
limit
|
|
@@ -51,8 +53,8 @@ export class SystemdResolvedService extends ExtraSourceService {
|
|
|
51
53
|
content: [
|
|
52
54
|
"Resolve",
|
|
53
55
|
{
|
|
54
|
-
DNS: serviceEndpoints(this, options(
|
|
55
|
-
FallbackDNS: serviceEndpoints(this, options(
|
|
56
|
+
DNS: serviceEndpoints(this, options(300, 399, 4)),
|
|
57
|
+
FallbackDNS: serviceEndpoints(this, options(100, 199, 4)),
|
|
56
58
|
Domains: [...this.localDomains].join(" "),
|
|
57
59
|
DNSSEC: "no",
|
|
58
60
|
MulticastDNS: this.network.multicastDNS ? "yes" : "no",
|
|
@@ -8,11 +8,10 @@ import { addType } from "../types.mjs";
|
|
|
8
8
|
|
|
9
9
|
const SystemdTimesyncdServiceTypeDefinition = {
|
|
10
10
|
name: "systemd-timesyncd",
|
|
11
|
+
extends: ExtraSourceServiceTypeDefinition,
|
|
11
12
|
specializationOf: ServiceTypeDefinition,
|
|
12
13
|
owners: ServiceTypeDefinition.owners,
|
|
13
|
-
extends: ExtraSourceServiceTypeDefinition,
|
|
14
14
|
priority: 0.1,
|
|
15
|
-
attributes: {},
|
|
16
15
|
service: {}
|
|
17
16
|
};
|
|
18
17
|
|
|
@@ -34,10 +33,11 @@ export class SystemdTimesyncdService extends ExtraSourceService {
|
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
systemdConfigs(name) {
|
|
37
|
-
const options =
|
|
36
|
+
const options = (lower, upper) => {
|
|
38
37
|
return {
|
|
39
|
-
services: {
|
|
40
|
-
endpoints: e =>
|
|
38
|
+
services: `type='ntp' && priority >= ${lower} && priority <= ${upper}`,
|
|
39
|
+
endpoints: e =>
|
|
40
|
+
e.networkInterface && e.networkInterface.kind !== "loopback",
|
|
41
41
|
select: endpoint => endpoint.address,
|
|
42
42
|
join: " ",
|
|
43
43
|
limit: 2
|
|
@@ -50,8 +50,8 @@ export class SystemdTimesyncdService extends ExtraSourceService {
|
|
|
50
50
|
content: [
|
|
51
51
|
"Time",
|
|
52
52
|
{
|
|
53
|
-
NTP: serviceEndpoints(this, options(
|
|
54
|
-
FallbackNTP: serviceEndpoints(this, options(
|
|
53
|
+
NTP: serviceEndpoints(this, options(300, 399)),
|
|
54
|
+
FallbackNTP: serviceEndpoints(this, options(100, 199))
|
|
55
55
|
}
|
|
56
56
|
]
|
|
57
57
|
};
|
package/src/subnet.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
matchPrefixIP
|
|
8
8
|
} from "ip-utilties";
|
|
9
9
|
import { string_attribute, name_attribute, number_attribute } from "pacc";
|
|
10
|
+
import { networks_attribute } from "./network-support.mjs";
|
|
10
11
|
import { Base } from "./base.mjs";
|
|
11
12
|
import { addType } from "./types.mjs";
|
|
12
13
|
|
|
@@ -15,9 +16,10 @@ const SubnetTypeDefinition = {
|
|
|
15
16
|
owners: ["location", "owner", "network", "root"],
|
|
16
17
|
priority: 0.6,
|
|
17
18
|
constructWithIdentifierOnly: true,
|
|
19
|
+
key: "address",
|
|
18
20
|
attributes: {
|
|
19
21
|
address: name_attribute,
|
|
20
|
-
networks:
|
|
22
|
+
networks: networks_attribute,
|
|
21
23
|
prefixLength: number_attribute,
|
|
22
24
|
family: string_attribute
|
|
23
25
|
}
|
package/src/types.mjs
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
attributeIterator,
|
|
3
|
+
types,
|
|
4
|
+
oneOfType,
|
|
5
|
+
addType as paccAddType
|
|
6
|
+
} from "pacc";
|
|
3
7
|
import { addServiceTypes } from "./service-types.mjs";
|
|
4
8
|
export { types };
|
|
5
9
|
|
|
6
10
|
export function addType(clazz) {
|
|
7
11
|
const type = clazz.typeDefinition;
|
|
12
|
+
type.clazz = clazz;
|
|
8
13
|
|
|
9
14
|
if (type.specializationOf) {
|
|
10
15
|
type.specializationOf.specializations[type.name] = type;
|
|
@@ -14,52 +19,24 @@ export function addType(clazz) {
|
|
|
14
19
|
addServiceTypes({ [type.name]: type.service });
|
|
15
20
|
}
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
type.clazz = clazz;
|
|
22
|
+
paccAddType(type);
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
export function resolveTypeLinks() {
|
|
23
26
|
for (const type of Object.values(types)) {
|
|
27
|
+
if (typeof type.extends === "string") {
|
|
28
|
+
type.extends = types[type.extends];
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
if (type.owners) {
|
|
25
32
|
type.owners = type.owners.map(owner =>
|
|
26
33
|
typeof owner === "string" ? types[owner] : owner
|
|
27
34
|
);
|
|
28
|
-
} else {
|
|
29
|
-
type.owners = [];
|
|
30
|
-
}
|
|
31
|
-
for (const [path, attribute] of attributeIterator(type.attributes)) {
|
|
32
|
-
const name = path.join(".");
|
|
33
|
-
const ts = [];
|
|
34
|
-
|
|
35
|
-
for (const type of asArray(attribute.type)) {
|
|
36
|
-
if (typeof type === "string") {
|
|
37
|
-
if (baseTypes.has(type)) {
|
|
38
|
-
ts.push(type);
|
|
39
|
-
} else {
|
|
40
|
-
const t = types[type];
|
|
41
|
-
if (t) {
|
|
42
|
-
ts.push(t);
|
|
43
|
-
} else {
|
|
44
|
-
console.error("Unknown type", attribute.type, type.name, name);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
} else {
|
|
48
|
-
ts.push(type);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
attribute.type = ts;
|
|
52
|
-
|
|
53
|
-
if (attribute.isKey) {
|
|
54
|
-
type.identifier = { name, ...attribute };
|
|
55
|
-
}
|
|
56
35
|
}
|
|
57
|
-
}
|
|
58
36
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
type.identifier = type.extends.identifier;
|
|
37
|
+
for (const [path, attribute] of attributeIterator(type.attributes)) {
|
|
38
|
+
if (typeof attribute.type === "string") {
|
|
39
|
+
attribute.type = oneOfType(attribute.type);
|
|
63
40
|
}
|
|
64
41
|
}
|
|
65
42
|
}
|
|
@@ -67,6 +44,7 @@ export function resolveTypeLinks() {
|
|
|
67
44
|
|
|
68
45
|
export function typeFactory(type, owner, data) {
|
|
69
46
|
const factory = type.factoryFor?.(owner, data) || type.clazz;
|
|
47
|
+
//console.log(factory, type, owner, data);
|
|
70
48
|
const object = new factory(owner);
|
|
71
49
|
object.read(data);
|
|
72
50
|
owner.addObject(object);
|
package/types/base.d.mts
CHANGED
|
@@ -6,7 +6,7 @@ export class Base {
|
|
|
6
6
|
static get typeName(): string;
|
|
7
7
|
static get typeDefinition(): {
|
|
8
8
|
name: string;
|
|
9
|
-
|
|
9
|
+
key: string;
|
|
10
10
|
attributes: {
|
|
11
11
|
owner: {
|
|
12
12
|
type: string;
|
|
@@ -17,7 +17,7 @@ export class Base {
|
|
|
17
17
|
name: import("pacc").AttributeDefinition;
|
|
18
18
|
description: {
|
|
19
19
|
writable: boolean;
|
|
20
|
-
type:
|
|
20
|
+
type: object;
|
|
21
21
|
isKey: boolean;
|
|
22
22
|
mandatory: boolean;
|
|
23
23
|
collection: boolean;
|
|
@@ -27,9 +27,11 @@ export class Base {
|
|
|
27
27
|
default?: any;
|
|
28
28
|
set?: Function;
|
|
29
29
|
get?: Function;
|
|
30
|
+
prepareValue?: Function;
|
|
30
31
|
values?: Set<any>;
|
|
31
32
|
externalName?: string;
|
|
32
33
|
env?: string[] | string;
|
|
34
|
+
additionalValues?: object;
|
|
33
35
|
};
|
|
34
36
|
priority: import("pacc").AttributeDefinition;
|
|
35
37
|
directory: import("pacc").AttributeDefinition;
|
|
@@ -49,7 +51,7 @@ export class Base {
|
|
|
49
51
|
_directory: any;
|
|
50
52
|
_finalize: any;
|
|
51
53
|
_properties: any;
|
|
52
|
-
ownerFor(
|
|
54
|
+
ownerFor(attribute: any, data: any): any;
|
|
53
55
|
read(data: any, type?: any): void;
|
|
54
56
|
named(name: any): void;
|
|
55
57
|
typeNamed(typeName: any, name: any): any;
|
package/types/cluster.d.mts
CHANGED
|
@@ -7,7 +7,7 @@ export class Cluster extends Host {
|
|
|
7
7
|
priority: number;
|
|
8
8
|
extends: {
|
|
9
9
|
name: string;
|
|
10
|
-
|
|
10
|
+
key: string;
|
|
11
11
|
attributes: {
|
|
12
12
|
owner: {
|
|
13
13
|
type: string;
|
|
@@ -18,7 +18,7 @@ export class Cluster extends Host {
|
|
|
18
18
|
name: import("pacc").AttributeDefinition;
|
|
19
19
|
description: {
|
|
20
20
|
writable: boolean;
|
|
21
|
-
type:
|
|
21
|
+
type: object;
|
|
22
22
|
isKey: boolean;
|
|
23
23
|
mandatory: boolean;
|
|
24
24
|
collection: boolean;
|
|
@@ -28,9 +28,11 @@ export class Cluster extends Host {
|
|
|
28
28
|
default?: any;
|
|
29
29
|
set?: Function;
|
|
30
30
|
get?: Function;
|
|
31
|
+
prepareValue?: Function;
|
|
31
32
|
values?: Set<any>;
|
|
32
33
|
externalName?: string;
|
|
33
34
|
env?: string[] | string;
|
|
35
|
+
additionalValues?: object;
|
|
34
36
|
};
|
|
35
37
|
priority: import("pacc").AttributeDefinition;
|
|
36
38
|
directory: import("pacc").AttributeDefinition;
|
|
@@ -39,11 +41,25 @@ export class Cluster extends Host {
|
|
|
39
41
|
tags: import("pacc").AttributeDefinition;
|
|
40
42
|
};
|
|
41
43
|
};
|
|
44
|
+
key: string;
|
|
42
45
|
attributes: {
|
|
43
46
|
networks: {
|
|
44
47
|
type: string;
|
|
45
48
|
collection: boolean;
|
|
49
|
+
isKey: boolean;
|
|
46
50
|
writable: boolean;
|
|
51
|
+
mandatory: boolean;
|
|
52
|
+
private?: boolean;
|
|
53
|
+
depends?: string;
|
|
54
|
+
description?: string;
|
|
55
|
+
default?: any;
|
|
56
|
+
set?: Function;
|
|
57
|
+
get?: Function;
|
|
58
|
+
prepareValue?: Function;
|
|
59
|
+
values?: Set<any>;
|
|
60
|
+
externalName?: string;
|
|
61
|
+
env?: string[] | string;
|
|
62
|
+
additionalValues?: object;
|
|
47
63
|
};
|
|
48
64
|
hosts: {
|
|
49
65
|
type: string;
|
|
@@ -61,12 +77,26 @@ export class Cluster extends Host {
|
|
|
61
77
|
owners: string[];
|
|
62
78
|
priority: number;
|
|
63
79
|
constructWithIdentifierOnly: boolean;
|
|
80
|
+
key: string;
|
|
64
81
|
attributes: {
|
|
65
82
|
address: import("pacc").AttributeDefinition;
|
|
66
83
|
networks: {
|
|
67
84
|
type: string;
|
|
68
85
|
collection: boolean;
|
|
86
|
+
isKey: boolean;
|
|
69
87
|
writable: boolean;
|
|
88
|
+
mandatory: boolean;
|
|
89
|
+
private?: boolean;
|
|
90
|
+
depends?: string;
|
|
91
|
+
description?: string;
|
|
92
|
+
default?: any;
|
|
93
|
+
set?: Function;
|
|
94
|
+
get?: Function;
|
|
95
|
+
prepareValue?: Function;
|
|
96
|
+
values?: Set<any>;
|
|
97
|
+
externalName?: string;
|
|
98
|
+
env?: string[] | string;
|
|
99
|
+
additionalValues?: object;
|
|
70
100
|
};
|
|
71
101
|
prefixLength: import("pacc").AttributeDefinition;
|
|
72
102
|
family: import("pacc").AttributeDefinition;
|
|
@@ -83,7 +113,7 @@ export class Cluster extends Host {
|
|
|
83
113
|
locales: import("pacc").AttributeDefinition;
|
|
84
114
|
administratorEmail: {
|
|
85
115
|
writable: boolean;
|
|
86
|
-
type:
|
|
116
|
+
type: object;
|
|
87
117
|
isKey: boolean;
|
|
88
118
|
mandatory: boolean;
|
|
89
119
|
collection: boolean;
|
|
@@ -93,9 +123,11 @@ export class Cluster extends Host {
|
|
|
93
123
|
default?: any;
|
|
94
124
|
set?: Function;
|
|
95
125
|
get?: Function;
|
|
126
|
+
prepareValue?: Function;
|
|
96
127
|
values?: Set<any>;
|
|
97
128
|
externalName?: string;
|
|
98
129
|
env?: string[] | string;
|
|
130
|
+
additionalValues?: object;
|
|
99
131
|
};
|
|
100
132
|
};
|
|
101
133
|
})[];
|
|
@@ -106,7 +138,7 @@ export class Cluster extends Host {
|
|
|
106
138
|
owners: string[];
|
|
107
139
|
extends: {
|
|
108
140
|
name: string;
|
|
109
|
-
|
|
141
|
+
key: string;
|
|
110
142
|
attributes: {
|
|
111
143
|
owner: {
|
|
112
144
|
type: string;
|
|
@@ -117,7 +149,7 @@ export class Cluster extends Host {
|
|
|
117
149
|
name: import("pacc").AttributeDefinition;
|
|
118
150
|
description: {
|
|
119
151
|
writable: boolean;
|
|
120
|
-
type:
|
|
152
|
+
type: object;
|
|
121
153
|
isKey: boolean;
|
|
122
154
|
mandatory: boolean;
|
|
123
155
|
collection: boolean;
|
|
@@ -127,9 +159,11 @@ export class Cluster extends Host {
|
|
|
127
159
|
default?: any;
|
|
128
160
|
set?: Function;
|
|
129
161
|
get?: Function;
|
|
162
|
+
prepareValue?: Function;
|
|
130
163
|
values?: Set<any>;
|
|
131
164
|
externalName?: string;
|
|
132
165
|
env?: string[] | string;
|
|
166
|
+
additionalValues?: object;
|
|
133
167
|
};
|
|
134
168
|
priority: import("pacc").AttributeDefinition;
|
|
135
169
|
directory: import("pacc").AttributeDefinition;
|
|
@@ -138,6 +172,7 @@ export class Cluster extends Host {
|
|
|
138
172
|
tags: import("pacc").AttributeDefinition;
|
|
139
173
|
};
|
|
140
174
|
};
|
|
175
|
+
key: string;
|
|
141
176
|
attributes: {
|
|
142
177
|
networkInterfaces: {
|
|
143
178
|
type: string;
|
|
@@ -152,7 +187,7 @@ export class Cluster extends Host {
|
|
|
152
187
|
aliases: import("pacc").AttributeDefinition;
|
|
153
188
|
os: {
|
|
154
189
|
values: string[];
|
|
155
|
-
type:
|
|
190
|
+
type: object;
|
|
156
191
|
isKey: boolean;
|
|
157
192
|
writable: boolean;
|
|
158
193
|
mandatory: boolean;
|
|
@@ -163,14 +198,16 @@ export class Cluster extends Host {
|
|
|
163
198
|
default?: any;
|
|
164
199
|
set?: Function;
|
|
165
200
|
get?: Function;
|
|
201
|
+
prepareValue?: Function;
|
|
166
202
|
externalName?: string;
|
|
167
203
|
env?: string[] | string;
|
|
204
|
+
additionalValues?: object;
|
|
168
205
|
};
|
|
169
206
|
"machine-id": import("pacc").AttributeDefinition;
|
|
170
207
|
distribution: import("pacc").AttributeDefinition;
|
|
171
208
|
deployment: {
|
|
172
209
|
values: string[];
|
|
173
|
-
type:
|
|
210
|
+
type: object;
|
|
174
211
|
isKey: boolean;
|
|
175
212
|
writable: boolean;
|
|
176
213
|
mandatory: boolean;
|
|
@@ -181,8 +218,10 @@ export class Cluster extends Host {
|
|
|
181
218
|
default?: any;
|
|
182
219
|
set?: Function;
|
|
183
220
|
get?: Function;
|
|
221
|
+
prepareValue?: Function;
|
|
184
222
|
externalName?: string;
|
|
185
223
|
env?: string[] | string;
|
|
224
|
+
additionalValues?: object;
|
|
186
225
|
};
|
|
187
226
|
weight: import("pacc").AttributeDefinition;
|
|
188
227
|
serial: import("pacc").AttributeDefinition;
|
|
@@ -190,7 +229,7 @@ export class Cluster extends Host {
|
|
|
190
229
|
keymap: import("pacc").AttributeDefinition;
|
|
191
230
|
chassis: {
|
|
192
231
|
values: string[];
|
|
193
|
-
type:
|
|
232
|
+
type: object;
|
|
194
233
|
isKey: boolean;
|
|
195
234
|
writable: boolean;
|
|
196
235
|
mandatory: boolean;
|
|
@@ -201,12 +240,14 @@ export class Cluster extends Host {
|
|
|
201
240
|
default?: any;
|
|
202
241
|
set?: Function;
|
|
203
242
|
get?: Function;
|
|
243
|
+
prepareValue?: Function;
|
|
204
244
|
externalName?: string;
|
|
205
245
|
env?: string[] | string;
|
|
246
|
+
additionalValues?: object;
|
|
206
247
|
};
|
|
207
248
|
architecture: {
|
|
208
249
|
values: string[];
|
|
209
|
-
type:
|
|
250
|
+
type: object;
|
|
210
251
|
isKey: boolean;
|
|
211
252
|
writable: boolean;
|
|
212
253
|
mandatory: boolean;
|
|
@@ -217,8 +258,10 @@ export class Cluster extends Host {
|
|
|
217
258
|
default?: any;
|
|
218
259
|
set?: Function;
|
|
219
260
|
get?: Function;
|
|
261
|
+
prepareValue?: Function;
|
|
220
262
|
externalName?: string;
|
|
221
263
|
env?: string[] | string;
|
|
264
|
+
additionalValues?: object;
|
|
222
265
|
};
|
|
223
266
|
replaces: import("pacc").AttributeDefinition;
|
|
224
267
|
depends: import("pacc").AttributeDefinition;
|
|
@@ -232,7 +275,7 @@ export class Cluster extends Host {
|
|
|
232
275
|
isModel: import("pacc").AttributeDefinition;
|
|
233
276
|
hostName: {
|
|
234
277
|
writable: boolean;
|
|
235
|
-
type:
|
|
278
|
+
type: object;
|
|
236
279
|
isKey: boolean;
|
|
237
280
|
mandatory: boolean;
|
|
238
281
|
collection: boolean;
|
|
@@ -242,9 +285,11 @@ export class Cluster extends Host {
|
|
|
242
285
|
default?: any;
|
|
243
286
|
set?: Function;
|
|
244
287
|
get?: Function;
|
|
288
|
+
prepareValue?: Function;
|
|
245
289
|
values?: Set<any>;
|
|
246
290
|
externalName?: string;
|
|
247
291
|
env?: string[] | string;
|
|
292
|
+
additionalValues?: object;
|
|
248
293
|
};
|
|
249
294
|
cidrAddresses: import("pacc").AttributeDefinition;
|
|
250
295
|
cidrAddress: import("pacc").AttributeDefinition;
|
|
@@ -252,6 +297,7 @@ export class Cluster extends Host {
|
|
|
252
297
|
address: import("pacc").AttributeDefinition;
|
|
253
298
|
};
|
|
254
299
|
};
|
|
300
|
+
key: string;
|
|
255
301
|
attributes: {
|
|
256
302
|
routerId: import("pacc").AttributeDefinition;
|
|
257
303
|
masters: {
|