From f755365e23b29d0be0b7f89cd0b6e957e610273c Mon Sep 17 00:00:00 2001 From: Nicolas Raynaud Date: Mon, 28 Sep 2020 15:33:06 +0200 Subject: [PATCH] fix(xo-web/remotes): fix editing bucket and directory for S3 (#5276) --- CHANGELOG.unreleased.md | 1 + .../src/xo-app/settings/remotes/remote.js | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 8f5ce35a7..87a3a040c 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -22,6 +22,7 @@ - [API] Fix `this.removeSubjectFromResourceSet is not a function` error on calling `resourceSet.removeSubject` via `xo-cli` [#5265](https://github.com/vatesfr/xen-orchestra/issues/5265) (PR [#5266](https://github.com/vatesfr/xen-orchestra/pull/5266)) - [Import OVA] Fix frozen UI when dropping a big OVA on the page (PR [#5274](https://github.com/vatesfr/xen-orchestra/pull/5274)) - [Remotes/S3] Fix S3 backup of 50GB+ files [#5197](https://github.com/vatesfr/xen-orchestra/issues/5197) (PR[ #5242](https://github.com/vatesfr/xen-orchestra/pull/5242) ) +- [Remotes] Fix editing bucket and directory for S3 remotes [#5233](https://github.com/vatesfr/xen-orchestra/issues/5233) (PR [5276](https://github.com/vatesfr/xen-orchestra/pull/5276)) ### Packages to release diff --git a/packages/xo-web/src/xo-app/settings/remotes/remote.js b/packages/xo-web/src/xo-app/settings/remotes/remote.js index 6c1a6345f..bf3db021e 100644 --- a/packages/xo-web/src/xo-app/settings/remotes/remote.js +++ b/packages/xo-web/src/xo-app/settings/remotes/remote.js @@ -56,12 +56,20 @@ export default decorate([ name, options = remote.options || '', password = remote.password, - path = remote.path, port = remote.port, proxyId = remote.proxy, type = remote.type, username = remote.username, } = state + let { path = remote.path } = state + if (type === 's3') { + const { + parsedPath, + bucket = parsedPath.split('/')[0], + directory = parsedPath.split('/')[1], + } = state + path = bucket + '/' + directory + } return editRemote(remote, { name, url: format({ @@ -96,8 +104,6 @@ export default decorate([ path, port, proxyId, - bucket, - directory, type = 'nfs', username, } = state @@ -109,6 +115,7 @@ export default decorate([ type, } if (type === 's3') { + const { bucket, directory } = state urlParams.path = bucket + '/' + directory } username && (urlParams.username = username) @@ -150,9 +157,9 @@ export default decorate([ password = remote.password || '', parsedPath, path = parsedPath || '', - parsedBucket = parsedPath && parsedPath.split('/')[0], + parsedBucket = parsedPath != null && parsedPath.split('/')[0], bucket = parsedBucket || '', - parsedDirectory, + parsedDirectory = parsedPath != null && parsedPath.split('/')[1], directory = parsedDirectory || '', port = remote.port, proxyId = remote.proxy,