cab0b13f5c
In preparation for a switch from docker-compose to docker compose (with a shim so that docker-compose is docker compose) we switch away from direct docker exec to using docker-compose exec because the two different compose implementations use different container names. This way we shouldn't need to lookup container names at runtime or have special casing depending on which system we want to use. Instead the compose runtime will find the correct container to exec in based on the human readable name in our config file. Change-Id: I5ffb0007997dfdf2da67df3ada5db4534dc383a7
58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
# Copyright 2018 Red Hat, Inc.
|
|
#
|
|
# Licensed 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 json
|
|
|
|
|
|
testinfra_hosts = ['gitea-lb02.opendev.org']
|
|
|
|
|
|
def test_gitea_listening(host):
|
|
gitea_https = host.socket("tcp://0.0.0.0:443")
|
|
assert gitea_https.is_listening
|
|
gitea_http = host.socket("tcp://0.0.0.0:80")
|
|
assert gitea_http.is_listening
|
|
|
|
def test_haproxy_statsd_running(host):
|
|
# TODO(clarkb) when everything is using docker compose we can use
|
|
# ps --format json and inspect the json document directly. Old
|
|
# docker-compose doesn't support this.
|
|
cmd = host.run("/usr/local/bin/docker-compose "
|
|
"-f /etc/haproxy-docker/docker-compose.yaml "
|
|
"ps haproxy-statsd")
|
|
assert ' Up ' in cmd.stdout
|
|
|
|
def test_haproxy_gitea_connection(host):
|
|
cmd = host.run('curl --resolve opendev.org:443:127.0.0.1 '
|
|
'https://opendev.org')
|
|
assert 'OpenDev: Free Software Needs Free Tools' in cmd.stdout
|
|
|
|
def test_more_than_haproxy_maxconn_conns(host):
|
|
'''Test we can handle more than haproxy maxconn limit for connections'''
|
|
# Perform more than 4000 (maxconn limit) requests.
|
|
cmd = host.run('bash -c "seq 1 4096 | xargs -IUNUSED -n 1 -P 0 '
|
|
'curl --resolve opendev.org:443:127.0.0.1 '
|
|
'https://opendev.org > /dev/null 2>&1"')
|
|
# Now make a request and ensure we get expected content back
|
|
cmd = host.run('curl --resolve opendev.org:443:127.0.0.1 '
|
|
'https://opendev.org')
|
|
assert 'OpenDev: Free Software Needs Free Tools' in cmd.stdout
|
|
|
|
def test_haproxy_stats(host):
|
|
cmd = host.run('echo "show servers state" | socat /var/haproxy/run/stats stdio | '
|
|
'tail +3 | awk \'{print $2,$4,$6}\'')
|
|
|
|
assert 'balance_git_http gitea99.opendev.org 2' in cmd.stdout
|
|
assert 'balance_git_https gitea99.opendev.org 2' in cmd.stdout
|