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 ",
|
"Unable to {title}, please go back to ": "Unable to {title}, please go back to ",
|
||||||
"Unattached": "Unattached",
|
"Unattached": "Unattached",
|
||||||
"Unavailable": "Unavailable",
|
"Unavailable": "Unavailable",
|
||||||
|
"Unbootable": "Unbootable",
|
||||||
"Unknown": "Unknown",
|
"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.",
|
"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",
|
"Unlimit": "Unlimit",
|
||||||
|
@ -1637,6 +1637,7 @@
|
|||||||
"Unable to {title}, please go back to ": "无法{title},请访问",
|
"Unable to {title}, please go back to ": "无法{title},请访问",
|
||||||
"Unattached": "未挂载",
|
"Unattached": "未挂载",
|
||||||
"Unavailable": "不可用",
|
"Unavailable": "不可用",
|
||||||
|
"Unbootable": "不可启动",
|
||||||
"Unknown": "未知",
|
"Unknown": "未知",
|
||||||
"Unless you know clearly which AZ to create the volume in, you don not need to fill in here.": "除非很明确知道应该在哪个 AZ 中创建 Volume,否则此处不用填",
|
"Unless you know clearly which AZ to create the volume in, you don not need to fill in here.": "除非很明确知道应该在哪个 AZ 中创建 Volume,否则此处不用填",
|
||||||
"Unlimit": "无限制",
|
"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 CreateTransfer from './CreateTransfer';
|
||||||
import CancelTransfer from './CancelTransfer';
|
import CancelTransfer from './CancelTransfer';
|
||||||
import CreateInstance from './CreateInstance';
|
import CreateInstance from './CreateInstance';
|
||||||
|
import Bootable from './Bootable';
|
||||||
|
|
||||||
const actionConfigs = {
|
const actionConfigs = {
|
||||||
rowActions: {
|
rowActions: {
|
||||||
@ -38,6 +39,9 @@ const actionConfigs = {
|
|||||||
{
|
{
|
||||||
action: Edit,
|
action: Edit,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
action: Bootable,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
action: CreateInstance,
|
action: CreateInstance,
|
||||||
},
|
},
|
||||||
|
@ -165,6 +165,11 @@ export class VolumeStore extends Base {
|
|||||||
return this.operation(id, data, 'os-reset_status');
|
return this.operation(id, data, 'os-reset_status');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
changeBootable(id, data) {
|
||||||
|
return this.operation(id, data, 'os-set_bootable');
|
||||||
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
update(id, data) {
|
update(id, data) {
|
||||||
const body = { [this.responseKey]: data };
|
const body = { [this.responseKey]: data };
|
||||||
|
Loading…
Reference in New Issue
Block a user