pmcf 6.60.10 → 6.60.12

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/README.md CHANGED
@@ -81,33 +81,32 @@ generates config packages for:
81
81
  * [domainNames](#domainnames)
82
82
  * [InitializationContext](#initializationcontext)
83
83
  * [Parameters](#parameters-14)
84
- * [SkeletonNetworkInterface](#skeletonnetworkinterface)
85
- * [networkAddresses](#networkaddresses)
86
- * [Parameters](#parameters-15)
87
84
  * [Interface](#interface)
88
85
  * [zones](#zones)
89
86
  * [addressesStatement](#addressesstatement)
90
- * [Parameters](#parameters-16)
87
+ * [Parameters](#parameters-15)
91
88
  * [SystemdJournalRemoteService](#systemdjournalremoteservice)
92
89
  * [Properties](#properties)
93
90
  * [systemdConfigs](#systemdconfigs)
94
- * [Parameters](#parameters-17)
91
+ * [Parameters](#parameters-16)
95
92
  * [SystemdJournalUploadService](#systemdjournaluploadservice)
96
93
  * [Properties](#properties-1)
97
94
  * [systemdConfigs](#systemdconfigs-1)
98
- * [Parameters](#parameters-18)
95
+ * [Parameters](#parameters-17)
99
96
  * [NetworkAddress](#networkaddress)
100
- * [Parameters](#parameters-19)
97
+ * [Parameters](#parameters-18)
101
98
  * [subnet](#subnet)
102
99
  * [networkInterface](#networkinterface)
103
100
  * [address](#address)
104
101
  * [addresses](#addresses)
105
- * [Parameters](#parameters-20)
102
+ * [Parameters](#parameters-19)
106
103
  * [cidrAddresses](#cidraddresses)
107
- * [Parameters](#parameters-21)
104
+ * [Parameters](#parameters-20)
105
+ * [SkeletonNetworkInterface](#skeletonnetworkinterface)
106
+ * [networkAddresses](#networkaddresses)
107
+ * [Parameters](#parameters-21)
108
108
  * [families](#families)
109
109
  * [secretName](#secretname)
110
- * [directHosts](#directhosts)
111
110
  * [subnetForAddress](#subnetforaddress)
112
111
  * [Parameters](#parameters-22)
113
112
  * [ServiceType](#servicetype)
@@ -308,18 +307,6 @@ Keeps track of all in flight object creations and loose ends during config initi
308
307
 
309
308
  * `directory` (optional, default `"/"`)
310
309
 
311
- ## SkeletonNetworkInterface
312
-
313
- **Extends Interface**
314
-
315
- ### networkAddresses
316
-
317
- #### Parameters
318
-
319
- * `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `n=>true`)
320
-
321
- Returns **Iterable<[NetworkAddress](#networkaddress)>**&#x20;
322
-
323
310
  ## Interface
324
311
 
325
312
  **Extends ServiceOwner**
@@ -413,6 +400,18 @@ Returns **Iterable<[string](https://developer.mozilla.org/docs/Web/JavaScript/Re
413
400
 
414
401
  Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>**&#x20;
415
402
 
403
+ ## SkeletonNetworkInterface
404
+
405
+ **Extends Interface**
406
+
407
+ ### networkAddresses
408
+
409
+ #### Parameters
410
+
411
+ * `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `n=>true`)
412
+
413
+ Returns **Iterable<[NetworkAddress](#networkaddress)>**&#x20;
414
+
416
415
  ## families
417
416
 
418
417
  Returns **[Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>**&#x20;
@@ -421,10 +420,6 @@ Returns **[Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Glob
421
420
 
422
421
  Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
423
422
 
424
- ## directHosts
425
-
426
- hosts we own direcly.
427
-
428
423
  ## subnetForAddress
429
424
 
430
425
  ### Parameters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "6.60.10",
3
+ "version": "6.60.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -45,12 +45,6 @@ import {
45
45
  } from "./dns-utils.mjs";
46
46
 
47
47
  export class credential extends base {
48
- static attributes = {
49
- systemdCredential: {
50
- ...boolean_attribute_writable_false,
51
- name: "systemdCredential"
52
- }
53
- };
54
48
  static {
55
49
  addType(this);
56
50
  }
@@ -289,7 +283,7 @@ export class CoreService extends base {
289
283
  const seen = new Set();
290
284
 
291
285
  for (const [name, cred] of this.credentials) {
292
- if (cred.systemdCredential && !seen.has(name)) {
286
+ if (cred.tags.has(name) && !seen.has(name)) {
293
287
  seen.add(name);
294
288
  lines.push(
295
289
  `LoadCredentialEncrypted=${name}:/etc/credstore.encrypted/${name}`
package/src/host.mjs CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  string_attribute_writable,
7
7
  number_attribute_writable,
8
8
  priority_attribute,
9
+ enum_string_attribute_writable,
9
10
  asArray
10
11
  } from "pacc";
11
12
  import { cidrAddresses, addresses, addType, assign } from "pmcf";
@@ -26,14 +27,14 @@ export class host extends ServiceOwner {
26
27
  ...networkAddressAttributes,
27
28
  networkInterfaces: networkInterfaces_attribute,
28
29
  os: {
29
- ...string_attribute_writable,
30
+ ...enum_string_attribute_writable,
30
31
  name: "os",
31
32
  values: new Set(["osx", "windows", "linux"])
32
33
  },
33
34
  id: { ...string_attribute_writable, name: "id" },
34
35
  distribution: { ...string_attribute_writable, name: "distribution" },
35
36
  deployment: {
36
- ...string_attribute_writable,
37
+ ...enum_string_attribute_writable,
37
38
  name: "deployment",
38
39
  values: new Set(["production", "development"])
39
40
  },
@@ -43,7 +44,7 @@ export class host extends ServiceOwner {
43
44
  vendor: { ...string_attribute_writable, name: "vendor" },
44
45
  keymap: { ...string_attribute_writable, name: "keymap" },
45
46
  chassis: {
46
- ...string_attribute_writable,
47
+ ...enum_string_attribute_writable,
47
48
  name: "chassis",
48
49
  values: new Set([
49
50
  "phone",
@@ -62,7 +63,7 @@ export class host extends ServiceOwner {
62
63
  ])
63
64
  },
64
65
  architecture: {
65
- ...string_attribute_writable,
66
+ ...enum_string_attribute_writable,
66
67
  name: "architecture",
67
68
  values: new Set(["x86", "x86_64", "aarch64", "armv7", "riscv"])
68
69
  },
@@ -470,8 +470,13 @@ export class kea extends CoreService {
470
470
 
471
471
  const packageData = await this.preparePackage(dir);
472
472
 
473
+ asArray(this.keys).forEach(key => {
474
+ this.credentials.set(key.name, new credential(this,{name: key.name, algorithm: key.algorithm}))
475
+ });
476
+
473
477
  await this.writeSystemdCredentialConfig(dir, "kea-dhcp4.service");
474
478
  await this.writeSystemdCredentialConfig(dir, "kea-dhcp6.service");
479
+ await this.writeSystemdCredentialConfig(dir, "kea-dhcp-ddns.service");
475
480
 
476
481
  for (const [name, data] of Object.entries({
477
482
  "kea-dhcp-ddns": ddns,
package/src/utils.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { writeFile, mkdir } from "node:fs/promises";
2
2
  import { join, dirname, basename } from "node:path";
3
+ import { leafValues } from "pacc";
3
4
 
4
5
  export function yesno(flag) {
5
6
  return flag ? "yes" : "no";
@@ -36,17 +37,12 @@ export function domainFromDominName(domainName, defaultDomain) {
36
37
  }
37
38
 
38
39
  export async function writeLines(dir, name, ...lines) {
39
- const data = lines
40
- .flat()
41
- .filter(line => line !== undefined)
42
- .map(l => l + "\n")
43
- .join("");
44
-
45
40
  const full = join(dir, name);
46
41
  dir = dirname(full);
47
42
  name = basename(full);
48
43
  await mkdir(dir, { recursive: true });
49
44
 
45
+ const data = [...leafValues(lines)].map(l => l + "\n").join("");
50
46
  return writeFile(join(dir, name), data, "utf8");
51
47
  }
52
48