ui/lib/shared/addon/components/storage-class/provisioner-cinder/component.js

53 lines
1.1 KiB
JavaScript

import Component from '@ember/component';
import layout from './template';
import StorageClassProvisioner from 'shared/mixins/storage-class-provisioner';
import { get, set, setProperties } from '@ember/object';
export default Component.extend(StorageClassProvisioner, {
layout,
provisioner: 'cinder',
type: null,
availability: null,
didReceiveAttrs() {
const changes = {};
changes['type'] = get(this, 'parameters.type') || '';
const zone = get(this, 'parameters.availability');
if (zone) {
changes['zoneAutomatic'] = false;
changes['availability'] = zone;
} else {
changes['zoneAutomatic'] = true;
changes['availability'] = '';
}
setProperties(this, changes);
},
updateParams() {
const type = get(this, 'type');
const out = {};
if (type) {
out['type'] = type;
}
const zoneAutomatic = get(this, 'zoneAutomatic');
if (!zoneAutomatic) {
const zones = (get(this, 'availability') || '').trim();
if (zones) {
out['availability'] = zones;
}
}
set(this, 'parameters', out);
},
});