pmcf 6.60.0 → 6.60.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/README.md CHANGED
@@ -81,30 +81,30 @@ 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
110
  * [directHosts](#directhosts)
@@ -308,18 +308,6 @@ Keeps track of all in flight object creations and loose ends during config initi
308
308
 
309
309
  * `directory` (optional, default `"/"`)
310
310
 
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
311
  ## Interface
324
312
 
325
313
  **Extends ServiceOwner**
@@ -413,6 +401,18 @@ Returns **Iterable<[string](https://developer.mozilla.org/docs/Web/JavaScript/Re
413
401
 
414
402
  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
403
 
404
+ ## SkeletonNetworkInterface
405
+
406
+ **Extends Interface**
407
+
408
+ ### networkAddresses
409
+
410
+ #### Parameters
411
+
412
+ * `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `n=>true`)
413
+
414
+ Returns **Iterable<[NetworkAddress](#networkaddress)>**&#x20;
415
+
416
416
  ## families
417
417
 
418
418
  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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "6.60.0",
3
+ "version": "6.60.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -22,6 +22,7 @@ import {
22
22
  HTTPEndpoint,
23
23
  unix_endpoint
24
24
  } from "pmcf";
25
+ import { writeLines } from "./utils.mjs";
25
26
  import { addType } from "./type.mjs";
26
27
  import { FAMILY_UNIX, FAMILY_DNS } from "./constants.mjs";
27
28
  import {
@@ -101,12 +102,16 @@ export class CoreService extends base {
101
102
  _weight;
102
103
  _port;
103
104
  _systemdService;
104
- credentials = new Map();
105
+ _credentials = new Map();
105
106
 
106
107
  toString() {
107
108
  return `${this.fullName}(${this.type})`;
108
109
  }
109
110
 
111
+ get credentials() {
112
+ return this.mapFromDirections(["this", "extends"], "_credentials");
113
+ }
114
+
110
115
  get network() {
111
116
  return this.owner.network;
112
117
  }
@@ -280,8 +285,13 @@ export class CoreService extends base {
280
285
 
281
286
  async writeSystemdCredentialConfig(dir, name) {
282
287
  let lines = [];
288
+
289
+ const seen = new Set();
290
+
283
291
  for (const [name, cred] of this.credentials) {
284
- if (cred.systemdCredential) {
292
+ //console.log(this.fullName,name);
293
+ if (cred.systemdCredential && !seen.has(name)) {
294
+ seen.add(name);
285
295
  lines.push(
286
296
  `LoadCredentialEncrypted=${name}:/etc/credstore.encrypted/${name}`
287
297
  );
@@ -292,6 +302,7 @@ export class CoreService extends base {
292
302
  await writeLines(
293
303
  join(dir, `etc/systemd/system/${name}.service.d`),
294
304
  `credentials.conf`,
305
+ "[Service]",
295
306
  lines
296
307
  );
297
308
  }
package/src/utils.mjs CHANGED
@@ -35,24 +35,13 @@ export function domainFromDominName(domainName, defaultDomain) {
35
35
  return defaultDomain;
36
36
  }
37
37
 
38
- export async function writeLines(dir, name, lines) {
39
- let data;
40
-
41
- switch (typeof lines) {
42
- case "undefined":
43
- return;
44
- case "string":
45
- data = lines;
46
- break;
47
-
48
- default:
49
- data = [...lines]
38
+ export async function writeLines(dir, name, ...lines) {
39
+ const data = lines
50
40
  .flat()
51
41
  .filter(line => line !== undefined)
52
42
  .map(l => l + "\n")
53
43
  .join("");
54
- }
55
-
44
+
56
45
  const full = join(dir, name);
57
46
  dir = dirname(full);
58
47
  name = basename(full);