Merge "feat: Add volume bootable action"
This commit is contained in:
commit
8f5931dea7
@ -1637,6 +1637,7 @@
|
||||
"Unable to {title}, please go back to ": "Unable to {title}, please go back to ",
|
||||
"Unattached": "Unattached",
|
||||
"Unavailable": "Unavailable",
|
||||
"Unbootable": "Unbootable",
|
||||
"Unknown": "Unknown",
|
||||
"Unless you know clearly which AZ to create the volume in, you don not need to fill in here.": "Unless you know clearly which AZ to create the volume in, you don not need to fill in here.",
|
||||
"Unlimit": "Unlimit",
|
||||
|
@ -1637,6 +1637,7 @@
|
||||
"Unable to {title}, please go back to ": "无法{title},请访问",
|
||||
"Unattached": "未挂载",
|
||||
"Unavailable": "不可用",
|
||||
"Unbootable": "不可启动",
|
||||
"Unknown": "未知",
|
||||
"Unless you know clearly which AZ to create the volume in, you don not need to fill in here.": "除非很明确知道应该在哪个 AZ 中创建 Volume,否则此处不用填",
|
||||
"Unlimit": "无限制",
|
||||
|
60
src/pages/storage/containers/Volume/actions/Bootable.jsx
Normal file
60
src/pages/storage/containers/Volume/actions/Bootable.jsx
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright 2021 99cloud
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import { ModalAction } from 'containers/Action';
|
||||
import globalVolumeStore from '@/stores/cinder/volume';
|
||||
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
export default class Bootable extends ModalAction {
|
||||
static id = 'volume-bootable';
|
||||
|
||||
static title = t('Bootable');
|
||||
|
||||
static buttonText = t('Bootable');
|
||||
|
||||
static policy = 'volume:update';
|
||||
|
||||
static allowed() {
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
get defaultValue() {
|
||||
const { item } = this.props;
|
||||
return {
|
||||
bootable: item.bootable === 'true',
|
||||
};
|
||||
}
|
||||
|
||||
onSubmit = ({ bootable }) => {
|
||||
const { id } = this.item;
|
||||
return globalVolumeStore.changeBootable(id, {
|
||||
bootable,
|
||||
});
|
||||
};
|
||||
|
||||
get formItems() {
|
||||
return [
|
||||
{
|
||||
name: 'bootable',
|
||||
label: t('Bootable'),
|
||||
checkedText: t('Bootable'),
|
||||
uncheckedText: t('Unbootable'),
|
||||
type: 'switch',
|
||||
required: true,
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
@ -30,6 +30,7 @@ import AcceptVolumeTransfer from './AcceptVolumeTransfer';
|
||||
import CreateTransfer from './CreateTransfer';
|
||||
import CancelTransfer from './CancelTransfer';
|
||||
import CreateInstance from './CreateInstance';
|
||||
import Bootable from './Bootable';
|
||||
|
||||
const actionConfigs = {
|
||||
rowActions: {
|
||||
@ -38,6 +39,9 @@ const actionConfigs = {
|
||||
{
|
||||
action: Edit,
|
||||
},
|
||||
{
|
||||
action: Bootable,
|
||||
},
|
||||
{
|
||||
action: CreateInstance,
|
||||
},
|
||||
|
@ -165,6 +165,11 @@ export class VolumeStore extends Base {
|
||||
return this.operation(id, data, 'os-reset_status');
|
||||
}
|
||||
|
||||
@action
|
||||
changeBootable(id, data) {
|
||||
return this.operation(id, data, 'os-set_bootable');
|
||||
}
|
||||
|
||||
@action
|
||||
update(id, data) {
|
||||
const body = { [this.responseKey]: data };
|
||||
|
Loading…
Reference in New Issue
Block a user