From 171ecaaf625f68dbf6b9018e4a202941fde5e9ac Mon Sep 17 00:00:00 2001 From: badrAZ Date: Wed, 21 Oct 2020 14:36:55 +0200 Subject: [PATCH] feat(xo-server, xo-web/host): display installed certificates (#5319) See #5134 --- CHANGELOG.unreleased.md | 6 ++- packages/xo-server/src/xapi-object-to-xo.js | 6 +++ packages/xo-web/src/common/intl/messages.js | 4 ++ .../xo-web/src/xo-app/host/tab-advanced.js | 38 +++++++++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index c9c57aa06..eff0e9d9b 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -7,6 +7,8 @@ > Users must be able to say: “Nice enhancement, I'm eager to test it” +- [Host/Advanced] Display installed certificates [#5134](https://github.com/vatesfr/xen-orchestra/issues/5134) (PR [#5319](https://github.com/vatesfr/xen-orchestra/pull/5319)) + ### Bug fixes > Users must be able to say: “I had this issue, happy to know it's fixed” @@ -33,5 +35,5 @@ - vhd-lib minor - @xen-orchestra/audit-core minor - xo-server-audit minor -- xo-web patch -- xo-server patch +- xo-web minor +- xo-server minor diff --git a/packages/xo-server/src/xapi-object-to-xo.js b/packages/xo-server/src/xapi-object-to-xo.js index f301c2ff5..d0ac1f594 100644 --- a/packages/xo-server/src/xapi-object-to-xo.js +++ b/packages/xo-server/src/xapi-object-to-xo.js @@ -264,6 +264,12 @@ const TRANSFORMS = { capability.startsWith('hvm') ), + // Only exists on XCP-ng/CH >= 8.2 + certificates: obj.$certificates?.map(({ fingerprint, not_after }) => ({ + fingerprint, + notAfter: toTimestamp(not_after), + })), + // TODO: dedupe. PIFs: link(obj, 'PIFs'), $PIFs: link(obj, 'PIFs'), diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index 537ea594b..1f28cfc4e 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -83,6 +83,9 @@ const messages = { advancedSettings: 'Advanced settings', txChecksumming: 'TX checksumming', unknownSize: 'Unknown size', + installedCertificates: 'Installed certificates', + expiry: 'Expiry', + fingerprint: 'Fingerprint', // ----- Modals ----- alertOk: 'OK', @@ -908,6 +911,7 @@ const messages = { hostLicenseExpiry: 'Expiry', hostRemoteSyslog: 'Remote syslog', hostIommu: 'IOMMU', + hostNoCertificateInstalled: 'No certificates installed on this host', supplementalPacks: 'Installed supplemental packs', supplementalPackNew: 'Install new supplemental pack', supplementalPackPoolNew: 'Install supplemental pack on every host', diff --git a/packages/xo-web/src/xo-app/host/tab-advanced.js b/packages/xo-web/src/xo-app/host/tab-advanced.js index 221b59142..72b89486c 100644 --- a/packages/xo-web/src/xo-app/host/tab-advanced.js +++ b/packages/xo-web/src/xo-app/host/tab-advanced.js @@ -452,6 +452,44 @@ export default class extends Component { , ]} + {host.certificates !== undefined && ( +
+

{_('installedCertificates')}

+ {host.certificates.length > 0 ? ( +
    + {host.certificates.map(({ fingerprint, notAfter }) => ( +
  • + + + + {_('fingerprint')} + + + {fingerprint} + + + + + {_('expiry')} + + + + + + +
  • + ))} +
+ ) : ( + {_('hostNoCertificateInstalled')} + )} +
+ )}