github.com/nginxinc/kubernetes-ingress@v1.12.5/tests/suite/test_virtual_server_api.py (about)

     1  import pytest
     2  import requests
     3  import json
     4  
     5  from settings import NGINX_API_VERSION
     6  
     7  from suite.nginx_api_utils import wait_for_empty_array, wait_for_non_empty_array, get_nginx_generation_value
     8  from suite.resources_utils import scale_deployment
     9  
    10  
    11  @pytest.mark.vs
    12  @pytest.mark.skip_for_nginx_oss
    13  @pytest.mark.parametrize('crd_ingress_controller, virtual_server_setup',
    14                           [({"type": "complete", "extra_args": ["-enable-custom-resources",
    15                                                                 "-nginx-status-allow-cidrs=0.0.0.0/0"]},
    16                             {"example": "virtual-server-dynamic-configuration", "app_type": "simple"})],
    17                           indirect=True)
    18  class TestVSNginxPlusApi:
    19      def test_dynamic_configuration(self, kube_apis, ingress_controller_endpoint,
    20                                     crd_ingress_controller, virtual_server_setup):
    21          req_url = f"http://{ingress_controller_endpoint.public_ip}:{ingress_controller_endpoint.api_port}"
    22          vs_upstream = f"vs_{virtual_server_setup.namespace}_{virtual_server_setup.vs_name}_backend2"
    23          initial_reloads_count = get_nginx_generation_value(req_url)
    24          upstream_servers_url = f"{req_url}/api/{NGINX_API_VERSION}/http/upstreams/{vs_upstream}/servers"
    25          print("Scale BE deployment")
    26          scale_deployment(kube_apis.apps_v1_api, "backend2", virtual_server_setup.namespace, 0)
    27          wait_for_empty_array(upstream_servers_url)
    28          scale_deployment(kube_apis.apps_v1_api, "backend2", virtual_server_setup.namespace, 1)
    29          wait_for_non_empty_array(upstream_servers_url)
    30  
    31          print("Run checks:")
    32          resp = json.loads(requests.get(upstream_servers_url).text)
    33          new_reloads_count = get_nginx_generation_value(req_url)
    34          assert new_reloads_count == initial_reloads_count, "Expected: no new reloads"
    35          assert resp[0]['max_conns'] == 32
    36          assert resp[0]['max_fails'] == 25
    37          assert resp[0]['fail_timeout'] == '15s'
    38          assert resp[0]['slow_start'] == '10s'
    39  
    40      def test_status_zone_support(self, kube_apis, crd_ingress_controller, virtual_server_setup):
    41          req_url = f"http://" \
    42              f"{virtual_server_setup.public_endpoint.public_ip}:{virtual_server_setup.public_endpoint.api_port}"
    43          status_zone_url = f"{req_url}/api/{NGINX_API_VERSION}/http/server_zones"
    44          resp = json.loads(requests.get(status_zone_url).text)
    45          assert resp[f"{virtual_server_setup.vs_host}"]