skyline/src/pages/compute/containers/Instance/actions/index.jsx
xusongfu 81c037de41 feat: Add tags to nova service and so on
1.Lists tags, creates, replaces tags for a server
2.Fix input autocomplete in Chrome browser
3.Fix some e2e test bugs

Change-Id: I6236da8670d36c88978317d34a50cde3974b83d9
2022-03-26 20:11:15 +08:00

176 lines
4.1 KiB
JavaScript

// 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 SoftDelete from './SoftDelete';
// import CreateImage from './CreateImage';
import CreateSnapshot from './CreateSnapshot';
import AttachInterface from './AttachInterface';
import StepCreateAction from './StepCreate';
import CreateIronic from './CreateIronic';
import ChangePassword from './ChangePassword';
import StartAction from './Start';
import StopAction from './Stop';
import DetachInterface from './DetachInterface';
import RebootAction from './Reboot';
import SoftRebootAction from './SoftReboot';
import PauseAction from './Pause';
import UnpauseAction from './Unpause';
import LockAction from './Lock';
import UnlockAction from './Unlock';
import SuspendAction from './Suspend';
import ResumeAction from './Resume';
import AttachVolume from './AttachVolume';
import DetachVolume from './DetachVolume';
import Resize from './Resize';
import ResizeOnline from './ResizeOnline';
import MigrateAction from './Migrate';
import Console from './Console';
import Edit from './Edit';
// import Rebuild from './Rebuild';
import Rebuild from './RebuildSelect'; // Rebuild with select image
import Shelve from './Shelve';
import Unshelve from './Unshelve';
import DisassociateFip from './DisassociateFip';
import LiveMigrate from './LiveMigrate';
import AssociateFip from './AssociateFip';
import ManageSecurityGroup from './ManageSecurityGroup';
import DeleteIronic from './DeleteIronic';
import ConfirmResize from './ConfirmResize';
import RevertResize from './RevertResize';
import ModifyTags from './ModifyTags';
const statusActions = [
StartAction,
StopAction,
LockAction,
UnlockAction,
RebootAction,
SoftRebootAction,
SuspendAction,
ResumeAction,
PauseAction,
UnpauseAction,
Shelve,
Unshelve,
];
const resourceActions = [
AttachInterface,
DetachInterface,
AttachVolume,
DetachVolume,
AssociateFip,
DisassociateFip,
ManageSecurityGroup,
];
const configActions = [
ConfirmResize,
RevertResize,
Resize,
ResizeOnline,
ChangePassword,
Rebuild,
];
const batchActions = [
StartAction,
StopAction,
RebootAction,
SoftRebootAction,
SoftDelete,
];
const batchActionsForIronic = batchActions.slice(0, -2).concat(DeleteIronic);
const batchActionsForOthers = batchActions.slice(0, -1);
const actionConfigs = {
rowActions: {
firstAction: Console,
moreActions: [
{
title: t('Instance Status'),
actions: statusActions,
},
// {
// title: t('Image & OS'),
// actions: [
// CreateImage,
// ],
// },
{
title: t('Related Resources'),
actions: resourceActions,
},
{
title: t('Backups & Snapshots'),
actions: [CreateSnapshot],
},
{
title: t('Configuration Update'),
actions: configActions,
},
{
action: Edit,
},
{
action: SoftDelete,
},
{
action: DeleteIronic,
},
{
action: ModifyTags,
},
],
},
batchActions,
primaryActions: [StepCreateAction, CreateIronic],
};
const adminActions = {
rowActions: {
firstAction: Console,
moreActions: [
{
title: t('Instance Status'),
actions: statusActions,
},
{
action: MigrateAction,
},
{
action: LiveMigrate,
},
{
action: SoftDelete,
},
{
action: DeleteIronic,
},
],
},
batchActions,
primaryActions: [],
};
export default {
actionConfigs,
adminActions,
batchActions,
batchActionsForIronic,
batchActionsForOthers,
};