* [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 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
* 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
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