You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2020/05/11 10:38:42 UTC
[cloudstack-primate] branch master updated: compute: cks cluster
async actions fix (#331)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack-primate.git
The following commit(s) were added to refs/heads/master by this push:
new 445e423 compute: cks cluster async actions fix (#331)
445e423 is described below
commit 445e4236272467bf85173368e9d3b2c6b4037a7e
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Mon May 11 16:08:35 2020 +0530
compute: cks cluster async actions fix (#331)
Fixes
Poll cluster async actions
Fixes related to scale cluster
Action labels from translations
Signed-off-by: Abhishek Kumar <ab...@gmail.com>
---
src/components/widgets/Status.vue | 2 ++
src/config/section/compute.js | 19 ++++++-------------
src/config/section/image.js | 6 +++---
src/locales/en.json | 9 +++++++++
src/views/compute/CreateKubernetesCluster.vue | 17 ++++++++++++++++-
src/views/compute/ScaleKubernetesCluster.vue | 24 +++++++++++++++++++-----
src/views/compute/UpgradeKubernetesCluster.vue | 19 ++++++++++++++++++-
7 files changed, 73 insertions(+), 23 deletions(-)
diff --git a/src/components/widgets/Status.vue b/src/components/widgets/Status.vue
index 75222a1..01f2ece 100644
--- a/src/components/widgets/Status.vue
+++ b/src/components/widgets/Status.vue
@@ -75,6 +75,8 @@ export default {
case 'Starting':
case 'Stopping':
case 'Scheduled':
+ case 'Scaling':
+ case 'Upgrading':
status = 'processing'
break
case 'Alert':
diff --git a/src/config/section/compute.js b/src/config/section/compute.js
index 25e3c68..ce8d2b2 100644
--- a/src/config/section/compute.js
+++ b/src/config/section/compute.js
@@ -352,7 +352,7 @@ export default {
{
api: 'createKubernetesCluster',
icon: 'plus',
- label: 'Create Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.create',
listView: true,
popup: true,
component: () => import('@/views/compute/CreateKubernetesCluster.vue')
@@ -360,28 +360,21 @@ export default {
{
api: 'startKubernetesCluster',
icon: 'caret-right',
- label: 'Start Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.start',
dataView: true,
show: (record) => { return ['Stopped'].includes(record.state) }
},
{
api: 'stopKubernetesCluster',
icon: 'stop',
- label: 'Stop Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.stop',
dataView: true,
show: (record) => { return !['Stopped'].includes(record.state) }
},
- // {
- // api: 'getKubernetesClusterConfig',
- // icon: 'cloud-download',
- // label: 'Download Cluster Config',
- // dataView: true,
- // show: (record) => { return !['Stopped'].includes(record.state) }
- // },
{
api: 'scaleKubernetesCluster',
icon: 'swap',
- label: 'Scale Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.scale',
dataView: true,
show: (record) => { return ['Created', 'Running'].includes(record.state) },
popup: true,
@@ -390,7 +383,7 @@ export default {
{
api: 'upgradeKubernetesCluster',
icon: 'plus-circle',
- label: 'Upgrade Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.upgrade',
dataView: true,
show: (record) => { return ['Created', 'Running'].includes(record.state) },
popup: true,
@@ -399,7 +392,7 @@ export default {
{
api: 'deleteKubernetesCluster',
icon: 'delete',
- label: 'Delete Kubernetes Cluster',
+ label: 'label.kubernetes.cluster.delete',
dataView: true,
show: (record) => { return !['Destroyed', 'Destroying'].includes(record.state) }
}
diff --git a/src/config/section/image.js b/src/config/section/image.js
index 39df4f2..9b0276e 100644
--- a/src/config/section/image.js
+++ b/src/config/section/image.js
@@ -185,7 +185,7 @@ export default {
{
api: 'addKubernetesSupportedVersion',
icon: 'plus',
- label: 'Add Kubernetes Version',
+ label: 'label.kubernetes.version.add',
listView: true,
popup: true,
component: () => import('@/views/image/AddKubernetesSupportedVersion.vue')
@@ -193,7 +193,7 @@ export default {
{
api: 'updateKubernetesSupportedVersion',
icon: 'edit',
- label: 'Update Kuberntes Version',
+ label: 'label.kubernetes.version.update',
dataView: true,
popup: true,
component: () => import('@/views/image/UpdateKubernetesSupportedVersion.vue')
@@ -201,7 +201,7 @@ export default {
{
api: 'deleteKubernetesSupportedVersion',
icon: 'delete',
- label: 'Delete Kubernetes Version',
+ label: 'label.kubernetes.version.update',
dataView: true
}
]
diff --git a/src/locales/en.json b/src/locales/en.json
index 1905f31..3134b00 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -600,6 +600,15 @@
"label.interval.weekly": "Every {number}",
"label.interval.monthly": "Day {number} of month",
"label.japanese.keyboard": "Japanese keyboard",
+"label.kubernetes.cluster.create": "Create Kubernetes Cluster",
+"label.kubernetes.cluster.delete": "Delete Kubernetes Cluster",
+"label.kubernetes.cluster.scale": "Scale Kubernetes Cluster",
+"label.kubernetes.cluster.start": "Start Kubernetes Cluster",
+"label.kubernetes.cluster.stop": "Stop Kubernetes Cluster",
+"label.kubernetes.cluster.Upgrade": "Upgrade Kubernetes Cluster",
+"label.kubernetes.version.add": "Add Kubernetes Version",
+"label.kubernetes.version.delete": "Delete Kubernetes Version",
+"label.kubernetes.version.update": "Update Kubernetes Version",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.local.storage":"Local Storage",
"label.make.project.owner": "Make account project owner",
diff --git a/src/views/compute/CreateKubernetesCluster.vue b/src/views/compute/CreateKubernetesCluster.vue
index 25c1b78..15b9237 100644
--- a/src/views/compute/CreateKubernetesCluster.vue
+++ b/src/views/compute/CreateKubernetesCluster.vue
@@ -403,7 +403,22 @@ export default {
params.keypair = this.keyPairs[values.keypair].id
}
api('createKubernetesCluster', params).then(json => {
- this.$message.success('Successfully created Kubernetes cluster: ' + values.name)
+ const jobId = json.createkubernetesclusterresponse.jobid
+ this.$store.dispatch('AddAsyncJob', {
+ title: this.$t('label.kubernetes.cluster.create'),
+ jobid: jobId,
+ description: values.name,
+ status: 'progress'
+ })
+ this.$pollJob({
+ jobId,
+ loadingMessage: `Create Kubernetes cluster ${values.name} in progress`,
+ catchMessage: 'Error encountered while fetching async job result',
+ successMessage: `Successfully created Kubernetes cluster ${values.name}`,
+ successMethod: result => {
+ this.$emit('refresh-data')
+ }
+ })
}).catch(error => {
this.$notifyError(error)
}).finally(() => {
diff --git a/src/views/compute/ScaleKubernetesCluster.vue b/src/views/compute/ScaleKubernetesCluster.vue
index c30b421..c07890f 100644
--- a/src/views/compute/ScaleKubernetesCluster.vue
+++ b/src/views/compute/ScaleKubernetesCluster.vue
@@ -25,7 +25,7 @@
<a-form-item :label="$t('cks.cluster.size')">
<a-input
v-decorator="['size', {
- initialValue: '1',
+ initialValue: originalSize,
rules: [{
validator: (rule, value, callback) => {
if (value && (isNaN(value) || value <= 0)) {
@@ -76,7 +76,6 @@ export default {
},
data () {
return {
- originalSize: 1,
serviceOfferings: [],
serviceOfferingLoading: false,
minCpu: 2,
@@ -93,13 +92,13 @@ export default {
})
},
created () {
+ this.originalSize = !this.isObjectEmpty(this.resource) ? this.resource.size : 1
},
mounted () {
this.fetchData()
},
methods: {
fetchData () {
- this.originalSize = !this.isObjectEmpty(this.resource) ? 1 : this.resource.size
this.fetchKubernetesVersionData()
},
isValidValueForKey (obj, key) {
@@ -165,13 +164,28 @@ export default {
id: this.resource.id
}
if (this.isValidValueForKey(values, 'size') && values.size > 0) {
- params.kubernetesversionid = this.kubernetesVersions[values.kubernetesversionid].id
+ params.size = values.size
}
if (this.isValidValueForKey(values, 'serviceofferingid') && this.arrayHasItems(this.serviceOfferings)) {
params.serviceofferingid = this.serviceOfferings[values.serviceofferingid].id
}
api('scaleKubernetesCluster', params).then(json => {
- this.$message.success('Successfully scaled Kubernetes cluster: ' + this.resource.name)
+ const jobId = json.scalekubernetesclusterresponse.jobid
+ this.$store.dispatch('AddAsyncJob', {
+ title: this.$t('label.kubernetes.cluster.scale'),
+ jobid: jobId,
+ description: this.resource.name,
+ status: 'progress'
+ })
+ this.$pollJob({
+ jobId,
+ loadingMessage: `Scale Kubernetes cluster ${this.resource.name} in progress`,
+ catchMessage: 'Error encountered while fetching async job result',
+ successMessage: `Successfully scaled Kubernetes cluster ${this.resource.name}`,
+ successMethod: result => {
+ this.$emit('refresh-data')
+ }
+ })
}).catch(error => {
this.$notifyError(error)
}).finally(() => {
diff --git a/src/views/compute/UpgradeKubernetesCluster.vue b/src/views/compute/UpgradeKubernetesCluster.vue
index bd96ae9..78dfaab 100644
--- a/src/views/compute/UpgradeKubernetesCluster.vue
+++ b/src/views/compute/UpgradeKubernetesCluster.vue
@@ -147,7 +147,24 @@ export default {
params.kubernetesversionid = this.kubernetesVersions[values.kubernetesversionid].id
}
api('upgradeKubernetesCluster', params).then(json => {
- this.$message.success('Successfully upgraded Kubernetes cluster: ' + this.resource.name)
+ this.$emit('refresh-data')
+ const jobId = json.upgradekubernetesclusterresponse.jobid
+ this.$store.dispatch('AddAsyncJob', {
+ title: this.$t('label.kubernetes.cluster.upgrade'),
+ jobid: jobId,
+ description: this.resource.name,
+ status: 'progress'
+ })
+ this.$pollJob({
+ jobId,
+ loadingMessage: `Upgrade Kubernetes cluster ${this.resource.name} in progress`,
+ catchMessage: 'Error encountered while fetching async job result',
+ successMessage: `Successfully upgraded Kubernetes cluster ${this.resource.name}`,
+ successMethod: result => {
+ this.$emit('refresh-data')
+ console.log('hello!')
+ }
+ })
}).catch(error => {
this.$notifyError(error)
}).finally(() => {