fix: fix set security group when create instance
Hide security group selector when select any network or port which the port_security_enabled is false Change-Id: Iece38c32c681fd07e69d42f3f3f9901fee2bdf8f
This commit is contained in:
parent
b42958e43d
commit
ade5757898
@ -40,6 +40,8 @@ export class NetworkStep extends Base {
|
|||||||
this.securityGroupStore = new SecurityGroupStore();
|
this.securityGroupStore = new SecurityGroupStore();
|
||||||
this.portStore = new PortStore();
|
this.portStore = new PortStore();
|
||||||
this.subnetMap = {};
|
this.subnetMap = {};
|
||||||
|
this.state.networkSelectRows = this.props.context?.networkSelectRows || [];
|
||||||
|
this.state.portSelectRows = this.props.context?.portSelectRows || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
get title() {
|
get title() {
|
||||||
@ -169,6 +171,9 @@ export class NetworkStep extends Base {
|
|||||||
|
|
||||||
onPortChange = (value) => {
|
onPortChange = (value) => {
|
||||||
const { selectedRows = [] } = value || {};
|
const { selectedRows = [] } = value || {};
|
||||||
|
this.setState({
|
||||||
|
portSelectRows: selectedRows,
|
||||||
|
});
|
||||||
this.updateContext({
|
this.updateContext({
|
||||||
portSelectRows: selectedRows,
|
portSelectRows: selectedRows,
|
||||||
});
|
});
|
||||||
@ -178,6 +183,26 @@ export class NetworkStep extends Base {
|
|||||||
return ['networkSelect', 'networks', 'ports'];
|
return ['networkSelect', 'networks', 'ports'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get showSecurityGroups() {
|
||||||
|
const { networkSelectRows = [], portSelectRows = [] } = this.state;
|
||||||
|
if (!networkSelectRows.length && !portSelectRows.length) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
networkSelectRows.length &&
|
||||||
|
networkSelectRows.some((it) => !it.port_security_enabled)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
portSelectRows.length &&
|
||||||
|
portSelectRows.some((it) => !it.port_security_enabled)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
get formItems() {
|
get formItems() {
|
||||||
const {
|
const {
|
||||||
networkSelectRows = [],
|
networkSelectRows = [],
|
||||||
@ -186,9 +211,6 @@ export class NetworkStep extends Base {
|
|||||||
ports = [],
|
ports = [],
|
||||||
} = this.state;
|
} = this.state;
|
||||||
const showNetworks = networkSelectRows.length > 0;
|
const showNetworks = networkSelectRows.length > 0;
|
||||||
const showSecurityGroups =
|
|
||||||
networkSelectRows.length &&
|
|
||||||
networkSelectRows.every((it) => it.port_security_enabled);
|
|
||||||
const networkRequired = ports.length === 0;
|
const networkRequired = ports.length === 0;
|
||||||
const portRequired = networkSelectRows.length === 0;
|
const portRequired = networkSelectRows.length === 0;
|
||||||
return [
|
return [
|
||||||
@ -274,8 +296,8 @@ export class NetworkStep extends Base {
|
|||||||
),
|
),
|
||||||
backendPageStore: this.securityGroupStore,
|
backendPageStore: this.securityGroupStore,
|
||||||
extraParams: { project_id: this.currentProjectId },
|
extraParams: { project_id: this.currentProjectId },
|
||||||
hidden: !showSecurityGroups,
|
hidden: !this.showSecurityGroups,
|
||||||
required: showSecurityGroups,
|
required: this.showSecurityGroups,
|
||||||
isMulti: true,
|
isMulti: true,
|
||||||
header: (
|
header: (
|
||||||
<div style={{ marginBottom: 8 }}>
|
<div style={{ marginBottom: 8 }}>
|
||||||
|
Loading…
Reference in New Issue
Block a user