summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerasmus <jerasmus@gitlab.com>2019-09-09 12:22:52 +0200
committerjerasmus <jerasmus@gitlab.com>2019-09-09 12:31:26 +0200
commit1e31d66dfb4b69551ec5f48de8b72c397748f200 (patch)
tree8a8d1789cf5391f9f4d1976ff78ad01a22167f4d
parent51ce25f43e4914bb063e46e12eef2636e5fb62ef (diff)
downloadgitlab-ce-cluster-environments-polling.tar.gz
Implement polling (frontend)cluster-environments-polling
Implemented the frontend polling
-rw-r--r--app/assets/javascripts/clusters/clusters_bundle.js36
-rw-r--r--app/assets/javascripts/clusters/services/clusters_service.js2
-rw-r--r--spec/frontend/clusters/clusters_bundle_spec.js4
3 files changed, 17 insertions, 25 deletions
diff --git a/app/assets/javascripts/clusters/clusters_bundle.js b/app/assets/javascripts/clusters/clusters_bundle.js
index 28850710f80..8d5822439e5 100644
--- a/app/assets/javascripts/clusters/clusters_bundle.js
+++ b/app/assets/javascripts/clusters/clusters_bundle.js
@@ -111,15 +111,19 @@ export default class Clusters {
this.initApplications(clusterType);
this.initEnvironments();
- if (clusterEnvironmentsPath) {
- this.fetchEnvironments();
+ if (clusterEnvironmentsPath && this.environments) {
+ this.store.toggleFetchEnvironments(true);
+
+ this.initPolling('fetchClusterEnvironments', data =>
+ this.handleClusterEnvironmentsSuccess(data),
+ );
}
this.updateContainer(null, this.store.state.status, this.store.state.statusReason);
this.addListeners();
if (statusPath && !this.environments) {
- this.initPolling();
+ this.initPolling('fetchClusterStatus', data => this.handleClusterStatusSuccess(data));
}
}
@@ -179,16 +183,9 @@ export default class Clusters {
});
}
- fetchEnvironments() {
- this.store.toggleFetchEnvironments(true);
-
- this.service
- .fetchClusterEnvironments()
- .then(data => {
- this.store.toggleFetchEnvironments(false);
- this.store.updateEnvironments(data.data);
- })
- .catch(() => Clusters.handleError());
+ handleClusterEnvironmentsSuccess(data) {
+ this.store.toggleFetchEnvironments(false);
+ this.store.updateEnvironments(data.data);
}
static initDismissableCallout() {
@@ -224,21 +221,16 @@ export default class Clusters {
eventHub.$off('uninstallApplication');
}
- initPolling() {
+ initPolling(method, successCallback) {
this.poll = new Poll({
resource: this.service,
- method: 'fetchData',
- successCallback: data => this.handleSuccess(data),
+ method,
+ successCallback,
errorCallback: () => Clusters.handleError(),
});
if (!Visibility.hidden()) {
this.poll.makeRequest();
- } else {
- this.service
- .fetchData()
- .then(data => this.handleSuccess(data))
- .catch(() => Clusters.handleError());
}
Visibility.change(() => {
@@ -254,7 +246,7 @@ export default class Clusters {
Flash(s__('ClusterIntegration|Something went wrong on our end.'));
}
- handleSuccess(data) {
+ handleClusterStatusSuccess(data) {
const prevStatus = this.store.state.status;
const prevApplicationMap = Object.assign({}, this.store.state.applications);
diff --git a/app/assets/javascripts/clusters/services/clusters_service.js b/app/assets/javascripts/clusters/services/clusters_service.js
index 9139e0beafb..fa12802b3de 100644
--- a/app/assets/javascripts/clusters/services/clusters_service.js
+++ b/app/assets/javascripts/clusters/services/clusters_service.js
@@ -17,7 +17,7 @@ export default class ClusterService {
};
}
- fetchData() {
+ fetchClusterStatus() {
return axios.get(this.options.endpoint);
}
diff --git a/spec/frontend/clusters/clusters_bundle_spec.js b/spec/frontend/clusters/clusters_bundle_spec.js
index 80816faa5fc..e012d5ca7a1 100644
--- a/spec/frontend/clusters/clusters_bundle_spec.js
+++ b/spec/frontend/clusters/clusters_bundle_spec.js
@@ -327,14 +327,14 @@ describe('Clusters', () => {
});
});
- describe('handleSuccess', () => {
+ describe('handleClusterStatusSuccess', () => {
beforeEach(() => {
jest.spyOn(cluster.store, 'updateStateFromServer').mockReturnThis();
jest.spyOn(cluster, 'toggleIngressDomainHelpText').mockReturnThis();
jest.spyOn(cluster, 'checkForNewInstalls').mockReturnThis();
jest.spyOn(cluster, 'updateContainer').mockReturnThis();
- cluster.handleSuccess({ data: {} });
+ cluster.handleClusterStatusSuccess({ data: {} });
});
it('updates clusters store', () => {