-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
Signed-off-by: Ruirui Zhang <[email protected]>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
openapi: 3.1.0 | ||
info: | ||
title: OpenSearch Workload Management API | ||
description: OpenSearch Workload Management API | ||
version: 1.0.0 | ||
paths: | ||
/_wlm/query_group: | ||
get: | ||
operationId: query_group.get.0 | ||
x-operation-group: query_group.get | ||
x-version-added: '2.17' | ||
description: Gets the specified QueryGroup or get all if no name is provided. | ||
responses: | ||
'200': | ||
$ref: '#/components/responses/query_group.get@200' | ||
put: | ||
operationId: query_group.create.0 | ||
x-operation-group: query_group.create | ||
x-version-added: '2.17' | ||
description: Creates a specified query group. | ||
requestBody: | ||
$ref: '#/components/requestBodies/query_group.create' | ||
responses: | ||
'200': | ||
$ref: '#/components/responses/query_group.create@200' | ||
/_wlm/query_group/{name}: | ||
get: | ||
operationId: query_group.get.1 | ||
x-operation-group: query_group.get | ||
x-version-added: '2.17' | ||
description: Gets the specified QueryGroup or get all if no name is provided. | ||
parameters: | ||
- $ref: '#/components/parameters/query_group.get::path.name' | ||
responses: | ||
'200': | ||
$ref: '#/components/responses/query_group.get@200' | ||
put: | ||
operationId: query_group.update.0 | ||
x-operation-group: query_group.update | ||
x-version-added: '2.17' | ||
description: Updates a specified query group. | ||
parameters: | ||
- $ref: '#/components/parameters/query_group.update::path.name' | ||
requestBody: | ||
$ref: '#/components/requestBodies/query_group.update' | ||
responses: | ||
'200': | ||
$ref: '#/components/responses/query_group.update@200' | ||
delete: | ||
operationId: query_group.delete.1 | ||
x-operation-group: query_group.delete | ||
x-version-added: '2.17' | ||
description: Deletes the specified QueryGroups or delete all if no name is provided. | ||
parameters: | ||
- $ref: '#/components/parameters/query_group.delete::path.name' | ||
responses: | ||
'200': | ||
$ref: '#/components/responses/query_group.delete@200' | ||
components: | ||
requestBodies: | ||
query_group.create: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupCreate' | ||
required: true | ||
query_group.update: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupUpdate' | ||
required: true | ||
responses: | ||
query_group.create@200: | ||
description: '' | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' | ||
query_group.update@200: | ||
description: '' | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' | ||
query_group.delete@200: | ||
description: '' | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
acknowledged: | ||
type: boolean | ||
query_group.get@200: | ||
description: '' | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
query_groups: | ||
type: array | ||
items: | ||
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' | ||
parameters: | ||
query_group.update::path.name: | ||
name: name | ||
in: path | ||
description: QueryGroup name. | ||
schema: | ||
type: string | ||
required: true | ||
query_group.delete::path.name: | ||
name: name | ||
in: path | ||
description: QueryGroup name. | ||
schema: | ||
type: string | ||
required: true | ||
query_group.get::path.name: | ||
name: name | ||
in: path | ||
description: QueryGroup name. | ||
schema: | ||
type: string | ||
required: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
openapi: 3.1.0 | ||
info: | ||
title: Schemas of wlm._common category | ||
description: Schemas of wlm._common category | ||
version: 1.0.0 | ||
paths: {} | ||
components: | ||
schemas: | ||
QueryGroupResponse: | ||
type: object | ||
properties: | ||
_id: | ||
type: string | ||
name: | ||
type: string | ||
resiliency_mode: | ||
type: string | ||
enum: [ "soft", "enforced", "monitor" ] | ||
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
Check failure on line 18 in spec/schemas/wlm._common.yaml GitHub Actions / lint
|
||
updated_at: | ||
type: integer | ||
format: int64 | ||
resource_limits: | ||
anyOf: | ||
- type: object | ||
properties: | ||
memory: | ||
type: number | ||
format: double | ||
cpu: | ||
type: number | ||
format: double | ||
required: | ||
- memory | ||
- type: object | ||
properties: | ||
memory: | ||
type: number | ||
format: double | ||
cpu: | ||
type: number | ||
format: double | ||
required: | ||
- cpu | ||
required: | ||
- _id | ||
- name | ||
- resiliency_mode | ||
- updated_at | ||
- resource_limits | ||
QueryGroupCreate: | ||
type: object | ||
properties: | ||
name: | ||
type: string | ||
resiliency_mode: | ||
type: string | ||
enum: [ "soft", "enforced", "monitor" ] | ||
resource_limits: | ||
anyOf: | ||
- type: object | ||
properties: | ||
memory: | ||
type: number | ||
format: double | ||
cpu: | ||
type: number | ||
format: double | ||
required: | ||
- memory | ||
- type: object | ||
properties: | ||
memory: | ||
type: number | ||
format: double | ||
cpu: | ||
type: number | ||
format: double | ||
required: | ||
- cpu | ||
required: | ||
- name | ||
- resiliency_mode | ||
- resource_limits | ||
QueryGroupUpdate: | ||
type: object | ||
properties: | ||
resiliency_mode: | ||
type: string | ||
enum: [ "soft", "enforced", "monitor" ] | ||
resource_limits: | ||
type: object | ||
properties: | ||
memory: | ||
type: number | ||
format: double | ||
cpu: | ||
type: number | ||
format: double |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
ARG OPENSEARCH_DOCKER_HUB_PROJECT | ||
ARG OPENSEARCH_VERSION | ||
ARG OPENSEARCH_DOCKER_REF | ||
|
||
FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} | ||
Check failure on line 5 in tests/plugins/wlm/Dockerfile GitHub Actions / check
|
||
RUN ./bin/opensearch-plugin install -b workload-management | ||
Check failure on line 6 in tests/plugins/wlm/Dockerfile GitHub Actions / check
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
version: '3' | ||
|
||
services: | ||
opensearch-cluster: | ||
Check failure on line 4 in tests/plugins/wlm/docker-compose.yml GitHub Actions / check
|
||
build: | ||
context: . | ||
args: | ||
Check failure on line 7 in tests/plugins/wlm/docker-compose.yml GitHub Actions / check
|
||
- OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject} | ||
- OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF} | ||
- OPENSEARCH_VERSION=2.17.0 | ||
ports: | ||
- 9200:9200 | ||
- 9600:9600 | ||
environment: | ||
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} | ||
- OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} | ||
- discovery.type=single-node | ||
Check failure on line 17 in tests/plugins/wlm/docker-compose.yml GitHub Actions / check
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
$schema: ../../../../json_schemas/test_story.schema.yaml | ||
|
||
description: This story tests all endpoints relevant to QueryGroups, from creation to deletion. | ||
|
||
prologues: | ||
- path: /_wlm/query_group | ||
version: '>= 2.17' | ||
method: PUT | ||
request: | ||
payload: | ||
name: analytics | ||
resource_limits: | ||
memory: 0.1 | ||
resiliency_mode: monitor | ||
status: [200] | ||
- path: /_wlm/query_group | ||
version: '>= 2.17' | ||
method: PUT | ||
request: | ||
payload: | ||
name: analytics2 | ||
resource_limits: | ||
memory: 0.15 | ||
cpu: 0.05 | ||
resiliency_mode: monitor | ||
status: [200] | ||
|
||
chapters: | ||
- synopsis: Update the QueryGroup named `analytics2`, with resiliency_mode to be enforced and memory to be 0.25 and cpu to be 0.25. | ||
version: '>= 2.17' | ||
path: /_wlm/query_group/{name} | ||
method: PUT | ||
parameters: | ||
name: analytics2 | ||
request: | ||
payload: | ||
resource_limits: | ||
memory: 0.25 | ||
cpu: 0.25 | ||
resiliency_mode: enforced | ||
response: | ||
status: 200 | ||
- synopsis: Get the QueryGroup named `analytics2`. | ||
version: '>= 2.17' | ||
path: /_wlm/query_group/{name} | ||
method: GET | ||
parameters: | ||
name: analytics2 | ||
response: | ||
status: 200 | ||
payload: | ||
query_groups: | ||
- name: analytics2 | ||
resource_limits: | ||
memory: 0.25 | ||
cpu: 0.25 | ||
resiliency_mode: enforced | ||
|
||
epilogues: | ||
- path: /_wlm/query_group/analytics | ||
version: '>= 2.17' | ||
method: DELETE | ||
status: [200] | ||
- path: /_wlm/query_group/analytics2 | ||
version: '>= 2.17' | ||
method: DELETE | ||
status: [200] |