mirror of https://github.com/portainer/portainer
51 lines
2.3 KiB
JavaScript
51 lines
2.3 KiB
JavaScript
import _ from 'lodash-es';
|
|
import PortainerError from 'Portainer/error';
|
|
|
|
import KubernetesDeploymentHistoryHelper from 'Kubernetes/helpers/history/deployment';
|
|
import KubernetesDaemonSetHistoryHelper from 'Kubernetes/helpers/history/daemonset';
|
|
import KubernetesStatefulSetHistoryHelper from 'Kubernetes/helpers/history/statefulset';
|
|
import { KubernetesApplicationTypes } from 'Kubernetes/models/application/models';
|
|
|
|
class KubernetesHistoryHelper {
|
|
static getRevisions(rawRevisions, application) {
|
|
let currentRevision, revisionsList;
|
|
|
|
switch (application.ApplicationType) {
|
|
case KubernetesApplicationTypes.DEPLOYMENT:
|
|
[currentRevision, revisionsList] = KubernetesHistoryHelper._getDeploymentRevisions(rawRevisions, application.Raw);
|
|
break;
|
|
case KubernetesApplicationTypes.DAEMONSET:
|
|
[currentRevision, revisionsList] = KubernetesHistoryHelper._getDaemonSetRevisions(rawRevisions, application.Raw);
|
|
break;
|
|
case KubernetesApplicationTypes.STATEFULSET:
|
|
[currentRevision, revisionsList] = KubernetesHistoryHelper._getStatefulSetRevisions(rawRevisions, application.Raw);
|
|
break;
|
|
default:
|
|
throw new PortainerError('Unable to determine which association to use');
|
|
}
|
|
revisionsList = _.sortBy(revisionsList, 'revision');
|
|
return [currentRevision, revisionsList];
|
|
}
|
|
|
|
static _getDeploymentRevisions(rsList, deployment) {
|
|
const appRS = KubernetesDeploymentHistoryHelper.filterOwnedRevisions(rsList, deployment);
|
|
const currentRS = KubernetesDeploymentHistoryHelper.getCurrentRevision(appRS, deployment);
|
|
const versionedRS = KubernetesDeploymentHistoryHelper.filterVersionedRevisions(appRS);
|
|
return [currentRS, versionedRS];
|
|
}
|
|
|
|
static _getDaemonSetRevisions(crList, daemonSet) {
|
|
const appCR = KubernetesDaemonSetHistoryHelper.filterOwnedRevisions(crList, daemonSet);
|
|
const currentCR = KubernetesDaemonSetHistoryHelper.getCurrentRevision(appCR, daemonSet);
|
|
return [currentCR, appCR];
|
|
}
|
|
|
|
static _getStatefulSetRevisions(crList, statefulSet) {
|
|
const appCR = KubernetesStatefulSetHistoryHelper.filterOwnedRevisions(crList, statefulSet);
|
|
const currentCR = KubernetesStatefulSetHistoryHelper.getCurrentRevision(appCR, statefulSet);
|
|
return [currentCR, appCR];
|
|
}
|
|
}
|
|
|
|
export default KubernetesHistoryHelper;
|