* [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result @ 2021-10-11 8:35 Dominik Csapak 2021-10-11 8:35 ` [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls Dominik Csapak 2021-10-11 8:38 ` [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak 0 siblings, 2 replies; 5+ messages in thread From: Dominik Csapak @ 2021-10-11 8:35 UTC (permalink / raw) To: pbs-devel we parse the task result from the last line, so we should not print a new line in the task result, else we get an 'unknown' task state Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- alternatively, we could try to parse the task log backwards to find the result, but that is bit more complicated and costly proxmox-rest-server/src/worker_task.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs index 51394549..a8899ab9 100644 --- a/proxmox-rest-server/src/worker_task.rs +++ b/proxmox-rest-server/src/worker_task.rs @@ -494,7 +494,7 @@ impl TaskState { match self { TaskState::Error { message, .. } => format!("TASK ERROR: {}", message), other => format!("TASK {}", other), - } + }.replace('\n', "\\n") // no newline in task result } fn from_endtime_and_message(endtime: i64, s: &str) -> Result<Self, Error> { -- 2.30.2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls 2021-10-11 8:35 [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak @ 2021-10-11 8:35 ` Dominik Csapak 2021-10-11 11:32 ` Thomas Lamprecht 2021-10-11 8:38 ` [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak 1 sibling, 1 reply; 5+ messages in thread From: Dominik Csapak @ 2021-10-11 8:35 UTC (permalink / raw) To: pbs-devel we must give a json value to send_command, else the string gets serialized and sent to the socket which does not get serialized as an object but a string, and the command fails with: 'unable to parse parameters (expected json object)' Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- src/bin/proxmox-backup-proxy.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index 4c879483..9fcd41f1 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -852,14 +852,15 @@ async fn schedule_task_log_rotate() { } async fn command_reopen_access_logfiles() -> Result<(), Error> { + let cmd = json!({"command":"api-access-log-reopen"}); // only care about the most recent daemon instance for each, proxy & api, as other older ones // should not respond to new requests anyway, but only finish their current one and then exit. let sock = proxmox_rest_server::our_ctrl_sock(); - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); + let f1 = proxmox_rest_server::send_command(sock, &cmd); let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); + let f2 = proxmox_rest_server::send_command(sock, &cmd); match futures::join!(f1, f2) { (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), @@ -870,14 +871,15 @@ async fn command_reopen_access_logfiles() -> Result<(), Error> { } async fn command_reopen_auth_logfiles() -> Result<(), Error> { + let cmd = json!({"command":"api-auth-log-reopen"}); // only care about the most recent daemon instance for each, proxy & api, as other older ones // should not respond to new requests anyway, but only finish their current one and then exit. let sock = proxmox_rest_server::our_ctrl_sock(); - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); + let f1 = proxmox_rest_server::send_command(sock, &cmd); let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); + let f2 = proxmox_rest_server::send_command(sock, &cmd); match futures::join!(f1, f2) { (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), -- 2.30.2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls 2021-10-11 8:35 ` [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls Dominik Csapak @ 2021-10-11 11:32 ` Thomas Lamprecht 2021-10-11 11:48 ` Wolfgang Bumiller 0 siblings, 1 reply; 5+ messages in thread From: Thomas Lamprecht @ 2021-10-11 11:32 UTC (permalink / raw) To: Proxmox Backup Server development discussion, Dominik Csapak Cc: Wolfgang Bumiller On 11.10.21 10:35, Dominik Csapak wrote: > we must give a json value to send_command, else the string gets > serialized and sent to the socket which does not get serialized as > an object but a string, and the command fails with: > > 'unable to parse parameters (expected json object)' > Would get a Fixes: commit 45b8a0327f21f048bb4384bafc292954358b5651 Wolfgang any comment? https://git.proxmox.com/?p=proxmox-backup.git;a=commitdiff;h=45b8a0327f21f048bb4384bafc292954358b5651 > Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> > --- > src/bin/proxmox-backup-proxy.rs | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs > index 4c879483..9fcd41f1 100644 > --- a/src/bin/proxmox-backup-proxy.rs > +++ b/src/bin/proxmox-backup-proxy.rs > @@ -852,14 +852,15 @@ async fn schedule_task_log_rotate() { > } > > async fn command_reopen_access_logfiles() -> Result<(), Error> { > + let cmd = json!({"command":"api-access-log-reopen"}); > // only care about the most recent daemon instance for each, proxy & api, as other older ones > // should not respond to new requests anyway, but only finish their current one and then exit. > let sock = proxmox_rest_server::our_ctrl_sock(); > - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); > + let f1 = proxmox_rest_server::send_command(sock, &cmd); > > let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; > let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); > - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); > + let f2 = proxmox_rest_server::send_command(sock, &cmd); > > match futures::join!(f1, f2) { > (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), > @@ -870,14 +871,15 @@ async fn command_reopen_access_logfiles() -> Result<(), Error> { > } > > async fn command_reopen_auth_logfiles() -> Result<(), Error> { > + let cmd = json!({"command":"api-auth-log-reopen"}); > // only care about the most recent daemon instance for each, proxy & api, as other older ones > // should not respond to new requests anyway, but only finish their current one and then exit. > let sock = proxmox_rest_server::our_ctrl_sock(); > - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); > + let f1 = proxmox_rest_server::send_command(sock, &cmd); > > let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; > let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); > - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); > + let f2 = proxmox_rest_server::send_command(sock, &cmd); > > match futures::join!(f1, f2) { > (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls 2021-10-11 11:32 ` Thomas Lamprecht @ 2021-10-11 11:48 ` Wolfgang Bumiller 0 siblings, 0 replies; 5+ messages in thread From: Wolfgang Bumiller @ 2021-10-11 11:48 UTC (permalink / raw) To: Thomas Lamprecht Cc: Proxmox Backup Server development discussion, Dominik Csapak On Mon, Oct 11, 2021 at 01:32:54PM +0200, Thomas Lamprecht wrote: > On 11.10.21 10:35, Dominik Csapak wrote: > > we must give a json value to send_command, else the string gets > > serialized and sent to the socket which does not get serialized as > > an object but a string, and the command fails with: > > > > 'unable to parse parameters (expected json object)' > > > > Would get a > > Fixes: commit 45b8a0327f21f048bb4384bafc292954358b5651 > > Wolfgang any comment? > https://git.proxmox.com/?p=proxmox-backup.git;a=commitdiff;h=45b8a0327f21f048bb4384bafc292954358b5651 > > > Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> > > --- > > src/bin/proxmox-backup-proxy.rs | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs > > index 4c879483..9fcd41f1 100644 > > --- a/src/bin/proxmox-backup-proxy.rs > > +++ b/src/bin/proxmox-backup-proxy.rs > > @@ -852,14 +852,15 @@ async fn schedule_task_log_rotate() { > > } > > > > async fn command_reopen_access_logfiles() -> Result<(), Error> { > > + let cmd = json!({"command":"api-access-log-reopen"}); > > // only care about the most recent daemon instance for each, proxy & api, as other older ones > > // should not respond to new requests anyway, but only finish their current one and then exit. > > let sock = proxmox_rest_server::our_ctrl_sock(); > > - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); > > + let f1 = proxmox_rest_server::send_command(sock, &cmd); > > > > let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; > > let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); > > - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-access-log-reopen\"}\n"); > > + let f2 = proxmox_rest_server::send_command(sock, &cmd); ^ Let's just use `send_raw_command` for all of these, more efficient. (The identical strings can still be factored out though I guess) v > > > > match futures::join!(f1, f2) { > > (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), > > @@ -870,14 +871,15 @@ async fn command_reopen_access_logfiles() -> Result<(), Error> { > > } > > > > async fn command_reopen_auth_logfiles() -> Result<(), Error> { > > + let cmd = json!({"command":"api-auth-log-reopen"}); > > // only care about the most recent daemon instance for each, proxy & api, as other older ones > > // should not respond to new requests anyway, but only finish their current one and then exit. > > let sock = proxmox_rest_server::our_ctrl_sock(); > > - let f1 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); > > + let f1 = proxmox_rest_server::send_command(sock, &cmd); > > > > let pid = proxmox_rest_server::read_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?; > > let sock = proxmox_rest_server::ctrl_sock_from_pid(pid); > > - let f2 = proxmox_rest_server::send_command(sock, "{\"command\":\"api-auth-log-reopen\"}\n"); > > + let f2 = proxmox_rest_server::send_command(sock, &cmd); > > > > match futures::join!(f1, f2) { > > (Err(e1), Err(e2)) => Err(format_err!("reopen commands failed, proxy: {}; api: {}", e1, e2)), ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result 2021-10-11 8:35 [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak 2021-10-11 8:35 ` [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls Dominik Csapak @ 2021-10-11 8:38 ` Dominik Csapak 1 sibling, 0 replies; 5+ messages in thread From: Dominik Csapak @ 2021-10-11 8:38 UTC (permalink / raw) To: pbs-devel btw. it would probably be good to backport those changes to 1.x... ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-11 11:48 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-10-11 8:35 [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak 2021-10-11 8:35 ` [pbs-devel] [PATCH proxmox-backup 2/2] backup-proxy: fix api log reopen send_command calls Dominik Csapak 2021-10-11 11:32 ` Thomas Lamprecht 2021-10-11 11:48 ` Wolfgang Bumiller 2021-10-11 8:38 ` [pbs-devel] [PATCH proxmox-backup 1/2] rest-server/worker-task: replace newlines with '\n' in task result Dominik Csapak
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.Service provided by Proxmox Server Solutions GmbH | Privacy | Legal