Fix labels not being saved on hosted providers

This commit is contained in:
Neil MacDougall 2023-01-19 17:17:17 +00:00
parent f908bcfad5
commit 7ee32205f3
2 changed files with 25 additions and 2 deletions

View File

@ -1075,7 +1075,7 @@ export default Resource.extend(Grafana, ResourceUsage, {
return true;
},
save(opt) {
save(opt, originalModel) {
const {
eksConfig, gkeConfig, aksConfig
} = this;
@ -1090,6 +1090,28 @@ export default Resource.extend(Grafana, ResourceUsage, {
}
if (!isEmpty(options)) {
if (originalModel && originalModel.model && originalModel.model.originalCluster) {
const originalLabels = originalModel.model.originalCluster.labels;
// Check to see if the labels have changed and send them, if they have
let currentLabels = '';
Object.keys(originalLabels).forEach((key) => {
currentLabels += `${ key }=${ originalLabels[key] },`;
});
let newLabels = '';
Object.keys(this.labels).forEach((key) => {
newLabels += `${ key }=${ this.labels[key] },`;
});
if (currentLabels !== newLabels) {
// Labels changed
options.data.labels = this.labels;
}
}
return this._super(options);
}

View File

@ -91,7 +91,8 @@ export default Mixin.create({
},
doSave(opt) {
return get(this, 'primaryResource').save(opt).then((newData) => {
// Pass this in case we need to check the previous model when saving
return get(this, 'primaryResource').save(opt, this).then((newData) => {
return this.mergeResult(newData);
});
},