let updateEditableProperties = function(hostModel) { this.setInData(['hostAddView', 'hostAlias'], hostModel.hostAlias); this.setInData(['hostAddView', 'customProperties'], hostModel.customProperties); var credentials = utils.getIn(this.getData(), ['hostAddView', 'credentials']); if (credentials && hostModel.credential) { var credential = credentials.find((credential) => { return credential.documentSelfLink === hostModel.credential.documentSelfLink; }); this.setInData(['hostAddView', 'credential'], credential); } else { this.setInData(['hostAddView', 'credential'], null); } var placementZones = utils.getIn(this.getData(), ['hostAddView', 'placementZones']); if (placementZones && hostModel.resourcePoolLink) { var placementZone = placementZones.find((placementZone) => { return placementZone.documentSelfLink === hostModel.resourcePoolLink; }); this.setInData(['hostAddView', 'placementZone'], placementZone); } else { this.setInData(['hostAddView', 'placementZone'], null); } var deploymentPolicyProp = hostModel.customProperties.find((prop) => { return prop.name === '__deploymentPolicyLink'; }); if (deploymentPolicyProp) { var deploymentPolicies = utils.getIn(this.getData(), ['hostAddView', 'deploymentPolicies']); var deploymentPolicy = deploymentPolicies.find((policy) => { return policy.documentSelfLink === deploymentPolicyProp.value; }); this.setInData(['hostAddView', 'deploymentPolicy'], deploymentPolicy); } else { // removed this.setInData(['hostAddView', 'deploymentPolicy'], null); hostModel.customProperties.__deploymentPolicyLink = null; } };
getPlacementZonesForHostsCall: function(hosts) { let placementZones = utils.getIn(this.data, ['listView', 'placementZones']) || {}; let resourcePoolLinks = []; hosts.forEach((host) => { host.epzs.forEach((epz) => resourcePoolLinks.push(epz.epzLink)); }); let links = [...new Set(resourcePoolLinks)].filter((link) => !placementZones.hasOwnProperty(link)); if (links.length === 0) { return Promise.resolve(placementZones); } return services.loadPlacementZones(links).then((newPlacementZones) => { this.setInData(['listView', 'placementZones'], $.extend({}, placementZones, newPlacementZones)); return utils.getIn(this.data, ['listView', 'placementZones']); }); },
return services.loadPlacementZones(links).then((newPlacementZones) => { this.setInData(['listView', 'placementZones'], $.extend({}, placementZones, newPlacementZones)); return utils.getIn(this.data, ['listView', 'placementZones']); });