Compare View
Commits (2)
Changes
Showing 4 changed files Side-by-side Diff
CHANGELOG.md
| ... | ... | @@ -4,8 +4,14 @@ All notable changes to this project will be documented in this file. Dates are d |
| 4 | 4 | |
| 5 | 5 | Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). |
| 6 | 6 | |
| 7 | +#### [v1.45.16](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.15...v1.45.16) | |
| 8 | + | |
| 9 | +- Catch e on using systemd-notify binary [`69b66c6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/69b66c6166070aa2cdaf4d09726e4c25f27996bb) | |
| 10 | + | |
| 7 | 11 | #### [v1.45.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.14...v1.45.15) |
| 8 | 12 | |
| 13 | +> 19 June 2024 | |
| 14 | + | |
| 9 | 15 | - Another method to notify systemd using systemd-notify binary [`51291f1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/51291f151035330867e287c720d6544b51312ed2) |
| 10 | 16 | |
| 11 | 17 | #### [v1.45.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.13...v1.45.14) |
package-lock.json
| 1 | 1 | { |
| 2 | 2 | "name": "komodo-sdk", |
| 3 | - "version": "1.45.15", | |
| 3 | + "version": "1.45.16", | |
| 4 | 4 | "lockfileVersion": 2, |
| 5 | 5 | "requires": true, |
| 6 | 6 | "packages": { |
| 7 | 7 | "": { |
| 8 | 8 | "name": "komodo-sdk", |
| 9 | - "version": "1.45.15", | |
| 9 | + "version": "1.45.16", | |
| 10 | 10 | "license": "ISC", |
| 11 | 11 | "dependencies": { |
| 12 | 12 | "array-unique": "^0.3.2", |
| ... | ... | @@ -37,8 +37,7 @@ |
| 37 | 37 | "tektrans-logger": "^1.2.5", |
| 38 | 38 | "uniqid": "^4.1.1", |
| 39 | 39 | "url-join": "^4.0.1", |
| 40 | - "uuid": "^9.0.0", | |
| 41 | - "which": "^4.0.0" | |
| 40 | + "uuid": "^9.0.0" | |
| 42 | 41 | }, |
| 43 | 42 | "devDependencies": { |
| 44 | 43 | "auto-changelog": "^2.4.0", |
| ... | ... | @@ -2116,14 +2115,6 @@ |
| 2116 | 2115 | "url": "https://github.com/sponsors/ljharb" |
| 2117 | 2116 | } |
| 2118 | 2117 | }, |
| 2119 | - "node_modules/isexe": { | |
| 2120 | - "version": "3.1.1", | |
| 2121 | - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", | |
| 2122 | - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", | |
| 2123 | - "engines": { | |
| 2124 | - "node": ">=16" | |
| 2125 | - } | |
| 2126 | - }, | |
| 2127 | 2118 | "node_modules/isstream": { |
| 2128 | 2119 | "version": "0.1.2", |
| 2129 | 2120 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", |
| ... | ... | @@ -3552,20 +3543,6 @@ |
| 3552 | 3543 | "webidl-conversions": "^3.0.0" |
| 3553 | 3544 | } |
| 3554 | 3545 | }, |
| 3555 | - "node_modules/which": { | |
| 3556 | - "version": "4.0.0", | |
| 3557 | - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", | |
| 3558 | - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", | |
| 3559 | - "dependencies": { | |
| 3560 | - "isexe": "^3.1.1" | |
| 3561 | - }, | |
| 3562 | - "bin": { | |
| 3563 | - "node-which": "bin/which.js" | |
| 3564 | - }, | |
| 3565 | - "engines": { | |
| 3566 | - "node": "^16.13.0 || >=18.0.0" | |
| 3567 | - } | |
| 3568 | - }, | |
| 3569 | 3546 | "node_modules/which-boxed-primitive": { |
| 3570 | 3547 | "version": "1.0.2", |
| 3571 | 3548 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", |
| ... | ... | @@ -5236,11 +5213,6 @@ |
| 5236 | 5213 | "call-bind": "^1.0.2" |
| 5237 | 5214 | } |
| 5238 | 5215 | }, |
| 5239 | - "isexe": { | |
| 5240 | - "version": "3.1.1", | |
| 5241 | - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", | |
| 5242 | - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" | |
| 5243 | - }, | |
| 5244 | 5216 | "isstream": { |
| 5245 | 5217 | "version": "0.1.2", |
| 5246 | 5218 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", |
| ... | ... | @@ -6312,14 +6284,6 @@ |
| 6312 | 6284 | "webidl-conversions": "^3.0.0" |
| 6313 | 6285 | } |
| 6314 | 6286 | }, |
| 6315 | - "which": { | |
| 6316 | - "version": "4.0.0", | |
| 6317 | - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", | |
| 6318 | - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", | |
| 6319 | - "requires": { | |
| 6320 | - "isexe": "^3.1.1" | |
| 6321 | - } | |
| 6322 | - }, | |
| 6323 | 6287 | "which-boxed-primitive": { |
| 6324 | 6288 | "version": "1.0.2", |
| 6325 | 6289 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", |
package.json
| 1 | 1 | { |
| 2 | 2 | "name": "komodo-sdk", |
| 3 | - "version": "1.45.15", | |
| 3 | + "version": "1.45.16", | |
| 4 | 4 | "description": "SDK for Komodo", |
| 5 | 5 | "main": "index.js", |
| 6 | 6 | "scripts": { |
| ... | ... | @@ -48,8 +48,7 @@ |
| 48 | 48 | "tektrans-logger": "^1.2.5", |
| 49 | 49 | "uniqid": "^4.1.1", |
| 50 | 50 | "url-join": "^4.0.1", |
| 51 | - "uuid": "^9.0.0", | |
| 52 | - "which": "^4.0.0" | |
| 51 | + "uuid": "^9.0.0" | |
| 53 | 52 | }, |
| 54 | 53 | "devDependencies": { |
| 55 | 54 | "auto-changelog": "^2.4.0", |
sd-notify.js
| ... | ... | @@ -3,15 +3,11 @@ |
| 3 | 3 | |
| 4 | 4 | const MODULE_NAME = 'KOMODO-SDK.SD-NOTIFY'; |
| 5 | 5 | |
| 6 | -const childProcess = require('child_process'); | |
| 7 | -const which = require('which'); | |
| 6 | +const util = require('util'); | |
| 8 | 7 | const logger = require('tektrans-logger'); |
| 9 | 8 | const matrix = require('./matrix'); |
| 10 | 9 | |
| 11 | -const hasSystemdNotifyBin = async () => { | |
| 12 | - const result = await which('systemd-notify', { nothrow: true }); | |
| 13 | - return result; | |
| 14 | -}; | |
| 10 | +const exec = util.promisify(require('node:child_process').exec); | |
| 15 | 11 | |
| 16 | 12 | const notifyUseSystemdNotify = async (statusMsg) => { |
| 17 | 13 | try { |
| ... | ... | @@ -27,6 +23,8 @@ const notifyUseSystemdNotify = async (statusMsg) => { |
| 27 | 23 | pid: process.pid, |
| 28 | 24 | }); |
| 29 | 25 | |
| 26 | + logger.info(`${MODULE_NAME} B905A857: Systemd ready notification has been sent using systemd-notify package`); | |
| 27 | + | |
| 30 | 28 | return true; |
| 31 | 29 | } catch (e) { |
| 32 | 30 | logger.verbose(`${MODULE_NAME} 488B3245: Failed to notify using systemd-notify package`, { |
| ... | ... | @@ -47,8 +45,28 @@ const notifyUseSdNotify = () => { |
| 47 | 45 | matrix.systemd_notified = new Date(); |
| 48 | 46 | |
| 49 | 47 | logger.info(`${MODULE_NAME} 701F8400: Systemd ready notification has been sent using sd-notify package`); |
| 48 | + | |
| 49 | + return true; | |
| 50 | 50 | } catch (e) { |
| 51 | 51 | logger.warn(`${MODULE_NAME} A6C99938: Optional dependency not found: sd-notify`); |
| 52 | + return false; | |
| 53 | + } | |
| 54 | +}; | |
| 55 | + | |
| 56 | +const notifyUseBin = async () => { | |
| 57 | + try { | |
| 58 | + logger.verbose(`${MODULE_NAME} FFBCF4E3: Trying to notify systemd using systemd-notify bin`); | |
| 59 | + await exec('systemd-notify --ready'); | |
| 60 | + logger.info(`${MODULE_NAME} B58921FF: Systemd ready notification has been sent using systemd-notify bin`); | |
| 61 | + | |
| 62 | + return true; | |
| 63 | + } catch (e) { | |
| 64 | + logger.verbose(`${MODULE_NAME} 75237B65: Failed to notify using systemd-notify bin`, { | |
| 65 | + eCode: e.code, | |
| 66 | + eMessage: e.message || e.toString(), | |
| 67 | + }); | |
| 68 | + | |
| 69 | + return false; | |
| 52 | 70 | } |
| 53 | 71 | }; |
| 54 | 72 | |
| ... | ... | @@ -65,19 +83,15 @@ module.exports = async (statusMsg) => { |
| 65 | 83 | return; |
| 66 | 84 | } |
| 67 | 85 | |
| 68 | - const successOnUseSystemdNotify = await notifyUseSystemdNotify(statusMsg); | |
| 69 | - if (successOnUseSystemdNotify) { | |
| 86 | + const successOnUsingSystemdNotify = await notifyUseSystemdNotify(statusMsg); | |
| 87 | + if (successOnUsingSystemdNotify) { | |
| 70 | 88 | return; |
| 71 | 89 | } |
| 72 | 90 | |
| 73 | - const useExec = await hasSystemdNotifyBin(); | |
| 74 | - if (useExec) { | |
| 75 | - logger.verbose(`${MODULE_NAME} FFBCF4E3: Trying to notify systemd using systemd-notify bin`); | |
| 76 | - childProcess.exec('systemd-notify --ready'); | |
| 91 | + const successOnUsingBin = await notifyUseBin(); | |
| 92 | + if (successOnUsingBin) { | |
| 77 | 93 | return; |
| 78 | 94 | } |
| 79 | 95 | |
| 80 | - logger.verbose(`${MODULE_NAME} 9ADD3807: systemd-notify binary not found, fallback to sd-notify package`); | |
| 81 | - | |
| 82 | 96 | notifyUseSdNotify(); |
| 83 | 97 | }; |