From edaae02892b175353d339f86dd59eb60acc56155 Mon Sep 17 00:00:00 2001 From: badrAZ Date: Wed, 9 Sep 2020 12:11:50 +0200 Subject: [PATCH] fix(xo-web,xo-server#probeIscsiLuns): handle undefined lun size (#5212) See xoa-support#2815 See https://xcp-ng.org/forum/topic/3409/getting-error-when-trying-to-mount-iscsi-lun --- CHANGELOG.unreleased.md | 3 +++ packages/xo-server/src/api/sr.js | 2 +- packages/xo-web/src/common/intl/messages.js | 1 + packages/xo-web/src/xo-app/new/sr/index.js | 18 +++++++++++++----- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index be85f0a63..4df1a1997 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -13,6 +13,8 @@ > Users must be able to say: “I had this issue, happy to know it's fixed” +- [New SR] Fix `Cannot read property 'trim' of undefined` error (PR [#5212](https://github.com/vatesfr/xen-orchestra/pull/5212)) + ### Packages to release > Packages will be released in the order they are here, therefore, they should @@ -31,3 +33,4 @@ > In case of conflict, the highest (lowest in previous list) `$version` wins. - xo-web minor +- xo-server patch diff --git a/packages/xo-server/src/api/sr.js b/packages/xo-server/src/api/sr.js index ebf3216f7..2d1bd70fd 100644 --- a/packages/xo-server/src/api/sr.js +++ b/packages/xo-server/src/api/sr.js @@ -719,7 +719,7 @@ export async function probeIscsiLuns({ id: lun.LUNid.trim(), vendor: lun.vendor.trim(), serial: lun.serial.trim(), - size: lun.size.trim(), + size: lun.size?.trim(), scsiId: lun.SCSIid.trim(), }) }) diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index d24f99c6c..d84987c8e 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -82,6 +82,7 @@ const messages = { upgradesAvailable: 'Upgrades available', advancedSettings: 'Advanced settings', txChecksumming: 'TX checksumming', + unknownSize: 'Unknown size', // ----- Modals ----- alertOk: 'OK', diff --git a/packages/xo-web/src/xo-app/new/sr/index.js b/packages/xo-web/src/xo-app/new/sr/index.js index 6b5fbd04d..e04857006 100644 --- a/packages/xo-web/src/xo-app/new/sr/index.js +++ b/packages/xo-web/src/xo-app/new/sr/index.js @@ -144,6 +144,7 @@ class SelectIqn extends Component { } } +@injectIntl class SelectLun extends Component { static propTypes = { onChange: PropTypes.func.isRequired, @@ -152,11 +153,14 @@ class SelectLun extends Component { _getOptions = createSelector( () => this.props.options, - options => + () => this.props.intl.formatMessage, + (options, formatMessage) => map(options, (lun, index) => ({ - label: `LUN ${lun.id}: ${lun.serial} - ${formatSize(+lun.size)} - (${ - lun.vendor - })`, + label: `LUN ${lun.id}: ${lun.serial} - ${ + lun.size !== undefined + ? formatSize(+lun.size) + : formatMessage(messages.unknownSize) + } - (${lun.vendor})`, value: index, })) ) @@ -989,7 +993,11 @@ export default class New extends Component { {type === 'iscsi' && (
{_('newSrSize')}
-
{formatSize(+lun.size)}
+
+ {lun.size !== undefined + ? formatSize(+lun.size) + : _('unknownSize')} +
)} {includes(['nfs', 'hba'], type) && (