You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2023/07/31 15:47:40 UTC
[pinot] branch master updated: UI: use new PUT api's to enable/disable table/instance state (#11225)
This is an automated email from the ASF dual-hosted git repository.
jackie 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 8d3b305be3 UI: use new PUT api's to enable/disable table/instance state (#11225)
8d3b305be3 is described below
commit 8d3b305be37b3d79a54e890c962f9a3fcfbcf183
Author: Jayesh Choudhary <ja...@gmail.com>
AuthorDate: Mon Jul 31 21:17:35 2023 +0530
UI: use new PUT api's to enable/disable table/instance state (#11225)
---
.../src/main/resources/app/interfaces/types.d.ts | 10 ++++++++++
.../src/main/resources/app/pages/InstanceDetails.tsx | 4 ++--
.../src/main/resources/app/pages/TenantDetails.tsx | 17 +++--------------
.../src/main/resources/app/requests/index.ts | 10 +++++-----
4 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/pinot-controller/src/main/resources/app/interfaces/types.d.ts b/pinot-controller/src/main/resources/app/interfaces/types.d.ts
index e24b58456e..1bbc3fee21 100644
--- a/pinot-controller/src/main/resources/app/interfaces/types.d.ts
+++ b/pinot-controller/src/main/resources/app/interfaces/types.d.ts
@@ -247,4 +247,14 @@ declare module 'Models' {
GOOD = "GOOD",
UPDATING = "UPDATING",
}
+
+ export const enum InstanceState {
+ ENABLE = "enable",
+ DISABLE = "disable"
+ }
+
+ export const enum TableType {
+ REALTIME = "realtime",
+ OFFLINE = "offline"
+ }
}
diff --git a/pinot-controller/src/main/resources/app/pages/InstanceDetails.tsx b/pinot-controller/src/main/resources/app/pages/InstanceDetails.tsx
index 1039655a3d..c9aa979f16 100644
--- a/pinot-controller/src/main/resources/app/pages/InstanceDetails.tsx
+++ b/pinot-controller/src/main/resources/app/pages/InstanceDetails.tsx
@@ -23,7 +23,7 @@ import { UnControlled as CodeMirror } from 'react-codemirror2';
import 'codemirror/lib/codemirror.css';
import 'codemirror/theme/material.css';
import 'codemirror/mode/javascript/javascript';
-import { TableData } from 'Models';
+import { InstanceState, TableData } from 'Models';
import { RouteComponentProps } from 'react-router-dom';
import PinotMethodUtils from '../utils/PinotMethodUtils';
import AppLoader from '../components/AppLoader';
@@ -256,7 +256,7 @@ const InstanceDetails = ({ match }: RouteComponentProps<Props>) => {
};
const toggleInstanceState = async () => {
- const result = await PinotMethodUtils.toggleInstanceState(instanceName, state.enabled ? 'DISABLE' : 'ENABLE');
+ const result = await PinotMethodUtils.toggleInstanceState(instanceName, state.enabled ? InstanceState.DISABLE : InstanceState.ENABLE);
if(result.status){
dispatch({type: 'success', message: result.status, show: true});
fetchData();
diff --git a/pinot-controller/src/main/resources/app/pages/TenantDetails.tsx b/pinot-controller/src/main/resources/app/pages/TenantDetails.tsx
index b554bd8376..189278e4af 100644
--- a/pinot-controller/src/main/resources/app/pages/TenantDetails.tsx
+++ b/pinot-controller/src/main/resources/app/pages/TenantDetails.tsx
@@ -22,7 +22,7 @@ import { makeStyles } from '@material-ui/core/styles';
import { Box, Button, FormControlLabel, Grid, Switch, Tooltip, Typography } from '@material-ui/core';
import { RouteComponentProps, useHistory, useLocation } from 'react-router-dom';
import { UnControlled as CodeMirror } from 'react-codemirror2';
-import { DISPLAY_SEGMENT_STATUS, TableData, TableSegmentJobs } from 'Models';
+import { DISPLAY_SEGMENT_STATUS, InstanceState, TableData, TableSegmentJobs, TableType } from 'Models';
import AppLoader from '../components/AppLoader';
import CustomizedTables from '../components/Table';
import TableToolbar from '../components/TableToolbar';
@@ -246,19 +246,8 @@ const TenantPageDetails = ({ match }: RouteComponentProps<Props>) => {
};
const toggleTableState = async () => {
- const result = await PinotMethodUtils.toggleTableState(tableName, state.enabled ? 'disable' : 'enable', tableType.toLowerCase());
- if(!result.error && result[0].state){
- if(result[0].state.successful){
- dispatch({type: 'success', message: result[0].state.message, show: true});
- setState({ enabled: !state.enabled });
- fetchTableData();
- } else {
- dispatch({type: 'error', message: result[0].state.message, show: true});
- }
- closeDialog();
- } else {
- syncResponse(result);
- }
+ const result = await PinotMethodUtils.toggleTableState(tableName, state.enabled ? InstanceState.DISABLE : InstanceState.ENABLE, tableType.toLowerCase() as TableType);
+ syncResponse(result);
};
const handleConfigChange = (value: string) => {
diff --git a/pinot-controller/src/main/resources/app/requests/index.ts b/pinot-controller/src/main/resources/app/requests/index.ts
index 02b8bb419c..f41c773106 100644
--- a/pinot-controller/src/main/resources/app/requests/index.ts
+++ b/pinot-controller/src/main/resources/app/requests/index.ts
@@ -21,7 +21,7 @@ import { AxiosResponse } from 'axios';
import { TableData, Instances, Instance, Tenants, ClusterConfig, TableName, TableSize,
IdealState, QueryTables, TableSchema, SQLResult, ClusterName, ZKGetList, ZKConfig, OperationResponse,
BrokerList, ServerList, UserList, TableList, UserObject, TaskProgressResponse, TableSegmentJobs, TaskRuntimeConfig,
- SegmentDebugDetails, QuerySchemas
+ SegmentDebugDetails, QuerySchemas, TableType, InstanceState
} from 'Models';
const headers = {
@@ -86,11 +86,11 @@ export const putInstance = (name: string, params: string): Promise<AxiosResponse
export const updateInstanceTags = (name: string, params: string): Promise<AxiosResponse<OperationResponse>> =>
baseApi.put(`/instances/${name}/updateTags?tags=${params}`, null, { headers });
-export const setInstanceState = (name: string, stateName: string): Promise<AxiosResponse<OperationResponse>> =>
- baseApi.post(`/instances/${name}/state`, stateName, { headers: {'Content-Type': 'text/plain', 'Accept': 'application/json'} });
+export const setInstanceState = (name: string, state: InstanceState): Promise<AxiosResponse<OperationResponse>> =>
+ baseApi.put(`/instances/${name}/state?state=${state}`, { headers: {'Content-Type': 'text/plain', 'Accept': 'application/json'} });
-export const setTableState = (name: string, stateName: string, tableType: string): Promise<AxiosResponse<OperationResponse>> =>
- baseApi.get(`/tables/${name}?state=${stateName}&type=${tableType}`);
+export const setTableState = (tableName: string, state: InstanceState, tableType: TableType): Promise<AxiosResponse<OperationResponse>> =>
+ baseApi.put(`/tables/${tableName}/state?state=${state}&type=${tableType}`);
export const dropInstance = (name: string): Promise<AxiosResponse<OperationResponse>> =>
baseApi.delete(`instances/${name}`, { headers });
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org