blob: f26667adce4ff8ce0d358d379f28746cefa54ce9 [file]
# 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.
# Multi-OAP gRPC pick_first failover (Node static-failover analogue).
# Preferred backend is shuffled per process, so provider and consumer may
# already sit on different OAPs. Assert the union of both service lists,
# stop one OAP that has data (prefer oap_a), then require the other list.
setup:
env: compose
file: docker-compose.grpc.failover.yaml
timeout: 20m
init-system-environment: ../../../script/env
steps:
- name: install yq
command: bash tests/e2e/script/prepare/install.sh yq
- name: install swctl
command: bash tests/e2e/script/prepare/install.sh swctl
trigger:
action: http
interval: 1s
times: 10
url: http://${consumer_host}:${consumer_9090}/artist-consumer
method: POST
headers:
"Content-Type": "application/json"
body: '{"song": "Despacito"}'
verify:
retry:
count: 20
interval: 10s
cases:
- name: both agents registered (union across OAPs)
query: bash tests/e2e/case/grpc/failover/verify-active.sh
expected: ../../expected/service-sorted.yml
- name: remaining OAP has both services after one backend stop
query: bash tests/e2e/case/grpc/failover/verify-standby.sh
expected: ../../expected/service-sorted.yml