mirror of https://github.com/portainer/portainer
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
import PortainerError from 'Portainer/error';
|
|
|
|
export default class KubernetesHelmApplicationController {
|
|
/* @ngInject */
|
|
constructor($async, $state, Authentication, Notifications, HelmService) {
|
|
this.$async = $async;
|
|
this.$state = $state;
|
|
this.Authentication = Authentication;
|
|
this.Notifications = Notifications;
|
|
this.HelmService = HelmService;
|
|
}
|
|
|
|
/**
|
|
* APPLICATION
|
|
*/
|
|
async getHelmApplication() {
|
|
try {
|
|
this.state.dataLoading = true;
|
|
const releases = await this.HelmService.listReleases(this.endpoint.Id, { selector: `name=${this.state.params.name}`, namespace: this.state.params.namespace });
|
|
if (releases.length > 0) {
|
|
this.state.release = releases[0];
|
|
} else {
|
|
throw new PortainerError(`Release ${this.state.params.name} not found`);
|
|
}
|
|
} catch (err) {
|
|
this.Notifications.error('Failure', err, 'Unable to retrieve helm application details');
|
|
} finally {
|
|
this.state.dataLoading = false;
|
|
}
|
|
}
|
|
|
|
$onInit() {
|
|
return this.$async(async () => {
|
|
this.state = {
|
|
dataLoading: true,
|
|
viewReady: false,
|
|
params: {
|
|
name: this.$state.params.name,
|
|
namespace: this.$state.params.namespace,
|
|
},
|
|
release: {
|
|
name: undefined,
|
|
chart: undefined,
|
|
app_version: undefined,
|
|
},
|
|
};
|
|
|
|
await this.getHelmApplication();
|
|
this.state.viewReady = true;
|
|
});
|
|
}
|
|
}
|