3
3
from settings import TEST_DATA
4
4
from suite .utils .custom_resources_utils import create_gc_from_yaml , delete_gc
5
5
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
7
7
8
8
9
- @pytest .mark .test
9
+ @pytest .mark .vs
10
10
@pytest .mark .parametrize (
11
11
"crd_ingress_controller, virtual_server_setup" ,
12
12
[
@@ -47,51 +47,146 @@ def test_custom_listeners(self, kube_apis, crd_ingress_controller, virtual_serve
47
47
)
48
48
global_config_file = f"{ TEST_DATA } /virtual-server-custom-listeners/global-configuration.yaml"
49
49
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)
51
52
patch_virtual_server_from_yaml (
52
53
kube_apis .custom_objects ,
53
54
virtual_server_setup .vs_name ,
54
- patch_src ,
55
+ vs_custom_listeners ,
55
56
virtual_server_setup .namespace ,
56
57
)
57
58
wait_before_test ()
58
59
print (virtual_server_setup .backend_1_url_custom_ssl )
59
- resp1 = requests .get (
60
+ resp_custom_https_port = requests .get (
60
61
virtual_server_setup .backend_1_url_custom_ssl ,
61
62
headers = {"host" : virtual_server_setup .vs_host },
62
63
allow_redirects = False ,
63
64
verify = False ,
64
65
)
65
66
print (virtual_server_setup .backend_1_url_custom )
66
- resp2 = requests .get (
67
+ resp_custom_http_port = requests .get (
67
68
virtual_server_setup .backend_1_url_custom ,
68
69
headers = {"host" : virtual_server_setup .vs_host },
69
70
)
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 )
74
75
75
76
print (virtual_server_setup .backend_1_url_ssl )
76
- resp3 = requests .get (
77
+ resp_default_https_port = requests .get (
77
78
virtual_server_setup .backend_1_url_ssl ,
78
79
headers = {"host" : virtual_server_setup .vs_host },
79
80
allow_redirects = False ,
80
81
verify = False ,
81
82
)
82
83
print (virtual_server_setup .backend_1_url )
83
- resp4 = requests .get (
84
+ resp_default_http_port = requests .get (
84
85
virtual_server_setup .backend_1_url ,
85
86
headers = {"host" : virtual_server_setup .vs_host },
86
87
)
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 )
91
92
92
93
delete_secret (kube_apis .v1 , secret_name , virtual_server_setup .namespace )
93
94
delete_gc (kube_apis .custom_objects , gc_resource , "nginx-ingress" )
94
95
self .restore_default_vs (kube_apis , virtual_server_setup )
95
96
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 ("\n Step 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