Merge pull request #726 from navi-infra/INFRA-3968

INFRA-3968 | Saqib | Changes for cross region replica checkbox.
This commit is contained in:
Saqib Perwaiz
2024-12-05 00:34:08 +05:30
committed by GitHub
3 changed files with 55 additions and 1 deletions

View File

@@ -179,7 +179,7 @@ const BaseForm = (props: BaseFormProps) => {
return errors;
}
}}
validateOnChange={false}
validateOnChange={true}
onSubmit={values => handleSubmit(values)}
>
{props => (

View File

@@ -803,6 +803,50 @@ const DatabaseReplicas = () => {
);
};
const SecondaryRegionDatabaseReplica = () => {
const classes = useStyles();
const { values }: { values: any } = useFormikContext();
const [field, , fieldHelper] = useField(path.secondaryRegionReadReplica);
const isSecondaryRegionReadReplicaDefined = field.value !== undefined;
const instance =
values.extraResources.database?.secondaryRegionReadReplica?.awsInstanceClass || '';
return (
<CardLayout heading="Secondary Region Read Replica">
<AddRemoveButton
className={classes.button}
addRemoveCondition={isSecondaryRegionReadReplicaDefined}
addAction={() => {
fieldHelper.setValue(_m.newSecondaryRegionReadReplica());
}}
removeAction={() => {
fieldHelper.setValue(undefined);
}}
></AddRemoveButton>
{isSecondaryRegionReadReplicaDefined ? (
<>
<DbClassSelect
name="extraResources.database.secondaryRegionReadReplica.awsInstanceClass"
instance={instance}
/>
<MarginedFormControlLabel
control={
<FormikCheckbox name="extraResources.database.secondaryRegionReadReplica.performanceInsightsEnabled" />
}
label="Performance Insights"
/>
<MarginedFormControlLabel
control={
<FormikCheckbox name="extraResources.database.secondaryRegionReadReplica.multiAZDisabled" />
}
label="Disable Multi-AZ for secondary region read replica"
/>
</>
) : null}
</CardLayout>
);
};
const DatabaseForm = () => {
const { values, setValues }: { values: any; setValues: any } = useFormikContext();
const classes = useStyles();
@@ -841,6 +885,7 @@ const DatabaseForm = () => {
<Grid item>
<DatabaseAlerts />
<DatabaseReplicas />
<SecondaryRegionDatabaseReplica />
</Grid>
</Grid>
</Grid>

View File

@@ -27,6 +27,7 @@ export const path = {
dynamicConfiguration: 'dynamicConfiguration',
database: 'extraResources.database',
readReplica: 'extraResources.database.readReplica',
secondaryRegionReadReplica: 'extraResources.database.secondaryRegionReadReplica',
docdb: 'extraResources.docdb',
awsAccess: 'extraResources.aws_access',
s3Buckets: 'extraResources.s3_buckets',
@@ -986,6 +987,14 @@ export const newReadReplica = () => {
};
};
export const newSecondaryRegionReadReplica = () => {
return {
awsInstanceClass: 'db.t4g.small',
performanceInsightsEnabled: false,
multiAZDisabled: true,
};
};
export const newS3Bucket = () => {
return {
anonymizedBucketName: '',