From 4ba0f07d49a1808ee976f7663aefadd0d0a0ff3f Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Thu, 29 Apr 2021 16:34:19 -0400 Subject: [PATCH] Issue 4742 - UI - should always use LDAPI path when calling CLI Bug Description: In some places in the UI code we call dsconf like: dsconf -j slapd-instance ... Instead of: dsconf -j "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket" The problem is that if you setup the ".dsrc" file to use something other than LDAPI then the UI hangs. Fix Description: We need to always call the CLI using the LDAP socket. Relates: https://github.com/389ds/389-ds-base/issues/4742 Reviewed by: spichugi(Thanks!) --- src/cockpit/389-console/src/ds.jsx | 2 +- src/cockpit/389-console/src/dsModals.jsx | 4 ++-- .../389-console/src/lib/database/backups.jsx | 3 ++- .../src/lib/database/globalPwp.jsx | 15 ++++++++---- .../389-console/src/lib/database/localPwp.jsx | 24 ++++++++++++------- .../389-console/src/lib/server/accessLog.jsx | 6 +++-- .../389-console/src/lib/server/auditLog.jsx | 6 +++-- .../src/lib/server/auditfailLog.jsx | 6 +++-- .../389-console/src/lib/server/errorLog.jsx | 6 +++-- .../389-console/src/lib/server/ldapi.jsx | 3 ++- .../389-console/src/lib/server/sasl.jsx | 17 ++++++------- .../389-console/src/lib/server/tuning.jsx | 7 ++++-- src/cockpit/389-console/src/server.jsx | 5 +++- 13 files changed, 67 insertions(+), 37 deletions(-) diff --git a/src/cockpit/389-console/src/ds.jsx b/src/cockpit/389-console/src/ds.jsx index 26d5a67006..025cf1af59 100644 --- a/src/cockpit/389-console/src/ds.jsx +++ b/src/cockpit/389-console/src/ds.jsx @@ -289,7 +289,7 @@ export class DSInstance extends React.Component { rows.push({ name: row[0], date: [row[1]], size: [row[2]] }); } // Get the server version from the monitor - cmd = ["dsconf", "-j", this.state.serverId, "monitor", "server"]; + cmd = ["dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.state.serverId + ".socket", "monitor", "server"]; log_cmd("loadBackups", "Get the server version", cmd); cockpit.spawn(cmd, { superuser: true, err: "message" }).done(content => { let monitor = JSON.parse(content); diff --git a/src/cockpit/389-console/src/dsModals.jsx b/src/cockpit/389-console/src/dsModals.jsx index a1a06bdf45..36623f4a6c 100644 --- a/src/cockpit/389-console/src/dsModals.jsx +++ b/src/cockpit/389-console/src/dsModals.jsx @@ -1031,7 +1031,7 @@ export class ManageBackupsModal extends React.Component { let cmd = [ "dsconf", "-j", - "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "ldapi://%2fvar%2frun%2fslapd-" + "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket" + ".socket", "backup", "create" ]; @@ -1111,7 +1111,7 @@ export class ManageBackupsModal extends React.Component { const cmd = [ "dsconf", "-j", - "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "ldapi://%2fvar%2frun%2fslapd-" + "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket" + ".socket", "backup", "restore", this.state.backupName diff --git a/src/cockpit/389-console/src/lib/database/backups.jsx b/src/cockpit/389-console/src/lib/database/backups.jsx index b37ea070d5..8130fa9e6e 100644 --- a/src/cockpit/389-console/src/lib/database/backups.jsx +++ b/src/cockpit/389-console/src/lib/database/backups.jsx @@ -288,7 +288,8 @@ export class Backups extends React.Component { this.showLDIFDeleteSpinningModal(); let cmd = [ - "dsctl", this.props.serverId, "ldifs", "--delete", this.state.ldifName + "dsctl", this.props.serverId, + "ldifs", "--delete", this.state.ldifName ]; log_cmd("deleteLDIF", "Deleting LDIF", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/database/globalPwp.jsx b/src/cockpit/389-console/src/lib/database/globalPwp.jsx index 86fdb73069..03d89e2357 100644 --- a/src/cockpit/389-console/src/lib/database/globalPwp.jsx +++ b/src/cockpit/389-console/src/lib/database/globalPwp.jsx @@ -148,7 +148,8 @@ export class GlobalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of general_attrs) { @@ -251,7 +252,8 @@ export class GlobalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of exp_attrs) { @@ -327,7 +329,8 @@ export class GlobalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of lockout_attrs) { @@ -428,7 +431,8 @@ export class GlobalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of syntax_attrs) { @@ -473,7 +477,8 @@ export class GlobalPwPolicy extends React.Component { loadGlobal() { let cmd = [ - "dsconf", "-j", this.props.serverId, "config", "get" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" ]; log_cmd("loadGlobal", "Load global password policy", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/database/localPwp.jsx b/src/cockpit/389-console/src/lib/database/localPwp.jsx index d2bbf03066..e7f839b316 100644 --- a/src/cockpit/389-console/src/lib/database/localPwp.jsx +++ b/src/cockpit/389-console/src/lib/database/localPwp.jsx @@ -824,7 +824,8 @@ export class LocalPwPolicy extends React.Component { action = "addsubtree"; } let cmd = [ - 'dsconf', '-j', this.props.serverId, 'localpwp', action, this.state.policyDN + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'localpwp', action, this.state.policyDN ]; for (let attr of all_attrs) { @@ -905,7 +906,8 @@ export class LocalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'localpwp', 'set', this.state.policyName + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'localpwp', 'set', this.state.policyName ]; for (let attr of general_attrs) { @@ -981,7 +983,8 @@ export class LocalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'localpwp', 'set', this.state.policyName + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'localpwp', 'set', this.state.policyName ]; for (let attr of exp_attrs) { @@ -1057,7 +1060,8 @@ export class LocalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'localpwp', 'set', this.state.policyName + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'localpwp', 'set', this.state.policyName ]; for (let attr of lockout_attrs) { @@ -1158,7 +1162,8 @@ export class LocalPwPolicy extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'localpwp', 'set', this.state.policyName + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'localpwp', 'set', this.state.policyName ]; for (let attr of syntax_attrs) { @@ -1217,7 +1222,8 @@ export class LocalPwPolicy extends React.Component { }); let cmd = [ - "dsconf", "-j", this.props.serverId, "localpwp", "remove", this.state.deleteName + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "localpwp", "remove", this.state.deleteName ]; log_cmd("deletePolicy", "delete policy", cmd); cockpit @@ -1237,7 +1243,8 @@ export class LocalPwPolicy extends React.Component { loadPolicies() { let cmd = [ - "dsconf", "-j", this.props.serverId, "localpwp", "list" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "localpwp", "list" ]; log_cmd("loadPolicies", "Load all the local password policies for the table", cmd); cockpit @@ -1421,7 +1428,8 @@ export class LocalPwPolicy extends React.Component { loadLocal(name) { let cmd = [ - "dsconf", "-j", this.props.serverId, "localpwp", "get", name + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "localpwp", "get", name ]; log_cmd("loadLocal", "Load a local password policy", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/server/accessLog.jsx b/src/cockpit/389-console/src/lib/server/accessLog.jsx index 511d23ce23..600bb53958 100644 --- a/src/cockpit/389-console/src/lib/server/accessLog.jsx +++ b/src/cockpit/389-console/src/lib/server/accessLog.jsx @@ -142,7 +142,8 @@ export class ServerAccessLog extends React.Component { } let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of config_attrs) { @@ -203,7 +204,8 @@ export class ServerAccessLog extends React.Component { loading: true }); let cmd = [ - "dsconf", "-j", this.props.serverId, "config", "get" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" ]; log_cmd("reloadConfig", "load Access Log configuration", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/server/auditLog.jsx b/src/cockpit/389-console/src/lib/server/auditLog.jsx index 8716e40052..953bfa234d 100644 --- a/src/cockpit/389-console/src/lib/server/auditLog.jsx +++ b/src/cockpit/389-console/src/lib/server/auditLog.jsx @@ -129,7 +129,8 @@ export class ServerAuditLog extends React.Component { } let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of config_attrs) { @@ -221,7 +222,8 @@ export class ServerAuditLog extends React.Component { loading: true, }); let cmd = [ - "dsconf", "-j", this.props.serverId, "config", "get" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" ]; log_cmd("reloadConfig", "load Audit Log configuration", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/server/auditfailLog.jsx b/src/cockpit/389-console/src/lib/server/auditfailLog.jsx index 4d856da1c5..2c8a046521 100644 --- a/src/cockpit/389-console/src/lib/server/auditfailLog.jsx +++ b/src/cockpit/389-console/src/lib/server/auditfailLog.jsx @@ -129,7 +129,8 @@ export class ServerAuditFailLog extends React.Component { } let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of config_attrs) { @@ -177,7 +178,8 @@ export class ServerAuditFailLog extends React.Component { loading: true, }); let cmd = [ - "dsconf", "-j", this.props.serverId, "config", "get" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" ]; log_cmd("loadConfig", "load Audit Failure Log configuration", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/server/errorLog.jsx b/src/cockpit/389-console/src/lib/server/errorLog.jsx index 4efe5da3c2..9d327ea311 100644 --- a/src/cockpit/389-console/src/lib/server/errorLog.jsx +++ b/src/cockpit/389-console/src/lib/server/errorLog.jsx @@ -151,7 +151,8 @@ export class ServerErrorLog extends React.Component { } let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of config_attrs) { @@ -295,7 +296,8 @@ export class ServerErrorLog extends React.Component { loading: true, }); let cmd = [ - "dsconf", "-j", this.props.serverId, "config", "get" + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" ]; log_cmd("reloadConfig", "load Error Log configuration", cmd); cockpit diff --git a/src/cockpit/389-console/src/lib/server/ldapi.jsx b/src/cockpit/389-console/src/lib/server/ldapi.jsx index 818ed8f213..644d653019 100644 --- a/src/cockpit/389-console/src/lib/server/ldapi.jsx +++ b/src/cockpit/389-console/src/lib/server/ldapi.jsx @@ -112,7 +112,8 @@ export class ServerLDAPI extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + 'config', 'replace' ]; for (let attr of ldapi_attrs) { diff --git a/src/cockpit/389-console/src/lib/server/sasl.jsx b/src/cockpit/389-console/src/lib/server/sasl.jsx index 01830da862..7646ec69a6 100644 --- a/src/cockpit/389-console/src/lib/server/sasl.jsx +++ b/src/cockpit/389-console/src/lib/server/sasl.jsx @@ -270,7 +270,8 @@ export class ServerSASL extends React.Component { loadConfig() { let cmd = [ - "dsconf", "-j", this.props.serverId, "config", 'get' + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", 'get' ]; log_cmd("loadConfig", "Get SASL settings", cmd); cockpit @@ -310,7 +311,7 @@ export class ServerSASL extends React.Component { loadMechs() { let cmd = [ - "dsconf", "-j", this.props.serverId, "sasl", 'get-mechs' + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", "sasl", 'get-mechs' ]; log_cmd("loadMechs", "Get supported SASL mechanisms", cmd); cockpit @@ -324,7 +325,7 @@ export class ServerSASL extends React.Component { } loadSASLMappings() { - let cmd = ["dsconf", '-j', this.props.serverId, 'sasl', 'list', '--details']; + let cmd = ["dsconf", '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'sasl', 'list', '--details']; log_cmd('get_and_set_sasl', 'Get SASL mappings', cmd); cockpit .spawn(cmd, { superuser: true, err: "message" }) @@ -411,7 +412,7 @@ export class ServerSASL extends React.Component { tableLoading: true, }); let cmd = [ - 'dsconf', '-j', this.props.serverId, + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'sasl', 'create', '--cn=' + this.state.saslMapName, '--nsSaslMapFilterTemplate=' + this.state.saslFilter, @@ -459,11 +460,11 @@ export class ServerSASL extends React.Component { // Delete and create let delete_cmd = [ - 'dsconf', '-j', this.props.serverId, + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'sasl', 'delete', this.state._saslMapName ]; let create_cmd = [ - 'dsconf', '-j', this.props.serverId, + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'sasl', 'create', '--cn=' + this.state.saslMapName, '--nsSaslMapFilterTemplate=' + this.state.saslFilter, @@ -524,7 +525,7 @@ export class ServerSASL extends React.Component { }); let cmd = [ - 'dsconf', '-j', this.props.serverId, + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'sasl', 'delete', this.state.saslMapName ]; log_cmd("deleteMapping", "Delete sasl mapping", cmd); @@ -557,7 +558,7 @@ export class ServerSASL extends React.Component { // Build up the command list let cmd = [ - 'dsconf', '-j', this.props.serverId, 'config', 'replace' + 'dsconf', '-j', "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", 'config', 'replace' ]; let mech_str_new = this.state.allowedMechs.join(' '); diff --git a/src/cockpit/389-console/src/lib/server/tuning.jsx b/src/cockpit/389-console/src/lib/server/tuning.jsx index 57da9bcf11..efe0f01fb1 100644 --- a/src/cockpit/389-console/src/lib/server/tuning.jsx +++ b/src/cockpit/389-console/src/lib/server/tuning.jsx @@ -103,8 +103,11 @@ export class ServerTuning extends React.Component { }); } - let cmd = ["dsconf", "-j", this.props.serverId, "config", "get"]; - log_cmd("loadConfig", "Load server tuning configuration", cmd); + let cmd = [ + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" + ]; + log_cmd("loadConfig", "Load server configuration", cmd); cockpit .spawn(cmd, { superuser: true, err: "message" }) .done(content => { diff --git a/src/cockpit/389-console/src/server.jsx b/src/cockpit/389-console/src/server.jsx index 4e474a3b86..9598b197ab 100644 --- a/src/cockpit/389-console/src/server.jsx +++ b/src/cockpit/389-console/src/server.jsx @@ -54,7 +54,10 @@ export class Server extends React.Component { loaded: false, firstLoad: false }); - let cmd = ["dsconf", "-j", this.props.serverId, "config", "get"]; + let cmd = [ + "dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket", + "config", "get" + ]; log_cmd("loadConfig", "Load server configuration", cmd); cockpit .spawn(cmd, { superuser: true, err: "message" })