8000 Add test for deleting gc · nginx/kubernetes-ingress@d39ac81 · GitHub
[go: up one dir, main page]

Skip to content

Commit d39ac81

Browse files
committed
Add test for deleting gc
1 parent 5df07bb commit d39ac81

File tree

1 file changed

+113
-18
lines changed

1 file changed

+113
-18
lines changed

tests/suite/test_virtual_server_custom_listeners.py

Lines changed: 113 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
from settings import TEST_DATA
44
from suite.utils.custom_resources_utils import create_gc_from_yaml, delete_gc
55
from suite.utils.resources_utils import create_secret_from_yaml, delete_secret, wait_before_test
6< 8000 /code>-
from suite.utils.vs_vsr_resources_utils import patch_virtual_server_from_yaml
6+
from suite.utils.vs_vsr_resources_utils import patch_virtual_server_from_yaml, read_vs
77

88

9-
@pytest.mark.test
9+
@pytest.mark.vs
1010
@pytest.mark.parametrize(
1111
"crd_ingress_controller, virtual_server_setup",
1212
[
@@ -47,51 +47,146 @@ def test_custom_listeners(self, kube_apis, crd_ingress_controller, virtual_serve
4747
)
4848
global_config_file = f"{TEST_DATA}/virtual-server-custom-listeners/global-configuration.yaml"
4949
gc_resource = create_gc_from_yaml(kube_apis.custom_objects, global_config_file, "nginx-ingress")
50-
patch_src = f"{TEST_DATA}/virtual-server-custom-listeners/virtual-server.yaml"
50+
vs_custom_listeners = f"{TEST_DATA}/virtual-server-custom-listeners/virtual-server.yaml"
51+
# Create VS with custom listener (http-8085, https-8445)
5152
patch_virtual_server_from_yaml(
5253
kube_apis.custom_objects,
5354
virtual_server_setup.vs_name,
54-
patch_src,
55+
vs_custom_listeners,
5556
virtual_server_setup.namespace,
5657
)
5758
wait_before_test()
5859
print(virtual_server_setup.backend_1_url_custom_ssl)
59-
resp1 = requests.get(
60+
resp_custom_https_port = requests.get(
6061
virtual_server_setup.backend_1_url_custom_ssl,
6162
headers={"host": virtual_server_setup.vs_host},
6263
allow_redirects=False,
6364
verify=False,
6465
)
6566
print(virtual_server_setup.backend_1_url_custom)
66-
resp2 = requests.get(
67+
resp_custom_http_port = requests.get(
6768
virtual_server_setup.backend_1_url_custom,
6869
headers={"host": virtual_server_setup.vs_host},
6970
)
70-
print(resp1.status_code)
71-
print(resp1.text)
72-
print(resp2.status_code)
73-
print(resp2.text)
71+
print(resp_custom_https_port.status_code)
72+
print(resp_custom_https_port.text)
73+
print(resp_custom_http_port.status_code)
74+
print(resp_custom_http_port.text)
7475

7576
print(virtual_server_setup.backend_1_url_ssl)
76-
resp3 = requests.get(
77+
resp_default_https_port = requests.get(
7778
virtual_server_setup.backend_1_url_ssl,
7879
headers={"host": virtual_server_setup.vs_host},
7980
allow_redirects=False,
8081
verify=False,
8182
)
8283
print(virtual_server_setup.backend_1_url)
83-
resp4 = requests.get(
84+
resp_default_http_port = requests.get(
8485
virtual_server_setup.backend_1_url,
8586
headers={"host": virtual_server_setup.vs_host},
8687
)
87-
print(resp3.status_code)
88-
print(resp3.text)
89-
print(resp4.status_code)
90-
print(resp4.text)
88+
print(resp_default_https_port.status_code)
89+
print(resp_default_https_port.text)
90+
print(resp_default_http_port.status_code)
91+
print(resp_default_http_port.text)
9192

9293
delete_secret(kube_apis.v1, secret_name, virtual_server_setup.namespace)
9394
delete_gc(kube_apis.custom_objects, gc_resource, "nginx-ingress")
9495
self.restore_default_vs(kube_apis, virtual_server_setup)
9596

96-
assert resp1.status_code == 200 and resp2.status_code == 200
97-
assert resp3.status_code == 404 and resp4.status_code == 404
97+
assert resp_custom_https_port.status_code == 200
98+
assert resp_custom_http_port.status_code == 200
99+
assert resp_default_https_port.status_code == 404
100+
assert resp_default_http_port.status_code == 404
101+
102+
@pytest.mark.customlisteners
103+
def test_custom_listeners_vs_warning_on_delete_gc(self, kube_apis, crd_ingress_controller, virtual_server_setup) -> None:
104+
print("\nStep 1: Create GC resource")
105+
secret_name = create_secret_from_yaml(
106+
kube_apis.v1, virtual_server_setup.namespace, f"{TEST_DATA}/virtual-server-tls/tls-secret.yaml"
107+
)
108+
global_config_file = f"{TEST_DATA}/virtual-server-custom-listeners/global-configuration.yaml"
109+
gc_resource = create_gc_from_yaml(kube_apis.custom_objects, global_config_file, "nginx-ingress")
110+
vs_custom_listener 6D40 s = f"{TEST_DATA}/virtual-server-custom-listeners/virtual-server.yaml"
111+
# Create VS with custom listener (http-8085, https-8445)
112+
patch_virtual_server_from_yaml(
113+
kube_apis.custom_objects,
114+
virtual_server_setup.vs_name,
115+
vs_custom_listeners,
116+
virtual_server_setup.namespace,
117+
)
118+
wait_before_test()
119+
print(virtual_server_setup.backend_1_url_custom_ssl)
120+
resp_custom_https_port = requests.get(
121+
virtual_server_setup.backend_1_url_custom_ssl,
122+
headers={"host": virtual_server_setup.vs_host},
123+
allow_redirects=False,
124+
verify=False,
125+
)
126+
print(virtual_server_setup.backend_1_url_custom)
127+
resp_custom_http_port = requests.get(
128+
virtual_server_setup.backend_1_url_custom,
129+
headers={"host": virtual_server_setup.vs_host},
130+
)
131+
print(resp_custom_https_port.status_code)
132+
print(resp_custom_https_port.text)
133+
print(resp_custom_http_port.status_code)
134+
print(resp_custom_http_port.text)
135+
136+
print(virtual_server_setup.backend_1_url_ssl)
137+
resp_default_https_port = requests.get(
138+
virtual_server_setup.backend_1_url_ssl,
139+
headers={"host": virtual_server_setup.vs_host},
140+
allow_redirects=False,
141+
verify=False,
142+
)
143+
print(virtual_server_setup.backend_1_url)
144+
resp_default_http_port = requests.get(
145+
virtual_server_setup.backend_1_url,
146+
headers={"host": virtual_server_setup.vs_host},
147+
)
148+
print(resp_default_https_port.status_code)
149+
print(resp_default_https_port.text)
150+
print(resp_default_http_port.status_code)
151+
print(resp_default_http_port.text)
152+
153+
delete_gc(kube_apis.custom_objects, gc_resource, "nginx-ingress")
154+
155+
wait_before_test()
156+
print(virtual_server_setup.backend_1_url_custom_ssl)
157+
try:
158+
resp_custom_https_port_after_delete = requests.get(
159+
virtual_server_setup.backend_1_url_custom_ssl,
160+
headers={"host": virtual_server_setup.vs_host},
161+
allow_redirects=False,
162+
verify=False,
163+
)
164+
except ConnectionRefusedError:
165+
pass
166+
else:
167+
assert False, f"Expected: ConnectionRefusedError for url {virtual_server_setup.backend_1_url_custom_ssl}"
168+
169+
print(virtual_server_setup.backend_1_url_custom)
170+
try:
171+
resp_custom_http_port_after_delete = requests.get(
172+
virtual_server_setup.backend_1_url_custom,
173+
headers={"host": virtual_server_setup.vs_host},
174+
)
175+
except ConnectionRefusedError:
176+
pass
177+
else:
178+
assert False, f"Expected: ConnectionRefusedError for url {virtual_server_setup.backend_1_url_custom}"
179+
180+
response = read_vs(kube_apis.custom_objects, virtual_server_setup.namespace, virtual_server_setup)
181+
182+
delete_secret(kube_apis.v1, secret_name, virtual_server_setup.namespace)
183+
self.restore_default_vs(kube_apis, virtual_server_setup)
184+
185+
assert (
186+
response["status"]["reason"] == "Warning"
187+
and response["status"]["message"] == "Listeners defined, but no GlobalConfiguration deployed"
188+
)
189+
assert resp_custom_https_port.status_code == 200
190+
assert resp_custom_http_port.status_code == 200
191+
assert resp_default_https_port.status_code == 404
192+
assert resp_default_http_port.status_code == 404

0 commit comments

Comments
 (0)
0