Merge "feat: support quota info when instance snapshot create volume"
This commit is contained in:
commit
62e12288bc
@ -17,6 +17,14 @@ import { toJS } from 'mobx';
|
|||||||
import { ModalAction } from 'containers/Action';
|
import { ModalAction } from 'containers/Action';
|
||||||
import globalVolumeStore from 'stores/cinder/volume';
|
import globalVolumeStore from 'stores/cinder/volume';
|
||||||
import { InstanceSnapshotStore } from 'stores/glance/instance-snapshot';
|
import { InstanceSnapshotStore } from 'stores/glance/instance-snapshot';
|
||||||
|
import {
|
||||||
|
getQuotaInfo,
|
||||||
|
checkQuotaDisable,
|
||||||
|
fetchQuota,
|
||||||
|
setCreateVolumeType,
|
||||||
|
onVolumeSizeChange,
|
||||||
|
onVolumeTypeChange,
|
||||||
|
} from 'resources/cinder/volume';
|
||||||
|
|
||||||
export class CreateVolume extends ModalAction {
|
export class CreateVolume extends ModalAction {
|
||||||
static id = 'create';
|
static id = 'create';
|
||||||
@ -42,6 +50,22 @@ export class CreateVolume extends ModalAction {
|
|||||||
|
|
||||||
static allowed = () => Promise.resolve(true);
|
static allowed = () => Promise.resolve(true);
|
||||||
|
|
||||||
|
static get disableSubmit() {
|
||||||
|
return checkQuotaDisable();
|
||||||
|
}
|
||||||
|
|
||||||
|
static get showQuota() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
get showQuota() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
get quotaInfo() {
|
||||||
|
return getQuotaInfo(this);
|
||||||
|
}
|
||||||
|
|
||||||
async getVolumeTypes() {
|
async getVolumeTypes() {
|
||||||
const { id } = this.item;
|
const { id } = this.item;
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
@ -53,6 +77,7 @@ export class CreateVolume extends ModalAction {
|
|||||||
const typeItem = this.volumeTypes.find((it) => it.label === volumeType);
|
const typeItem = this.volumeTypes.find((it) => it.label === volumeType);
|
||||||
if (typeItem) {
|
if (typeItem) {
|
||||||
this.volumeType = typeItem.value;
|
this.volumeType = typeItem.value;
|
||||||
|
setCreateVolumeType(volumeType);
|
||||||
}
|
}
|
||||||
this.updateFormValue('volume_type', this.volumeType);
|
this.updateFormValue('volume_type', this.volumeType);
|
||||||
}
|
}
|
||||||
@ -60,9 +85,11 @@ export class CreateVolume extends ModalAction {
|
|||||||
async getMinSize() {
|
async getMinSize() {
|
||||||
const { id } = this.item;
|
const { id } = this.item;
|
||||||
if (this.snapshot && this.snapshot.volume_size) {
|
if (this.snapshot && this.snapshot.volume_size) {
|
||||||
|
fetchQuota(this, this.minSize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await this.snapshotStore.fetchDetail({ id });
|
await this.snapshotStore.fetchDetail({ id });
|
||||||
|
fetchQuota(this, this.minSize);
|
||||||
this.updateDefaultValue();
|
this.updateDefaultValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,6 +161,7 @@ export class CreateVolume extends ModalAction {
|
|||||||
min: this.minSize,
|
min: this.minSize,
|
||||||
extra: `${t('Min size')}: ${this.minSize}GiB`,
|
extra: `${t('Min size')}: ${this.minSize}GiB`,
|
||||||
required: true,
|
required: true,
|
||||||
|
onChange: onVolumeSizeChange,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'more',
|
name: 'more',
|
||||||
@ -147,6 +175,7 @@ export class CreateVolume extends ModalAction {
|
|||||||
options: this.volumeTypes,
|
options: this.volumeTypes,
|
||||||
placeholder: t('Please select volume type'),
|
placeholder: t('Please select volume type'),
|
||||||
hidden: !more,
|
hidden: !more,
|
||||||
|
onChange: onVolumeTypeChange,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user