mirror of https://github.com/portainer/portainer
				
				
				
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
| import angular from 'angular';
 | |
| import PortainerError from 'Portainer/error';
 | |
| 
 | |
| import KubernetesHistoryHelper from 'Kubernetes/helpers/history';
 | |
| import { KubernetesApplicationTypes } from 'Kubernetes/models/application/models';
 | |
| 
 | |
| class KubernetesHistoryService {
 | |
|   /* @ngInject */
 | |
|   constructor($async, KubernetesReplicaSetService, KubernetesControllerRevisionService) {
 | |
|     this.$async = $async;
 | |
|     this.KubernetesReplicaSetService = KubernetesReplicaSetService;
 | |
|     this.KubernetesControllerRevisionService = KubernetesControllerRevisionService;
 | |
| 
 | |
|     this.getAsync = this.getAsync.bind(this);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * GET
 | |
|    */
 | |
|   async getAsync(application) {
 | |
|     try {
 | |
|       const namespace = application.ResourcePool;
 | |
|       let rawRevisions;
 | |
| 
 | |
|       switch (application.ApplicationType) {
 | |
|         case KubernetesApplicationTypes.DEPLOYMENT:
 | |
|           rawRevisions = await this.KubernetesReplicaSetService.get(namespace);
 | |
|           break;
 | |
|         case KubernetesApplicationTypes.DAEMONSET:
 | |
|           rawRevisions = await this.KubernetesControllerRevisionService.get(namespace);
 | |
|           break;
 | |
|         case KubernetesApplicationTypes.STATEFULSET:
 | |
|           rawRevisions = await this.KubernetesControllerRevisionService.get(namespace);
 | |
|           break;
 | |
|         case KubernetesApplicationTypes.POD:
 | |
|           rawRevisions = [];
 | |
|           break;
 | |
|         default:
 | |
|           throw new PortainerError('Unable to determine which association to use for history');
 | |
|       }
 | |
|       if (rawRevisions.length) {
 | |
|         const [currentRevision, revisionsList] = KubernetesHistoryHelper.getRevisions(rawRevisions, application);
 | |
|         application.CurrentRevision = currentRevision;
 | |
|         application.Revisions = revisionsList;
 | |
|       }
 | |
|       return application;
 | |
|     } catch (err) {
 | |
|       throw new PortainerError('', err);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   get(application) {
 | |
|     return this.$async(this.getAsync, application);
 | |
|   }
 | |
| }
 | |
| 
 | |
| export default KubernetesHistoryService;
 | |
| angular.module('portainer.kubernetes').service('KubernetesHistoryService', KubernetesHistoryService);
 |