Merge "fix: Fix for create & edit fip port forwarding"

This commit is contained in:
Zuul 2021-09-01 07:08:54 +00:00 committed by Gerrit Code Review
commit e480ec5dde
2 changed files with 31 additions and 3 deletions

View File

@ -140,6 +140,10 @@ export default class Edit extends ModalAction {
virtual_adapter: {
selectedRowKeys: [internal_port_id],
},
fixed_ip_address: {
selectedRowKeys: [internal_ip_address],
selectedRows: [{ fixed_ip_address: internal_ip_address }],
},
...rest,
};
return value;
@ -170,7 +174,7 @@ export default class Edit extends ModalAction {
return portFixedIPs;
};
static policy = 'update_floatingip';
static policy = 'update_floatingip_port_forwarding';
static allowed = () => true;
@ -226,7 +230,13 @@ export default class Edit extends ModalAction {
type: 'input-number',
min: 1,
max: 65535,
required: true,
validator: (_, val) => {
if (!val) {
return Promise.reject(
new Error(`${t('Please input')} ${t('External Port')}`)
);
}
const { alreadyUsedPorts } = this.state;
const { external_port: initialExternalPort } = this.item;
const flag = alreadyUsedPorts.some(
@ -251,7 +261,13 @@ export default class Edit extends ModalAction {
hidden: fixed_ip_address.selectedRows.length === 0,
min: 1,
max: 65535,
required: true,
validator: (_, val) => {
if (!val) {
return Promise.reject(
new Error(`${t('Please input')} ${t('Internal Port')}`)
);
}
const formData = this.formRef.current.getFieldsValue([
'virtual_adapter',
'fixed_ip_address',

View File

@ -108,7 +108,7 @@ export default class CreateDNAT extends ModalAction {
this.formRef.current.resetFields(['fixed_ip_address', 'internal_port']);
};
static policy = 'update_floatingip';
static policy = 'create_floatingip_port_forwarding';
static allowed = (item) => Promise.resolve(isNull(item.fixed_ip_address));
@ -161,7 +161,13 @@ export default class CreateDNAT extends ModalAction {
type: 'input-number',
min: 1,
max: 65535,
required: true,
validator: (_, val) => {
if (!val) {
return Promise.reject(
new Error(`${t('Please input')} ${t('External Port')}`)
);
}
const { alreadyUsedPorts } = this.state;
const flag = alreadyUsedPorts.some((pf) => pf.external_port === val);
if (flag) {
@ -181,7 +187,13 @@ export default class CreateDNAT extends ModalAction {
hidden: fixed_ip_address.selectedRows.length === 0,
min: 1,
max: 65535,
required: true,
validator: (_, val) => {
if (!val) {
return Promise.reject(
new Error(`${t('Please input')} ${t('Internal Port')}`)
);
}
const formData = this.formRef.current.getFieldsValue([
'virtual_adapter',
'fixed_ip_address',
@ -190,7 +202,7 @@ export default class CreateDNAT extends ModalAction {
formData.fixed_ip_address.selectedRows[0].fixed_ip_address;
const internal_port_id = formData.virtual_adapter.selectedRows[0].id;
const { alreadyUsedPorts } = this.state;
// FIP
// determine whether the FIP has been bound to the port of the port
const flag = alreadyUsedPorts.some(
(pf) =>
pf.internal_port === val &&