UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

61 lines 8.38 kB
import { Injectable } from '@angular/core'; import { catchError, combineLatest, map, of, shareReplay, tap, } from 'rxjs'; import { compareMinorVersion, PUBLIC_NAMESPACE, publishRef, } from '../core/public-api'; import { K8sApiService } from './k8s-api.service'; import * as i0 from "@angular/core"; import * as i1 from "./k8s-api.service"; export class ClusterVersionService { constructor(k8sApi) { this.k8sApi = k8sApi; this.store = {}; this.platformVersion$ = this.k8sApi .getGlobalResource({ definition: { type: 'configmaps' }, namespace: PUBLIC_NAMESPACE, name: 'platform', }) .pipe(map(config => config.data.version.slice(1)), shareReplay(1)); this.isOldCluster = (cluster) => { return combineLatest([ this.getClusterVersion(cluster), this.platformVersion(), ]).pipe(map(([clusterVersion, platformVersion]) => compareMinorVersion(clusterVersion, platformVersion) < 0), catchError(() => of(false)), publishRef()); }; } /** * @deprecated */ isPrevLTS(cluster) { return this.isOldCluster(cluster); } clusterOldThan(cluster, version) { return this.getClusterVersion(cluster).pipe(map(clusterVersion => compareMinorVersion(clusterVersion, version) < 0), publishRef()); } platformVersion() { return this.platformVersion$; } getClusterVersion(cluster) { if (this.store[cluster]) { return of(this.store[cluster]); } return this.k8sApi .getGlobalResource({ definition: { type: 'clustermodules', apiVersion: 'v1alpha1', apiGroup: 'cluster.alauda.io', }, name: cluster, }) .pipe(map(cluster => cluster.spec.version.slice(1)), tap(version => { this.store[cluster] = version; })); } static { this.ɵfac = function ClusterVersionService_Factory(t) { return new (t || ClusterVersionService)(i0.ɵɵinject(i1.K8sApiService)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ClusterVersionService, factory: ClusterVersionService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ClusterVersionService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i1.K8sApiService }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci12ZXJzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXBpL2NsdXN0ZXItdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsVUFBVSxHQUNYLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFHbEQsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUE2QixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBYjFDLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBRTFCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNO2FBQzVDLGlCQUFpQixDQUE0QztZQUM1RCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFXSixpQkFBWSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7WUFDakMsT0FBTyxhQUFhLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUU7YUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLENBQ3BDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQzNELEVBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMzQixVQUFVLEVBQUUsQ0FDYixDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBckJtRCxDQUFDO0lBRXREOztPQUVHO0lBQ0gsU0FBUyxDQUFDLE9BQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFnQkQsY0FBYyxDQUFDLE9BQWUsRUFBRSxPQUFlO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN2RSxVQUFVLEVBQUUsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZTtRQUMvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixpQkFBaUIsQ0FBZ0M7WUFDaEQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixRQUFRLEVBQUUsbUJBQW1CO2FBQzlCO1lBQ0QsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM3QyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztzRkFuRVUscUJBQXFCO3VFQUFyQixxQkFBcUIsV0FBckIscUJBQXFCLG1CQURSLE1BQU07O2lGQUNuQixxQkFBcUI7Y0FEakMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNoYXJlUmVwbGF5LFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBjb21wYXJlTWlub3JWZXJzaW9uLFxuICBQVUJMSUNfTkFNRVNQQUNFLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBLOHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi9rOHMtYXBpLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENsdXN0ZXJWZXJzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3RvcmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtVmVyc2lvbiQgPSB0aGlzLms4c0FwaVxuICAgIC5nZXRHbG9iYWxSZXNvdXJjZTx7IHNwZWM6IG51bGw7IGRhdGE6IHsgdmVyc2lvbjogc3RyaW5nIH0gfT4oe1xuICAgICAgZGVmaW5pdGlvbjogeyB0eXBlOiAnY29uZmlnbWFwcycgfSxcbiAgICAgIG5hbWVzcGFjZTogUFVCTElDX05BTUVTUEFDRSxcbiAgICAgIG5hbWU6ICdwbGF0Zm9ybScsXG4gICAgfSlcbiAgICAucGlwZShcbiAgICAgIG1hcChjb25maWcgPT4gY29uZmlnLmRhdGEudmVyc2lvbi5zbGljZSgxKSksXG4gICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgaXNQcmV2TFRTKGNsdXN0ZXI6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzT2xkQ2x1c3RlcihjbHVzdGVyKTtcbiAgfVxuXG4gIGlzT2xkQ2x1c3RlciA9IChjbHVzdGVyOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmdldENsdXN0ZXJWZXJzaW9uKGNsdXN0ZXIpLFxuICAgICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24oKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2NsdXN0ZXJWZXJzaW9uLCBwbGF0Zm9ybVZlcnNpb25dKSA9PlxuICAgICAgICAgIGNvbXBhcmVNaW5vclZlcnNpb24oY2x1c3RlclZlcnNpb24sIHBsYXRmb3JtVmVyc2lvbikgPCAwLFxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9O1xuXG4gIGNsdXN0ZXJPbGRUaGFuKGNsdXN0ZXI6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2x1c3RlclZlcnNpb24oY2x1c3RlcikucGlwZShcbiAgICAgIG1hcChjbHVzdGVyVmVyc2lvbiA9PiBjb21wYXJlTWlub3JWZXJzaW9uKGNsdXN0ZXJWZXJzaW9uLCB2ZXJzaW9uKSA8IDApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBwbGF0Zm9ybVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVZlcnNpb24kO1xuICB9XG5cbiAgZ2V0Q2x1c3RlclZlcnNpb24oY2x1c3Rlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5zdG9yZVtjbHVzdGVyXSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuc3RvcmVbY2x1c3Rlcl0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRHbG9iYWxSZXNvdXJjZTx7IHNwZWM6IHsgdmVyc2lvbjogc3RyaW5nIH0gfT4oe1xuICAgICAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgICAgdHlwZTogJ2NsdXN0ZXJtb2R1bGVzJyxcbiAgICAgICAgICBhcGlWZXJzaW9uOiAndjFhbHBoYTEnLFxuICAgICAgICAgIGFwaUdyb3VwOiAnY2x1c3Rlci5hbGF1ZGEuaW8nLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiBjbHVzdGVyLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoY2x1c3RlciA9PiBjbHVzdGVyLnNwZWMudmVyc2lvbi5zbGljZSgxKSksXG4gICAgICAgIHRhcCh2ZXJzaW9uID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlW2NsdXN0ZXJdID0gdmVyc2lvbjtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG59XG4iXX0=