This is an automated email from the ASF dual-hosted git repository.

yashmayya pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new c5514f698e Change display of rebalance response (#15331)
c5514f698e is described below

commit c5514f698ecb9f56fb1b99ec97579e0a43b76352
Author: Soumya Himanish Mohapatra 
<[email protected]>
AuthorDate: Wed Mar 26 12:28:13 2025 +0530

    Change display of rebalance response (#15331)
---
 .../RebalanceServer/RebalanceResponse.tsx          | 85 ++++++++++++++++++++++
 .../RebalanceServerResponses/CustomCodeMirror.css  | 21 ++++++
 .../RebalanceServerPreChecksResponse.tsx           | 72 ++++++++++++++++++
 .../RebalanceServerRebalanceSummaryResponse.tsx    | 53 ++++++++++++++
 .../RebalanceServerResponseCard.tsx                | 30 ++++++++
 .../RebalanceServerResponseLabelValue.tsx          | 31 ++++++++
 .../RebalanceServerSectionResponse.tsx             | 36 +++++++++
 ...ationSection.tsx => RebalanceServerSection.tsx} | 13 ++--
 .../Homepage/Operations/RebalanceServerTableOp.tsx | 37 +++-------
 9 files changed, 347 insertions(+), 31 deletions(-)

diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceResponse.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceResponse.tsx
new file mode 100644
index 0000000000..b7550e7683
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceResponse.tsx
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {RebalanceServerSection} from "./RebalanceServerSection";
+import React from 'react';
+import {Grid, Paper} from "@material-ui/core";
+import CustomCodemirror from "../../../CustomCodemirror";
+import {
+    RebalanceServerSectionResponse
+} from "./RebalanceServerResponses/RebalanceServerSectionResponse";
+import {RebalanceServerPreChecksResponse} from 
"./RebalanceServerResponses/RebalanceServerPreChecksResponse";
+import {RebalanceServerResponseLabelValue} from 
"./RebalanceServerResponses/RebalanceServerResponseLabelValue";
+import {
+    RebalanceServerRebalanceSummaryResponse
+} from "./RebalanceServerResponses/RebalanceServerRebalanceSummaryResponse";
+import {RebalanceServerResponseCard} from 
"./RebalanceServerResponses/RebalanceServerResponseCard";
+
+export const RebalanceResponse = ({ response }) => {
+    const responseSectionsToShow = [
+        {
+            name: 'Segment Assignment',
+            key: 'segmentAssignment'
+        },
+        {
+            name: 'Instance Assignment',
+            key: 'instanceAssignment'
+        },
+        {
+            name: 'Tier Instance Assignment',
+            key: 'tierInstanceAssignment'
+        }
+    ];
+
+    return (
+        <Grid container spacing={2} key='rebalance-response'>
+            <Grid item xs={12}>
+                <Paper variant='outlined' style={{ padding: 10 }}>
+                    <RebalanceServerSection sectionTitle={"Job Summary"}>
+                        <Grid container spacing={2}>
+                            <Grid item 
xs={6}><RebalanceServerResponseLabelValue label='Description' 
value={response.description} /></Grid>
+                            <Grid item 
xs={6}><RebalanceServerResponseLabelValue label='Status' 
value={response.status} /></Grid>
+                            <Grid item 
xs={6}><RebalanceServerResponseLabelValue label='Job Id' value={response.jobId} 
/></Grid>
+                        </Grid>
+                    </RebalanceServerSection>
+                </Paper>
+            </Grid>
+            { response.preChecksResult && <RebalanceServerPreChecksResponse 
response={response} /> }
+            { response.rebalanceSummaryResult && 
<RebalanceServerRebalanceSummaryResponse response={response} /> }
+            {
+                responseSectionsToShow.map((section) => {
+                    if (Object.keys(response).includes(section.key)) {
+                        return <RebalanceServerSectionResponse 
key={section.key} sectionTitle={section.name} 
sectionData={response[section.key]} />
+                    }
+                })
+            }
+
+            {/* To be kept at the last, RAW JSON Preview */}
+            <Grid item xs={12}>
+                <RebalanceServerResponseCard>
+                    <RebalanceServerSection sectionTitle={"Raw JSON"} 
canHideSection showSectionByDefault={false}>
+                        <CustomCodemirror
+                            data={response}
+                            isEditable={false}
+                        />
+                    </RebalanceServerSection>
+                </RebalanceServerResponseCard>
+            </Grid>
+        </Grid>
+    );
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/CustomCodeMirror.css
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/CustomCodeMirror.css
new file mode 100644
index 0000000000..b8df6bc9f9
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/CustomCodeMirror.css
@@ -0,0 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+.rebalance_server_response_section .CodeMirror {
+  max-height: 200px;
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerPreChecksResponse.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerPreChecksResponse.tsx
new file mode 100644
index 0000000000..87c5f721e8
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerPreChecksResponse.tsx
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {Grid, Typography} from "@material-ui/core";
+import {RebalanceServerSection} from "../RebalanceServerSection";
+import Alert from "@material-ui/lab/Alert";
+import InfoOutlinedIcon from "@material-ui/icons/InfoOutlined";
+import {Cancel, CheckCircle, Warning} from "@material-ui/icons";
+import React from "react";
+import {RebalanceServerResponseLabelValue} from 
"./RebalanceServerResponseLabelValue";
+import {RebalanceServerResponseCard} from "./RebalanceServerResponseCard";
+
+const PreCheckStatusIcon = ({ preCheckStatus } : { preCheckStatus: "PASS" | 
"WARN" | "ERROR" }) => {
+    switch (preCheckStatus) {
+        case "PASS":
+            return <CheckCircle style={{ marginRight: 10, marginTop: 5 }} 
fontSize='small' htmlColor='green' />;
+        case "ERROR":
+            return <Cancel style={{ marginRight: 10, marginTop: 5 }} 
fontSize='small' color='error' />;
+        case "WARN":
+            return <Warning style={{ marginRight: 10, marginTop: 5 }} 
fontSize='small' htmlColor='orange' />;
+    }
+}
+
+export const RebalanceServerPreChecksResponse = ({ response }) => {
+    const numberOfPreChecksPassing = Object.keys(response.preChecksResult ?? 
{})
+        .filter(result => response.preChecksResult[result].preCheckStatus === 
'PASS').length;
+    const totalNumberOfPreChecks = Object.keys(response.preChecksResult ?? 
{}).length;
+    return (
+        <Grid item xs={12}>
+            <RebalanceServerResponseCard>
+                <RebalanceServerSection
+                    canHideSection
+                    sectionTitle={"Pre Checks Result"}
+                    additionalSectionTitle={
+                        <Typography variant='body2' style={{ color: 
numberOfPreChecksPassing === totalNumberOfPreChecks ? 'green' : 'red' }}>
+                            {numberOfPreChecksPassing} / 
{totalNumberOfPreChecks}
+                        </Typography>
+                    }>
+                    <Alert style={{ marginBottom: 20 }} color='info' 
icon={<InfoOutlinedIcon fontSize='small' />}>
+                        <Typography variant='caption'>
+                            These are non-blocking checks.
+                            Rebalance can be run even if these fail. Please be 
sure to fix the issues before proceeding with actual rebalance!
+                        </Typography>
+                    </Alert>
+                    <Grid container spacing={2}>
+                        { 
Object.keys(response.preChecksResult).map((preCheckResult, index) => (
+                            <Grid item xs={12} key={preCheckResult} style={{ 
display: 'flex', alignItems: 'flex-start' }}>
+                                <PreCheckStatusIcon 
preCheckStatus={response.preChecksResult[preCheckResult].preCheckStatus} />
+                                <RebalanceServerResponseLabelValue 
label={preCheckResult} value={response.preChecksResult[preCheckResult].message} 
/>
+                            </Grid>)
+                        )}
+                    </Grid>
+                </RebalanceServerSection>
+            </RebalanceServerResponseCard>
+        </Grid>
+    )
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerRebalanceSummaryResponse.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerRebalanceSummaryResponse.tsx
new file mode 100644
index 0000000000..ba79b18167
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerRebalanceSummaryResponse.tsx
@@ -0,0 +1,53 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {Grid} from "@material-ui/core";
+import {RebalanceServerSection} from "../RebalanceServerSection";
+import React from "react";
+import './CustomCodeMirror.css';
+import {RebalanceServerResponseCard} from "./RebalanceServerResponseCard";
+import {RebalanceServerSectionResponse} from 
"./RebalanceServerSectionResponse";
+
+export const RebalanceServerRebalanceSummaryResponse = ({ response }) => {
+    const responseSectionsToShow = [
+        {
+            name: 'I. Server Information',
+            key: 'serverInfo'
+        },
+        {
+            name: 'II. Segment Information',
+            key: 'segmentInfo'
+        }
+    ];
+
+    return (
+        <Grid item xs={12}>
+            <RebalanceServerResponseCard>
+                <RebalanceServerSection sectionTitle={"Rebalance Summary 
Result"} canHideSection>
+                    {
+                        responseSectionsToShow.map((section) => {
+                            if 
(Object.keys(response.rebalanceSummaryResult).includes(section.key)) {
+                                return <RebalanceServerSectionResponse 
key={section.key} sectionTitle={section.name} 
sectionData={response.rebalanceSummaryResult[section.key]} />
+                            }
+                        })
+                    }
+                </RebalanceServerSection>
+            </RebalanceServerResponseCard>
+        </Grid>
+    )
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseCard.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseCard.tsx
new file mode 100644
index 0000000000..96c5054529
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseCard.tsx
@@ -0,0 +1,30 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {Paper} from "@material-ui/core";
+import React, {ReactNode} from "react";
+
+export const RebalanceServerResponseCard = (
+    { children }: { children: ReactNode }
+) => {
+    return (
+        <Paper variant='outlined' style={{ padding: 10 }}>
+            { children }
+        </Paper>
+    );
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseLabelValue.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseLabelValue.tsx
new file mode 100644
index 0000000000..093185de4e
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerResponseLabelValue.tsx
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {Box, Typography} from "@material-ui/core";
+import React from "react";
+
+export const RebalanceServerResponseLabelValue = (
+    { label, value }: { label: string; value: string; }
+) => {
+    return (
+        <Box>
+            <Typography color='textSecondary' 
variant='caption'>{label}</Typography>
+            <Typography style={{ fontWeight: 600 }} 
variant='body2'>{value}</Typography>
+        </Box>
+    );
+}
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerSectionResponse.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerSectionResponse.tsx
new file mode 100644
index 0000000000..6738a7aae0
--- /dev/null
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerResponses/RebalanceServerSectionResponse.tsx
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 {Grid} from "@material-ui/core";
+import {RebalanceServerSection} from "../RebalanceServerSection";
+import React from "react";
+import CustomCodemirror from "../../../../CustomCodemirror";
+
+export const RebalanceServerSectionResponse = ({ sectionData, sectionTitle }) 
=> {
+    return (
+        <Grid item xs={12}>
+            <RebalanceServerSection sectionTitle={sectionTitle} canHideSection>
+                <CustomCodemirror
+                    customClass='rebalance_server_response_section'
+                    data={sectionData}
+                    isEditable={false}
+                />
+            </RebalanceServerSection>
+        </Grid>
+    );
+}
\ No newline at end of file
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerConfigurationSection.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerSection.tsx
similarity index 81%
rename from 
pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerConfigurationSection.tsx
rename to 
pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerSection.tsx
index 40a655ced9..7836b3d69a 100644
--- 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerConfigurationSection.tsx
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServer/RebalanceServerSection.tsx
@@ -16,19 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import {Box, Typography} from "@material-ui/core";
+import {Box, Divider, Typography} from "@material-ui/core";
 import React, {ReactNode, useEffect, useRef, useState} from "react";
 import Link from "@material-ui/core/Link";
 
 type RebalanceServerConfigurationSectionProps = {
     sectionTitle: string;
     children: ReactNode;
+    maxHeight?: number;
     showSectionByDefault?: boolean;
     canHideSection?: boolean;
+    additionalSectionTitle?: ReactNode;
 }
 
-export const RebalanceServerConfigurationSection = (
-    { sectionTitle, children, showSectionByDefault = true, canHideSection = 
false }: RebalanceServerConfigurationSectionProps
+export const RebalanceServerSection = (
+    { sectionTitle, additionalSectionTitle, children, showSectionByDefault = 
true, canHideSection = false, maxHeight }: 
RebalanceServerConfigurationSectionProps
 ) => {
     const [showSection, setShowSection] = 
useState<boolean>(showSectionByDefault);
     const showHideSectionRef = useRef(null);
@@ -50,12 +52,13 @@ export const RebalanceServerConfigurationSection = (
     }, [showSection, showHideSectionRef]);
 
     return (
-        <Box marginBottom={2}>
-            <Box display='flex' flexDirection='row' alignItems='center' 
marginBottom={2}>
+        <Box marginBottom={showSection ? 2 : 0}>
+            <Box display='flex' flexDirection='row' alignItems='center' 
marginBottom={showSection ? 2 : 0}>
                 <div ref={showHideSectionRef} />
                 <Typography variant='body1' style={{ fontWeight: 'bold', 
marginRight: 10 }}>
                     {sectionTitle}
                 </Typography>
+                {additionalSectionTitle && <Box 
marginRight={1}>{additionalSectionTitle}</Box>}
                 {canHideSection && (
                     <Link style={{ cursor: 'pointer' }} onClick={() => 
setShowSection(visible => !visible)}>
                         { showSection ? "Hide" : "Show" }
diff --git 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServerTableOp.tsx
 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServerTableOp.tsx
index 7236530771..3078776ed8 100644
--- 
a/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServerTableOp.tsx
+++ 
b/pinot-controller/src/main/resources/app/components/Homepage/Operations/RebalanceServerTableOp.tsx
@@ -19,31 +19,22 @@
 
 import React from 'react';
 import {
-  DialogContentText,
-  FormControl,
-  FormControlLabel,
   Grid,
-  Input,
-  InputLabel,
-  Switch,
   Box,
   Typography,
-  List,
-  ListItem,
-  ListItemText,
-  ListItemIcon,
   Divider, Button
 } from '@material-ui/core';
 import Dialog from '../../CustomDialog';
 import PinotMethodUtils from '../../../utils/PinotMethodUtils';
-import CustomCodemirror from '../../CustomCodemirror';
 import {RebalanceServerDialogHeader} from 
"./RebalanceServer/RebalanceServerDialogHeader";
-import {RebalanceServerConfigurationSection} from 
"./RebalanceServer/RebalanceServerConfigurationSection";
+import {
+  RebalanceServerSection
+} from "./RebalanceServer/RebalanceServerSection";
 import Alert from "@material-ui/lab/Alert";
 import InfoOutlinedIcon from "@material-ui/icons/InfoOutlined";
 import {rebalanceServerOptions} from 
"./RebalanceServer/RebalanceServerOptions";
-import FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';
 import {RebalanceServerConfigurationOption} from 
"./RebalanceServer/RebalanceServerConfigurationOption";
+import {RebalanceResponse} from "./RebalanceServer/RebalanceResponse";
 
 type Props = {
   tableType: string,
@@ -115,16 +106,16 @@ export default function RebalanceServerTableOp({
     >
         {!rebalanceResponse ?
           <Box flexDirection="column">
-            <RebalanceServerConfigurationSection sectionTitle='Before you 
begin'>
+            <RebalanceServerSection sectionTitle='Before you begin'>
               <Alert color='info' icon={<InfoOutlinedIcon fontSize='small' />}>
                 <Typography variant='body2'>
                   It is strongly recommended to run once via "Dry Run" with 
the options enabled prior to running the actual "Rebalance" operation.
                   This is needed to verify that rebalance will do what's 
expected.
                 </Typography>
               </Alert>
-            </RebalanceServerConfigurationSection>
+            </RebalanceServerSection>
             <Divider style={{ marginBottom: 20 }} />
-            <RebalanceServerConfigurationSection sectionTitle='Basic Options'>
+            <RebalanceServerSection sectionTitle='Basic Options'>
               <Grid container spacing={2}>
                 {rebalanceServerOptions.filter(option => 
!option.isAdvancedConfig && !option.isStatsGatheringConfig).map((option) => (
                     <Grid item xs={12} key={`basic-options-${option.name}`}>
@@ -132,9 +123,9 @@ export default function RebalanceServerTableOp({
                     </Grid>
                 ))}
               </Grid>
-            </RebalanceServerConfigurationSection>
+            </RebalanceServerSection>
             <Divider style={{ marginBottom: 20 }}/>
-            <RebalanceServerConfigurationSection sectionTitle='Advanced 
Options' canHideSection showSectionByDefault={false}>
+            <RebalanceServerSection sectionTitle='Advanced Options' 
canHideSection showSectionByDefault={false}>
               <Grid container spacing={2}>
                 {rebalanceServerOptions.filter(option => 
option.isAdvancedConfig).map((option) => (
                     <Grid item xs={12} key={`advanced-options-${option.name}`}>
@@ -142,17 +133,11 @@ export default function RebalanceServerTableOp({
                     </Grid>
                 ))}
               </Grid>
-            </RebalanceServerConfigurationSection>
+            </RebalanceServerSection>
           </Box>
         : 
           <React.Fragment>
-            <DialogContentText>
-              Operation Status:
-            </DialogContentText>
-            <CustomCodemirror
-              data={rebalanceResponse}
-              isEditable={false}
-            />
+            <RebalanceResponse response={rebalanceResponse} />
           </React.Fragment>
         }
     </Dialog>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to