skyline/src/pages/container-service/containers/Containers/actions/StepCreate/StepSpec/index.jsx
yangao e740c89b9c fix: Zun code adjustment
1. code formatting problem
2. delete capsule problem
3. create container problem

Change-Id: If458dd8c3b0114573512984792f51b6b883a3c8a
2022-06-01 15:40:27 +00:00

138 lines
3.4 KiB
JavaScript

// 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 Base from 'components/Form';
import { inject, observer } from 'mobx-react';
import globalAvailabilityZoneStore from 'src/stores/nova/zone';
export class StepSpec extends Base {
init() {
this.getAvailabilityZones();
this.state.isMaxRetry = true;
}
get title() {
return t('Spec');
}
get name() {
return t('Spec');
}
async getAvailabilityZones() {
await globalAvailabilityZoneStore.fetchListWithoutDetail();
}
get getAvailabilityZoneList() {
return (globalAvailabilityZoneStore.list.data || [])
.filter((it) => it.zoneState.available)
.map((it) => ({
value: it.zoneName,
label: it.zoneName,
}));
}
onExitPolicyChange(value) {
this.setState({ isMaxRetry: value !== 'on-failure' });
}
get formItems() {
return [
{
name: 'hostname',
label: t('Hostname'),
type: 'input',
placeholder: t('The host name of this container'),
},
{
name: 'runtime',
label: t('Runtime'),
type: 'input',
placeholder: t('The runtime to create container with'),
},
{
name: 'cpu',
label: t('CPU'),
type: 'input-number',
placeholder: t('The number of virtual cpu for this container'),
min: 1,
width: 300,
},
{
name: 'memory',
label: t('Memory'),
type: 'input-number',
placeholder: t('The container memory size in MiB'),
min: 4,
width: 300,
},
{
name: 'disk',
label: t('Disk'),
type: 'input-number',
placeholder: t('The disk size in GİB for per container'),
min: 1,
width: 300,
},
{
name: 'availableZone',
label: t('Availability Zone'),
type: 'select',
options: this.getAvailabilityZoneList,
allowClear: true,
showSearch: true,
},
{
name: 'exitPolicy',
label: t('Exit Policy'),
type: 'select',
options: [
{
label: t('No'),
value: 'no',
},
{
label: t('On failure'),
value: 'on-failure',
},
{
label: t('Always'),
value: 'always',
},
{
label: t('Unless Stopped'),
value: 'unless-stopped',
},
],
onChange: (val) => this.onExitPolicyChange(val),
allowClear: true,
showSearch: true,
},
{
name: 'maxRetry',
label: t('Max Retry'),
type: 'input-number',
placeholder: t("Retry times for 'Restart on failure' policy"),
min: 1,
disabled: this.state.isMaxRetry,
},
{
name: 'enableAutoHeal',
label: t('Enable auto heal'),
type: 'check',
},
];
}
}
export default inject('rootStore')(observer(StepSpec));