Files
skyline-console/src/pages/database/containers/Instances/index.jsx
xusongfu f48011a983 fix: add i18n and fix datastore of trove
1. The trove creates an instance affinity and anti-affinity label that requires i18n
2. Add i18n for trove instance status
3. The value of the database version of the configuration group is incorrectly set
4. Add allowClear true for select component

Change-Id: Ic6058530b57b1f8f7face48061c5a3b018459a5a
2022-05-06 19:25:09 +08:00

85 lines
2.0 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 { observer, inject } from 'mobx-react';
import Base from 'containers/List';
import globalInstancesStore from 'stores/trove/instances';
import { InstanceStatus } from 'resources/database';
import { get as _get } from 'lodash';
import actions from './actions';
export class Instances extends Base {
init() {
this.store = globalInstancesStore;
}
get name() {
return t('Instances');
}
get actionConfigs() {
return actions;
}
get policy() {
return 'trove:instance:index';
}
get searchFilters() {
return [
{
label: t('Name'),
name: 'name',
},
];
}
getColumns = () => [
{
title: t('Instance Name'),
dataIndex: 'name',
routeName: this.getRouteName('databaseInstanceDetail'),
},
{
title: t('Datastore'),
dataIndex: 'datastore',
render: (value) => _get(value, 'type', '-'),
},
{
title: t('Datastore Version'),
dataIndex: 'datastore',
render: (value) => _get(value, 'version', '-'),
isHideable: true,
},
{
title: t('Host'),
dataIndex: 'ip',
isHideable: true,
},
{
title: t('Volume Size'),
dataIndex: 'volume',
isHideable: true,
render: (value) => (value ? `${value.size}GB` : '-'),
},
{
title: t('Status'),
dataIndex: 'status',
render: (value) => InstanceStatus[value] || value,
},
];
}
export default inject('rootStore')(observer(Instances));