You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@celeborn.apache.org by "turboFei (via GitHub)" <gi...@apache.org> on 2024/06/23 21:16:19 UTC

Re: [PR] [CELEBORN-1477] Refine the master/worker RESTful APIs [celeborn]

turboFei commented on PR #2588:
URL: https://github.com/apache/celeborn/pull/2588#issuecomment-2185325811

   Master openapi.conf
   ```
   {
   "openapi": "3.0.1",
   "info": {
   "title": "Apache Celeborn REST API Documentation",
   "description": "Role: master",
   "license": {
   "name": "Apache License 2.0",
   "url": "https://www.apache.org/licenses/LICENSE-2.0.txt"
   }
   },
   "servers": [
   {
   "url": "http://127.0.0.1:31301/"
   }
   ],
   "paths": {
   "/applications": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "applications",
   "responses": {
   "200": {
   "description": "For MASTER: List all running application's ids of the cluster.\nFor WORKER: List all running application's ids of the worker. It only return application ids running in that worker.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/conf": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "conf",
   "responses": {
   "200": {
   "description": "List the conf setting.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/listDynamicConfigs": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "listDynamicConfigs",
   "parameters": [
   {
   "name": "level",
   "in": "query",
   "schema": {
   "type": "string"
   }
   },
   {
   "name": "tenant",
   "in": "query",
   "schema": {
   "type": "string"
   }
   },
   {
   "name": "name",
   "in": "query",
   "schema": {
   "type": "string"
   }
   }
   ],
   "responses": {
   "200": {
   "description": "List the dynamic configs. The parameter level specifies the config level of dynamic configs. The parameter tenant specifies the tenant id of TENANT or TENANT_USER level. The parameter name specifies the user name of TENANT_USER level. Meanwhile, either none or all of the parameter tenant and name are specified for TENANT_USER level.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/listTopDiskUsedApps": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "listTopDiskUsedApps",
   "responses": {
   "200": {
   "description": "For MASTER: List the top disk usage application ids. It will return the top disk usage application ids for the cluster.\nFor WORKER: List the top disk usage application ids. It only return application ids running in that worker.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/ping": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "ping",
   "responses": {
   "default": {
   "description": "default response",
   "content": {
   "text/plain": {
   "schema": {
   "type": "string"
   }
   }
   }
   }
   }
   }
   },
   "/shuffle": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "shuffles",
   "responses": {
   "200": {
   "description": "For MASTER: List all running shuffle keys of the service. It will return all running shuffle's key of the cluster.\nFor WORKER: List all the running shuffle keys of the worker. It only return keys of shuffles running in that worker.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/threadDump": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "threadDump",
   "responses": {
   "200": {
   "description": "List the current thread dump.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/workerInfo": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "workerInfo",
   "responses": {
   "200": {
   "description": "For MASTER: List worker information of the service. It will list all registered workers' information.\nFor WORKER: List the worker information of the worker.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/api/v1/conf": {
   "get": {
   "tags": [
   "Conf"
   ],
   "operationId": "conf_1",
   "responses": {
   "200": {
   "description": "List the conf setting",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/ConfigData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/conf/dynamic": {
   "get": {
   "tags": [
   "Conf"
   ],
   "operationId": "dynamicConf",
   "parameters": [
   {
   "name": "level",
   "in": "query",
   "schema": {
   "type": "string"
   }
   },
   {
   "name": "tenant",
   "in": "query",
   "schema": {
   "type": "string"
   }
   },
   {
   "name": "name",
   "in": "query",
   "schema": {
   "type": "string"
   }
   }
   ],
   "responses": {
   "200": {
   "description": "List the dynamic configs. The parameter level specifies the config level of dynamic configs. The parameter tenant specifies the tenant id of TENANT or TENANT_USER level. The parameter name specifies the user name of TENANT_USER level. Meanwhile, either none or all of the parameter tenant and name are specified for TENANT_USER level.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/DynamicConfig"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/ping": {
   "get": {
   "operationId": "ping_1",
   "responses": {
   "default": {
   "description": "default response",
   "content": {
   "text/plain": {
   "schema": {
   "type": "string"
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/thread_dump": {
   "get": {
   "operationId": "threadDump_1",
   "responses": {
   "200": {
   "description": "List the current thread dump.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/ThreadStackTrace"
   }
   }
   }
   }
   }
   }
   }
   },
   "/decommissionWorkers": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "decommissionWorkers",
   "responses": {
   "200": {
   "description": "List all decommission workers of the master.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/exclude": {
   "post": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "exclude",
   "requestBody": {
   "content": {
   "*/*": {
   "schema": {
   "type": "object",
   "properties": {
   "add": {
   "type": "string"
   },
   "remove": {
   "type": "string"
   }
   }
   }
   }
   }
   },
   "responses": {
   "200": {
   "description": "Excluded workers of the master add or remove the worker manually given worker id. The parameter add or remove specifies the excluded workers to add or remove, which value is separated by commas.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/excludedWorkers": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "excludedWorkers",
   "responses": {
   "200": {
   "description": "List all excluded workers of the master.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/hostnames": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "hostnames",
   "responses": {
   "200": {
   "description": "List all running application's LifecycleManager's hostnames of the cluster.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/lostWorkers": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "lostWorkers",
   "responses": {
   "200": {
   "description": "List all lost workers of the master.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/masterGroupInfo": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "masterGroupInfo",
   "responses": {
   "200": {
   "description": "List master group information of the service. It will list all master's LEADER, FOLLOWER information.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/sendWorkerEvent": {
   "post": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "sendWorkerEvent",
   "requestBody": {
   "content": {
   "*/*": {
   "schema": {
   "type": "object",
   "properties": {
   "type": {
   "type": "string"
   },
   "workers": {
   "type": "string"
   }
   }
   }
   }
   }
   },
   "responses": {
   "200": {
   "description": "For Master(Leader) can send worker event to manager workers. Legal types are 'None', 'Immediately', 'Decommission', 'DecommissionThenIdle', 'Graceful', 'Recommission', and the parameter workers is separated by commas.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/shutdownWorkers": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "shutdownWorkers",
   "responses": {
   "200": {
   "description": "List all shutdown workers of the master.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/workerEventInfo": {
   "get": {
   "tags": [
   "Deprecated"
   ],
   "operationId": "workerEventInfo",
   "responses": {
   "200": {
   "description": "List all worker event infos of the master.",
   "content": {
   "text/plain": {}
   }
   }
   }
   }
   },
   "/api/v1/applications": {
   "get": {
   "tags": [
   "Application"
   ],
   "operationId": "applications_1",
   "responses": {
   "200": {
   "description": "List all running application's ids of the cluster.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/ApplicationHeartbeatData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/applications/hostnames": {
   "get": {
   "tags": [
   "Application"
   ],
   "operationId": "hostnames_1",
   "responses": {
   "200": {
   "description": "List all running application's LifecycleManager's hostnames of the cluster.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "type": "string"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/applications/top_disk_usages": {
   "get": {
   "tags": [
   "Application"
   ],
   "operationId": "topDiskUsedApplications",
   "responses": {
   "200": {
   "description": "List the top disk usage application ids. It will return the top disk usage application ids for the cluster.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/AppDiskUsageSnapshotData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/masters": {
   "get": {
   "tags": [
   "Master"
   ],
   "operationId": "masterGroupInfo_1",
   "responses": {
   "200": {
   "description": "List master group information of the service. It will list all master's LEADER, FOLLOWER information.",
   "content": {
   "application/json": {
   "schema": {
   "$ref": "#/components/schemas/MasterGroupData"
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/shuffles": {
   "get": {
   "tags": [
   "Shuffle"
   ],
   "operationId": "shuffles_1",
   "responses": {
   "200": {
   "description": "List all running shuffle keys of the service. It will return all running shuffle's key of the cluster.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "type": "string"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/decommissioned": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "decommissionWorkers_1",
   "responses": {
   "200": {
   "description": "List all decommissioned workers of the master.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/exclude": {
   "post": {
   "tags": [
   "Worker"
   ],
   "operationId": "excludeWorker",
   "requestBody": {
   "content": {
   "application/json": {
   "schema": {
   "$ref": "#/components/schemas/ExcludeWorkerRequest"
   }
   }
   }
   },
   "responses": {
   "200": {
   "description": "Excluded workers of the master add or remove the worker manually given worker id. The parameter add or remove specifies the excluded workers to add or remove.",
   "content": {
   "application/json": {
   "schema": {
   "$ref": "#/components/schemas/HandleResponse"
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/excluded": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "excludedWorkers_1",
   "responses": {
   "200": {
   "description": "List all excluded workers of the master.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/lost": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "lostWorkers_1",
   "responses": {
   "200": {
   "description": "List all lost workers of the master.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerTimestampData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/events": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "workerEvents",
   "responses": {
   "200": {
   "description": "List all worker event infos of the master.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerEventData"
   }
   }
   }
   }
   }
   }
   },
   "post": {
   "tags": [
   "Worker"
   ],
   "operationId": "sendWorkerEvents",
   "requestBody": {
   "content": {
   "application/json": {
   "schema": {
   "$ref": "#/components/schemas/SendWorkerEventRequest"
   }
   }
   }
   },
   "responses": {
   "200": {
   "description": "For Master(Leader) can send worker event to manager workers. Legal types are 'None', 'Immediately', 'Decommission', 'DecommissionThenIdle', 'Graceful', 'Recommission'.",
   "content": {
   "application/json": {
   "schema": {
   "$ref": "#/components/schemas/HandleResponse"
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers/shutdown": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "shutdownWorkers_1",
   "responses": {
   "200": {
   "description": "List all shutdown workers of the master.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerData"
   }
   }
   }
   }
   }
   }
   }
   },
   "/api/v1/workers": {
   "get": {
   "tags": [
   "Worker"
   ],
   "operationId": "workers",
   "parameters": [
   {
   "name": "hostname",
   "in": "query",
   "schema": {
   "type": "string"
   }
   }
   ],
   "responses": {
   "200": {
   "description": "List worker information of the service. It will list all registered workers' information.",
   "content": {
   "application/json": {
   "schema": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerData"
   }
   }
   }
   }
   }
   }
   }
   }
   },
   "components": {
   "schemas": {
   "ConfigData": {
   "type": "object",
   "properties": {
   "name": {
   "type": "string"
   },
   "value": {
   "type": "string"
   }
   }
   },
   "SeqConfigData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "DynamicConfig": {
   "type": "object",
   "properties": {
   "level": {
   "type": "string"
   },
   "description": {
   "type": "string"
   },
   "configs": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/ConfigData"
   }
   }
   }
   },
   "SeqDynamicConfig": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "ThreadStackTrace": {
   "type": "object"
   },
   "SeqThreadStackTrace": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "ApplicationHeartbeatData": {
   "type": "object",
   "properties": {
   "appId": {
   "type": "string"
   },
   "lastHeartbeat": {
   "type": "integer",
   "format": "int64"
   }
   }
   },
   "SeqApplicationHeartbeatData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "SeqString": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "AppDiskUsageData": {
   "type": "object",
   "properties": {
   "appId": {
   "type": "string"
   },
   "estimateUsage": {
   "type": "integer",
   "format": "int64"
   },
   "estimateUsageStr": {
   "type": "string"
   }
   }
   },
   "AppDiskUsageSnapshotData": {
   "type": "object",
   "properties": {
   "start": {
   "type": "integer",
   "format": "int64"
   },
   "end": {
   "type": "integer",
   "format": "int64"
   },
   "topNItems": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/AppDiskUsageData"
   }
   }
   }
   },
   "SeqAppDiskUsageSnapshotData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "MasterCommitData": {
   "type": "object",
   "properties": {
   "commitIndex": {
   "type": "integer",
   "format": "int64"
   },
   "id": {
   "type": "string"
   },
   "address": {
   "type": "string"
   },
   "clientAddress": {
   "type": "string"
   },
   "startupRole": {
   "type": "string"
   }
   }
   },
   "MasterGroupData": {
   "type": "object",
   "properties": {
   "groupId": {
   "type": "string"
   },
   "leader": {
   "$ref": "#/components/schemas/MasterLeader"
   },
   "masterCommitInfo": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/MasterCommitData"
   }
   }
   }
   },
   "MasterLeader": {
   "type": "object",
   "properties": {
   "id": {
   "type": "string"
   },
   "address": {
   "type": "string"
   }
   }
   },
   "WorkerData": {
   "type": "object",
   "properties": {
   "host": {
   "type": "string"
   },
   "rpcPort": {
   "type": "integer",
   "format": "int32"
   },
   "pushPort": {
   "type": "integer",
   "format": "int32"
   },
   "fetchPort": {
   "type": "integer",
   "format": "int32"
   },
   "replicatePort": {
   "type": "integer",
   "format": "int32"
   },
   "internalPort": {
   "type": "integer",
   "format": "int32"
   },
   "slotsUsed": {
   "type": "integer",
   "format": "int64"
   },
   "lastHeartbeat": {
   "type": "integer",
   "format": "int64"
   },
   "heartbeatElapsedSeconds": {
   "type": "integer",
   "format": "int64"
   },
   "diskInfos": {
   "type": "object",
   "additionalProperties": {
   "type": "string"
   }
   },
   "resourceConsumption": {
   "type": "object",
   "additionalProperties": {
   "type": "string"
   }
   },
   "workerRef": {
   "type": "string"
   },
   "workerState": {
   "type": "string"
   },
   "workerStateStartTime": {
   "type": "integer",
   "format": "int64"
   },
   "registered": {
   "type": "boolean"
   },
   "shutdown": {
   "type": "boolean"
   },
   "decommissioning": {
   "type": "boolean"
   }
   }
   },
   "SeqWorkerData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "HandleResponse": {
   "type": "object",
   "properties": {
   "success": {
   "type": "boolean"
   },
   "message": {
   "type": "string"
   }
   }
   },
   "ExcludeWorkerRequest": {
   "type": "object",
   "properties": {
   "add": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerId"
   }
   },
   "remove": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerId"
   }
   }
   }
   },
   "WorkerId": {
   "type": "object",
   "properties": {
   "host": {
   "type": "string"
   },
   "rpcPort": {
   "type": "integer",
   "format": "int32"
   },
   "pushPort": {
   "type": "integer",
   "format": "int32"
   },
   "fetchPort": {
   "type": "integer",
   "format": "int32"
   },
   "replicatePort": {
   "type": "integer",
   "format": "int32"
   }
   }
   },
   "WorkerTimestampData": {
   "type": "object",
   "properties": {
   "worker": {
   "$ref": "#/components/schemas/WorkerData"
   },
   "timestamp": {
   "type": "integer",
   "format": "int64"
   }
   }
   },
   "SeqWorkerTimestampData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   },
   "SendWorkerEventRequest": {
   "type": "object",
   "properties": {
   "eventType": {
   "type": "string"
   },
   "workers": {
   "type": "array",
   "items": {
   "$ref": "#/components/schemas/WorkerId"
   }
   }
   }
   },
   "WorkerEventData": {
   "type": "object",
   "properties": {
   "worker": {
   "$ref": "#/components/schemas/WorkerData"
   },
   "event": {
   "$ref": "#/components/schemas/WorkerEventInfoData"
   }
   }
   },
   "WorkerEventInfoData": {
   "type": "object",
   "properties": {
   "eventType": {
   "type": "string"
   },
   "eventStartTime": {
   "type": "integer",
   "format": "int64"
   }
   }
   },
   "SeqWorkerEventData": {
   "type": "object",
   "properties": {
   "empty": {
   "type": "boolean"
   },
   "traversableAgain": {
   "type": "boolean"
   }
   }
   }
   }
   }
   }
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@celeborn.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org