* [pbs-devel] [PATCH v2 proxmox-backup] api2/node/services: Handle optional services and expose unit-state
2022-12-22 12:05 [pbs-devel] [PATCH v2 proxmox-backup/widget-toolkit] Handle optional services and expose more details Christoph Heiss
@ 2022-12-22 12:05 ` Christoph Heiss
2023-01-05 9:38 ` Thomas Lamprecht
2022-12-22 12:05 ` [pbs-devel] [PATCH v2 widget-toolkit] node/ServiceView: Show unit-state column in PBS too Christoph Heiss
2023-01-05 9:25 ` [pbs-devel] applied: [PATCH v2 proxmox-backup/widget-toolkit] Handle optional services and expose more details Wolfgang Bumiller
2 siblings, 1 reply; 5+ messages in thread
From: Christoph Heiss @ 2022-12-22 12:05 UTC (permalink / raw)
To: pbs-devel
.. in the same way the PVE api does, esp. regarding the logic to handle
oneshot and missing services.
This then allows re-using the GUI parts from there as well, so that the
services page in PVE and PBS looks the same.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
src/api2/node/services.rs | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/api2/node/services.rs b/src/api2/node/services.rs
index 0cc1857e..3d3b8501 100644
--- a/src/api2/node/services.rs
+++ b/src/api2/node/services.rs
@@ -76,12 +76,26 @@ fn get_full_service_state(service: &str) -> Result<Value, Error> {
fn json_service_state(service: &str, status: Value) -> Value {
if let Some(desc) = status["Description"].as_str() {
let name = status["Name"].as_str().unwrap_or(service);
- let state = status["SubState"].as_str().unwrap_or("unknown");
+
+ let state = if status["Type"] == "oneshot" && status["SubState"] == "dead" {
+ status["Result"].as_str().or(status["SubState"].as_str())
+ } else {
+ status["SubState"].as_str()
+ }
+ .unwrap_or("unknown");
+
+ let unit_state = if status["LoadState"] == "not-found" {
+ "not-found"
+ } else {
+ status["UnitFileState"].as_str().unwrap_or("unknown")
+ };
+
return json!({
"service": service,
"name": name,
"desc": desc,
"state": state,
+ "unit-state": unit_state,
});
}
@@ -117,6 +131,10 @@ fn json_service_state(service: &str, status: Value) -> Value {
type: String,
description: "systemd service 'SubState'.",
},
+ "unit-state": {
+ type: String,
+ description: "systemd service unit state.",
+ },
},
},
},
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pbs-devel] [PATCH v2 widget-toolkit] node/ServiceView: Show unit-state column in PBS too
2022-12-22 12:05 [pbs-devel] [PATCH v2 proxmox-backup/widget-toolkit] Handle optional services and expose more details Christoph Heiss
2022-12-22 12:05 ` [pbs-devel] [PATCH v2 proxmox-backup] api2/node/services: Handle optional services and expose unit-state Christoph Heiss
@ 2022-12-22 12:05 ` Christoph Heiss
2023-01-05 9:25 ` [pbs-devel] applied: [PATCH v2 proxmox-backup/widget-toolkit] Handle optional services and expose more details Wolfgang Bumiller
2 siblings, 0 replies; 5+ messages in thread
From: Christoph Heiss @ 2022-12-22 12:05 UTC (permalink / raw)
To: pbs-devel
The PBS api now reports `unit-state` for services as well, thus enable
the column for it.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
src/node/ServiceView.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/node/ServiceView.js b/src/node/ServiceView.js
index 75a5c28..19cfc18 100644
--- a/src/node/ServiceView.js
+++ b/src/node/ServiceView.js
@@ -201,7 +201,7 @@ Ext.define('Proxmox.node.ServiceView', {
header: gettext('Unit'),
width: 120,
sortable: true,
- hidden: Proxmox?.Setup?.auth_cookie_name !== 'PVEAuthCookie', // FIXME currently only PVE supports it
+ hidden: !Ext.Array.contains(['PVEAuthCookie', 'PBSAuthCookie'], Proxmox?.Setup?.auth_cookie_name),
dataIndex: 'unit-state',
},
{
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread