From: Dominik Csapak <d.csapak@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/2] fix: ui: sync job: switch rate limit based on sync direction
Date: Mon, 17 Mar 2025 11:07:56 +0100 [thread overview]
Message-ID: <66676a8d-15fd-4a2c-b80b-19564cc268df@proxmox.com> (raw)
In-Reply-To: <20250310170125.528732-1-c.ebner@proxmox.com>
High level comment:
I know it's preexisting, bu does it even make sense to have a 'rate-in' and 'rate-out' for sync
jobs? would it not make more sense to have a single 'rate' parameter and apply it to both
directions?
we could maybe introduce a new parameter now to replace both 'rate-in' and 'rate-out' and
use that? we could even maybe leave all three if some users really prefer to set the
limits seperately.
one comment inline
On 3/10/25 18:01, Christian Ebner wrote:
> Commit 9aa213b8 ("config: sync: use same config section type `sync`
> for push and pull") adapted the sync job edit so jobs in both, push
> and pull can be edited using the same window. This however did not
> include the switching of the direction to which the http client rate
> limit is applied to.
>
> Fix this by renaming the field to `rate-limit` and conditionally
> settings the values to `rate-in` or `rate-out`.
>
> Reported in the community forum:
> https://forum.proxmox.com/threads/163414/
>
> Fixes: 9aa213b8 ("config: sync: use same config section type `sync` for push and pull")
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
> ---
> www/window/SyncJobEdit.js | 20 +++++++++++++++++---
> 1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/www/window/SyncJobEdit.js b/www/window/SyncJobEdit.js
> index bcd2f2fb2..f980a2efd 100644
> --- a/www/window/SyncJobEdit.js
> +++ b/www/window/SyncJobEdit.js
> @@ -86,6 +86,13 @@ Ext.define('PBS.window.SyncJobEdit', {
> } else {
> values.location = 'remote';
> }
> + if (values['rate-out'] && me.syncDirection === 'push') {
> + values['rate-limit'] = values['rate-out'];
> + delete values['rate-out'];
> + } else if (values['rate-in']) {
> + values['rate-limit'] = values['rate-in'];
> + delete values['rate-in'];
> + }
> me.callParent([values]);
> },
>
> @@ -103,8 +110,15 @@ Ext.define('PBS.window.SyncJobEdit', {
> if (!values.id && me.up('pbsSyncJobEdit').isCreate) {
> values.id = 's-' + Ext.data.identifier.Uuid.Global.generate().slice(0, 13);
> }
> + if (values['rate-limit'] && me.syncDirection === 'push') {
> + values['rate-out'] = values['rate-limit'];
> + } else {
> + values['rate-in'] = values['rate-limit'];
> + }
> + delete values['rate-limit'];
> if (!me.isCreate) {
> PBS.Utils.delete_if_default(values, 'rate-in');
> + PBS.Utils.delete_if_default(values, 'rate-out');
this now deletes values set in the backend, or not?
e.g. i had set
rate-in: 10
rate-out: 15
then i update the config in the GUI and depending on the sync job direction,
the other gets deleted from the config.
(that's one reason where a single rate limit setting would make sense)
> PBS.Utils.delete_if_default(values, 'remote');
> if (typeof values.delete === 'string') {
> values.delete = values.delete.split(',');
> @@ -185,7 +199,7 @@ Ext.define('PBS.window.SyncJobEdit', {
> },
> {
> xtype: 'pmxBandwidthField',
> - name: 'rate-in',
> + name: 'rate-limit',
> fieldLabel: gettext('Rate Limit'),
> emptyText: gettext('Unlimited'),
> submitAutoScaledSizeUnit: true,
> @@ -221,7 +235,7 @@ Ext.define('PBS.window.SyncJobEdit', {
> let me = this;
> let form = me.up('pbsSyncJobEdit');
> let nsField = form.down('field[name=remote-ns]');
> - let rateLimitField = form.down('field[name=rate-in]');
> + let rateLimitField = form.down('field[name=rate-limit]');
> let remoteField = form.down('field[name=remote]');
> let storeField = form.down('field[name=remote-store]');
>
> @@ -263,7 +277,7 @@ Ext.define('PBS.window.SyncJobEdit', {
> let me = this;
> let remoteStoreField = me.up('pbsSyncJobEdit').down('field[name=remote-store]');
> remoteStoreField.setRemote(value);
> - let rateLimitField = me.up('pbsSyncJobEdit').down('field[name=rate-in]');
> + let rateLimitField = me.up('pbsSyncJobEdit').down('field[name=rate-limit]');
> rateLimitField.setDisabled(!value);
> if (!value) {
> rateLimitField.setValue(null);
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
next prev parent reply other threads:[~2025-03-17 10:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 17:01 Christian Ebner
2025-03-10 17:01 ` [pbs-devel] [PATCH proxmox-backup 2/2] docs: mention how to set the push sync jobs rate limit Christian Ebner
2025-03-17 10:07 ` Dominik Csapak [this message]
2025-03-17 10:32 ` [pbs-devel] [PATCH proxmox-backup 1/2] fix: ui: sync job: switch rate limit based on sync direction Christian Ebner
2025-03-17 10:42 ` Christian Ebner
2025-03-17 11:56 ` Dominik Csapak
2025-03-17 12:11 ` Christian Ebner
2025-03-17 12:36 ` Dominik Csapak
2025-03-17 12:54 ` Christian Ebner
2025-03-17 13:01 ` Dominik Csapak
2025-03-17 13:17 ` Christian Ebner
2025-03-18 8:18 ` Dominik Csapak
2025-03-17 12:34 ` Christian Ebner
2025-03-18 9:49 ` Christian Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=66676a8d-15fd-4a2c-b80b-19564cc268df@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.