Add support for not_installable/scheduled and to not show created banner
This commit is contained in:
parent
001de85e7c
commit
f3a3566edc
6 changed files with 21 additions and 5 deletions
|
@ -132,9 +132,12 @@ export default class Clusters {
|
|||
|
||||
handleSuccess(data) {
|
||||
const prevApplicationMap = Object.assign({}, this.store.state.applications);
|
||||
const prevStatus = this.store.state.status;
|
||||
this.store.updateStateFromServer(data.data);
|
||||
this.checkForNewInstalls(prevApplicationMap, this.store.state.applications);
|
||||
this.updateContainer(this.store.state.status, this.store.state.statusReason);
|
||||
if (prevStatus.length == 0 || prevStatus !== this.store.state.status) {
|
||||
this.updateContainer(this.store.state.status, this.store.state.statusReason);
|
||||
}
|
||||
}
|
||||
|
||||
toggle() {
|
||||
|
|
|
@ -3,6 +3,8 @@ import { s__ } from '../../locale';
|
|||
import eventHub from '../event_hub';
|
||||
import loadingButton from '../../vue_shared/components/loading_button.vue';
|
||||
import {
|
||||
APPLICATION_NOT_INSTALLABLE,
|
||||
APPLICATION_SCHEDULED,
|
||||
APPLICATION_INSTALLABLE,
|
||||
APPLICATION_INSTALLING,
|
||||
APPLICATION_INSTALLED,
|
||||
|
@ -59,6 +61,7 @@ export default {
|
|||
},
|
||||
installButtonLoading() {
|
||||
return !this.status ||
|
||||
this.status === APPLICATION_SCHEDULED ||
|
||||
this.status === APPLICATION_INSTALLING ||
|
||||
this.requestStatus === REQUEST_LOADING;
|
||||
},
|
||||
|
@ -72,9 +75,9 @@ export default {
|
|||
},
|
||||
installButtonLabel() {
|
||||
let label;
|
||||
if (this.status === APPLICATION_INSTALLABLE || this.status === APPLICATION_ERROR) {
|
||||
if (this.status === APPLICATION_INSTALLABLE || this.status === APPLICATION_ERROR || this.status === APPLICATION_NOT_INSTALLABLE) {
|
||||
label = s__('ClusterIntegration|Install');
|
||||
} else if (this.status === APPLICATION_INSTALLING) {
|
||||
} else if (this.status === APPLICATION_SCHEDULED || this.status === APPLICATION_INSTALLING) {
|
||||
label = s__('ClusterIntegration|Installing');
|
||||
} else if (this.status === APPLICATION_INSTALLED) {
|
||||
label = s__('ClusterIntegration|Installed');
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// These need to match what is returned from the server
|
||||
export const APPLICATION_NOT_INSTALLABLE = 'not_installable';
|
||||
export const APPLICATION_INSTALLABLE = 'installable';
|
||||
export const APPLICATION_SCHEDULED = 'scheduled';
|
||||
export const APPLICATION_INSTALLING = 'installing';
|
||||
export const APPLICATION_INSTALLED = 'installed';
|
||||
export const APPLICATION_ERROR = 'error';
|
||||
|
|
|
@ -11,10 +11,16 @@ module Clusters
|
|||
|
||||
validates :cluster, presence: true
|
||||
|
||||
after_initialize :set_initial_status
|
||||
|
||||
def self.application_name
|
||||
self.to_s.demodulize.underscore
|
||||
end
|
||||
|
||||
def set_initial_status
|
||||
self.status = 0 unless cluster.platform_kubernetes_active?
|
||||
end
|
||||
|
||||
def name
|
||||
self.class.application_name
|
||||
end
|
||||
|
|
|
@ -37,6 +37,9 @@ module Clusters
|
|||
delegate :on_creation?, to: :provider, allow_nil: true
|
||||
delegate :update_kubernetes_integration!, to: :platform, allow_nil: true
|
||||
|
||||
delegate :active?, to: :platform_kubernetes, prefix: true, allow_nil: true
|
||||
delegate :installed?, to: :application_helm, prefix: true, allow_nil: true
|
||||
|
||||
enum platform_type: {
|
||||
kubernetes: 1
|
||||
}
|
||||
|
@ -58,8 +61,6 @@ module Clusters
|
|||
end
|
||||
|
||||
def applications
|
||||
return [] unless kubernetes?
|
||||
|
||||
[
|
||||
application_helm || build_application_helm
|
||||
]
|
||||
|
|
|
@ -5,6 +5,7 @@ module Clusters
|
|||
|
||||
included do
|
||||
state_machine :status, initial: :installable do
|
||||
state :not_installable, value: -2
|
||||
state :errored, value: -1
|
||||
state :installable, value: 0
|
||||
state :scheduled, value: 1
|
||||
|
|
Loading…
Reference in a new issue