From 65b41479a1aa865d5bc1132a2a334506a7ad2d8e Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 2 Oct 2020 11:30:24 +0100 Subject: [PATCH 1/6] Fix upgrade not showing when an RC is deployed --- .../tabs/helm-release-helper.service.spec.ts | 28 +++++++++++++++++ .../tabs/helm-release-helper.service.ts | 31 +++++++++++++++++-- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts diff --git a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts new file mode 100644 index 0000000000..d45bb1b05f --- /dev/null +++ b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts @@ -0,0 +1,28 @@ +import { Version } from './helm-release-helper.service'; + +fdescribe('HelmReleaseHelperService', () => { + + describe('Version', () => { + + const v10 = new Version('1.0.0'); + const v11 = new Version('1.1.0'); + const v11_rc1 = new Version('1.0.0-rc.1'); + const v11_rc2 = new Version('1.0.0-rc.2'); + const v201 = new Version('2.0.1'); + const v101 = new Version('1.0.1'); + + it('version comparisons', () => { + expect(v11.isNewer(v10)).toBe(true); + expect(v11_rc1.isNewer(v11)).toBe(false); + expect(v11_rc2.isNewer(v11_rc1)).toBe(true); + expect(v201.isNewer(v11)).toBe(true); + expect(v201.isNewer(v11_rc1)).toBe(true); + expect(v10.isNewer(v11)).toBe(false); + expect(v101.isNewer(v11)).toBe(false); + expect(v101.isNewer(v10)).toBe(true); + + expect(v11_rc1.isNewer(v10)).toBe(false); + + }); + }); +}); diff --git a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts index 93dffcc4e4..d740bda8f5 100644 --- a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts +++ b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts @@ -19,18 +19,26 @@ import { import { workloadsEntityCatalog } from '../../workloads-entity-catalog'; // Simple class to represent MAJOR.MINOR.REVISION version -class Version { +export class Version { public major: number; public minor: number; public revision: number; + public prerelease: string; + public valid: boolean; constructor(v: string) { this.valid = false; if (typeof v === 'string') { - const parts = v.split('.'); + let version = v; + const pre = v.split('-'); + if (pre.length > 1) { + version = pre[0]; + this.prerelease = pre[1]; + } + const parts = version.split('.'); if (parts.length === 3) { this.major = parseInt(parts[0], 10); this.minor = parseInt(parts[1], 10); @@ -55,6 +63,19 @@ class Version { return true; } if (this.minor === other.minor) { + if (this.revision == other.revision) { + // Same version numbers + if (this.prerelease && !other.prerelease) { + return false; + } + if(!this.prerelease && other.prerelease) { + return true + } + if (this.prerelease && other.prerelease) { + return this.prerelease > other.prerelease; + } + return false; + } return this.revision > other.revision; } } @@ -221,9 +242,15 @@ export class HelmReleaseHelperService { map(([charts, release]) => { for (const c of charts) { if (this.isProbablySameChart(c.attributes, release.chart.metadata)) { + console.log('has upgrade'); + console.log(c); + console.log(release); + console.log('--------------------'); if (c.relationships && c.relationships.latestChartVersion && c.relationships.latestChartVersion.data) { const latest = new Version(c.relationships.latestChartVersion.data.version); const current = new Version(release.chart.metadata.version); + console.log(latest); + console.log(current); if (latest.isNewer(current)) { return { release, From 831fec6de33801a988b6bb14134c50733f8bdac4 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 2 Oct 2020 12:06:36 +0100 Subject: [PATCH 2/6] Fix lint --- .../workloads/release/tabs/helm-release-helper.service.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts index d740bda8f5..bcb59f7d14 100644 --- a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts +++ b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.ts @@ -63,13 +63,13 @@ export class Version { return true; } if (this.minor === other.minor) { - if (this.revision == other.revision) { + if (this.revision === other.revision) { // Same version numbers if (this.prerelease && !other.prerelease) { return false; } if(!this.prerelease && other.prerelease) { - return true + return true; } if (this.prerelease && other.prerelease) { return this.prerelease > other.prerelease; @@ -242,10 +242,6 @@ export class HelmReleaseHelperService { map(([charts, release]) => { for (const c of charts) { if (this.isProbablySameChart(c.attributes, release.chart.metadata)) { - console.log('has upgrade'); - console.log(c); - console.log(release); - console.log('--------------------'); if (c.relationships && c.relationships.latestChartVersion && c.relationships.latestChartVersion.data) { const latest = new Version(c.relationships.latestChartVersion.data.version); const current = new Version(release.chart.metadata.version); From a17666ece6169635d86f2b94b15f33de2c521bff Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 2 Oct 2020 12:07:14 +0100 Subject: [PATCH 3/6] Lint fix --- .../release/tabs/helm-release-helper.service.spec.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts index d45bb1b05f..d9e3bf77b4 100644 --- a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts +++ b/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts @@ -6,22 +6,22 @@ fdescribe('HelmReleaseHelperService', () => { const v10 = new Version('1.0.0'); const v11 = new Version('1.1.0'); - const v11_rc1 = new Version('1.0.0-rc.1'); - const v11_rc2 = new Version('1.0.0-rc.2'); + const v11rc1 = new Version('1.0.0-rc.1'); + const v11rc2 = new Version('1.0.0-rc.2'); const v201 = new Version('2.0.1'); const v101 = new Version('1.0.1'); it('version comparisons', () => { expect(v11.isNewer(v10)).toBe(true); - expect(v11_rc1.isNewer(v11)).toBe(false); - expect(v11_rc2.isNewer(v11_rc1)).toBe(true); + expect(v11rc1.isNewer(v11)).toBe(false); + expect(v11rc2.isNewer(v11rc1)).toBe(true); expect(v201.isNewer(v11)).toBe(true); - expect(v201.isNewer(v11_rc1)).toBe(true); + expect(v201.isNewer(v11rc1)).toBe(true); expect(v10.isNewer(v11)).toBe(false); expect(v101.isNewer(v11)).toBe(false); expect(v101.isNewer(v10)).toBe(true); - expect(v11_rc1.isNewer(v10)).toBe(false); + expect(v11rc1.isNewer(v10)).toBe(false); }); }); From fc041469d5379397fe63b8ce605c2f724e7e271e Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Fri, 2 Oct 2020 16:56:49 +0100 Subject: [PATCH 4/6] Move test file --- .../workloads/release/tabs/helm-release-helper.service.spec.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/frontend/packages/{suse-extensions/src/custom => kubernetes/src}/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts (100%) diff --git a/src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts b/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts similarity index 100% rename from src/frontend/packages/suse-extensions/src/custom/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts rename to src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts From 511cd86c36a4ec72b10387ab9d61cc93d64772e8 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Mon, 5 Oct 2020 10:43:48 +0100 Subject: [PATCH 5/6] Update helm-release-helper.service.spec.ts --- .../workloads/release/tabs/helm-release-helper.service.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts b/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts index d9e3bf77b4..94a111d642 100644 --- a/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts +++ b/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.spec.ts @@ -1,6 +1,6 @@ import { Version } from './helm-release-helper.service'; -fdescribe('HelmReleaseHelperService', () => { +describe('HelmReleaseHelperService', () => { describe('Version', () => { From 9a056ff3e6b7b7e9f693fa7bbafd175514f4a73b Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Mon, 5 Oct 2020 10:44:36 +0100 Subject: [PATCH 6/6] Update helm-release-helper.service.ts --- .../workloads/release/tabs/helm-release-helper.service.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.ts b/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.ts index bcb59f7d14..f23a4ad0b5 100644 --- a/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.ts +++ b/src/frontend/packages/kubernetes/src/kubernetes/workloads/release/tabs/helm-release-helper.service.ts @@ -245,8 +245,6 @@ export class HelmReleaseHelperService { if (c.relationships && c.relationships.latestChartVersion && c.relationships.latestChartVersion.data) { const latest = new Version(c.relationships.latestChartVersion.data.version); const current = new Version(release.chart.metadata.version); - console.log(latest); - console.log(current); if (latest.isNewer(current)) { return { release,