summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js')
-rw-r--r--app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js35
1 files changed, 27 insertions, 8 deletions
diff --git a/app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js b/app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js
index 11bd04f5b01..409265175a4 100644
--- a/app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js
+++ b/app/assets/javascripts/projects/gke_cluster_dropdowns/store/actions.js
@@ -1,9 +1,9 @@
/* global gapi */
import * as types from './mutation_types';
-const gapiRequest = ({ service, params, commit, mutation, payloadKey }) =>
+const gapiResourceListRequest = ({ resource, params, commit, mutation, payloadKey }) =>
new Promise((resolve, reject) => {
- const request = service.list(params);
+ const request = resource.list(params);
return request.then(
resp => {
@@ -32,17 +32,36 @@ export const setMachineType = ({ commit }, selectedMachineType) => {
};
export const fetchProjects = ({ commit }) =>
- gapiRequest({
- service: gapi.client.cloudresourcemanager.projects,
+ gapiResourceListRequest({
+ resource: gapi.client.cloudresourcemanager.projects,
params: {},
commit,
mutation: types.SET_PROJECTS,
payloadKey: 'projects',
});
+export const validateProjectBilling = ({ commit, state }) =>
+ new Promise((resolve, reject) => {
+ const request = gapi.client.cloudbilling.projects.getBillingInfo({
+ name: `projects/${state.selectedProject.projectId}`,
+ });
+
+ return request.then(
+ resp => {
+ const { billingEnabled } = resp.result;
+
+ commit(types.SET_PROJECT_BILLING_STATUS, !!billingEnabled);
+ resolve();
+ },
+ resp => {
+ reject(resp);
+ },
+ );
+ });
+
export const fetchZones = ({ commit, state }) =>
- gapiRequest({
- service: gapi.client.compute.zones,
+ gapiResourceListRequest({
+ resource: gapi.client.compute.zones,
params: {
project: state.selectedProject.projectId,
},
@@ -52,8 +71,8 @@ export const fetchZones = ({ commit, state }) =>
});
export const fetchMachineTypes = ({ commit, state }) =>
- gapiRequest({
- service: gapi.client.compute.machineTypes,
+ gapiResourceListRequest({
+ resource: gapi.client.compute.machineTypes,
params: {
project: state.selectedProject.projectId,
zone: state.selectedZone,