Skip to content

Commit 3676926

Browse files
zongzwgitee-org
authored andcommitted
!7 add test automation framework
Merge pull request !7 from zongzw/zong-tests
2 parents b00da1b + 43a2428 commit 3676926

17 files changed

+673
-17
lines changed

.vscode/launch.json

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,26 @@
55
"version": "0.2.0",
66
"configurations": [
77
{
8-
"name": "Launch Package",
8+
"name": "Python: test automation",
9+
"type": "python",
10+
"request": "launch",
11+
"program": "${workspaceFolder}/tests/test.py",
12+
"console": "integratedTerminal",
13+
"justMyCode": true
14+
},
15+
{
16+
"name": "GO: Launch Program",
917
"type": "go",
1018
"request": "launch",
1119
"mode": "auto",
1220
"program": "${workspaceFolder}",
1321
"args": [
14-
"--bigip-url", "https://10.250.15.180",
15-
"--bigip-username", "admin",
16-
"--bigip-password", "P@ssw0rd123"
22+
"--bigip-url",
23+
"https://10.250.15.180",
24+
"--bigip-username",
25+
"admin",
26+
"--bigip-password",
27+
"P@ssw0rd123"
1728
]
1829
}
1930
]

pkg/parser.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,9 @@ func parseiRulesFrom(hr *gatewayv1beta1.HTTPRoute, rlt map[string]interface{}) e
327327
}
328328

329329
// experimental .. definition is not clear yet.
330-
setPath := `set rpath "[HTTP::path]"`
330+
setUri := `set ruri "[HTTP::uri]"`
331331
if rr.Path != nil && rr.Path.ReplaceFullPath != nil {
332-
setPath = fmt.Sprintf(`set rpath "%s"`, *rr.Path.ReplaceFullPath)
332+
setUri = fmt.Sprintf(`set ruri "%s"`, *rr.Path.ReplaceFullPath)
333333
}
334334

335335
setPort := `set rport [TCP::local_port]`
@@ -347,10 +347,10 @@ func parseiRulesFrom(hr *gatewayv1beta1.HTTPRoute, rlt map[string]interface{}) e
347347
%s
348348
%s
349349
%s
350-
set uri $rscheme://$rhostname:$rport$rpath?[HTTP::query]
351-
log local0. "request redirect to $uri"
352-
HTTP::respond %d Location $uri
353-
`, setScheme, setHostName, setPath, setPort, *rr.StatusCode))
350+
set url $rscheme://$rhostname:$rport$ruri
351+
log local0. "request redirect to $url"
352+
HTTP::respond %d Location $url
353+
`, setScheme, setHostName, setUri, setPort, *rr.StatusCode))
354354
}
355355
// <gateway:experimental>
356356
case gatewayv1beta1.HTTPRouteFilterURLRewrite:

tests/config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
service_type: NodePort
2+
hostname: gateway.test.automation
3+
virtual:
4+
ipaddr: 10.250.18.119

tests/templates/gateway.yaml.j2

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
3+
apiVersion: gateway.networking.k8s.io/v1beta1
4+
kind: Gateway
5+
metadata:
6+
name: gateway
7+
labels:
8+
domain: k8s-gateway.nginx.org
9+
spec:
10+
gatewayClassName: bigip
11+
listeners:
12+
- name: http
13+
port: 80
14+
protocol: HTTP
15+
addresses:
16+
- value: {{ virtual.ipaddr }}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
---
3+
4+
apiVersion: gateway.networking.k8s.io/v1beta1
5+
kind: HTTPRoute
6+
metadata:
7+
name: test-filter-extensionref
8+
spec:
9+
parentRefs:
10+
- name: gateway
11+
sectionName: http
12+
hostnames:
13+
- {{ hostname }}
14+
rules:
15+
- filters:
16+
- type: ExtensionRef
17+
extensionRef:
18+
group: v1
19+
kind: Service
20+
name: test-service
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
---
3+
4+
apiVersion: gateway.networking.k8s.io/v1beta1
5+
kind: HTTPRoute
6+
metadata:
7+
name: test-filter-header
8+
spec:
9+
parentRefs:
10+
- name: gateway
11+
sectionName: http
12+
hostnames:
13+
- {{ hostname }}
14+
rules:
15+
- filters:
16+
- type: RequestHeaderModifier
17+
requestHeaderModifier:
18+
add:
19+
- name: test
20+
value: automation
21+
set:
22+
- name: dev
23+
value: agile
24+
backendRefs:
25+
- name: test-service
26+
port: 80
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
---
3+
4+
apiVersion: gateway.networking.k8s.io/v1beta1
5+
kind: HTTPRoute
6+
metadata:
7+
name: test-filter-requestredirect
8+
spec:
9+
parentRefs:
10+
- name: gateway
11+
sectionName: http
12+
hostnames:
13+
- {{ hostname }}
14+
rules:
15+
- filters:
16+
- type: RequestRedirect
17+
requestRedirect:
18+
scheme: https
19+
hostname: www.example.com
20+
# path:
21+
# type: ReplaceFullPath
22+
# replaceFullPath: /fake
23+
port: 443
24+
statusCode: 301
25+
backendRefs:
26+
- name: test-service
27+
port: 80
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
# ---
3+
4+
# apiVersion: gateway.networking.k8s.io/v1beta1
5+
# kind: HTTPRoute
6+
# metadata:
7+
# name: test-filter-urlrewrite
8+
# spec:
9+
# parentRefs:
10+
# - name: gateway
11+
# sectionName: http
12+
# hostnames:
13+
# - "cafe.example.com"
14+
# rules:
15+
# - matches:
16+
# - path:
17+
# type: PathPrefix
18+
# value: /urlrewrite-test
19+
# - headers:
20+
# - name: test
21+
# value: zongzw
22+
# - name: dev
23+
# value: andrew
24+
# filters:
25+
# - type: URLRewrite
26+
# urlRewrite:
27+
# hostname: www.example.com
28+
# path:
29+
# type: ReplaceFullPath
30+
# replaceFullPath: /fake
31+
# backendRefs:
32+
# - name: tea
33+
# port: 80
34+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
---
3+
4+
apiVersion: gateway.networking.k8s.io/v1beta1
5+
kind: HTTPRoute
6+
metadata:
7+
name: test-match-header
8+
spec:
9+
parentRefs:
10+
- name: gateway
11+
sectionName: http
12+
hostnames:
13+
- {{ hostname }}
14+
rules:
15+
- matches:
16+
- headers:
17+
- name: test
18+
value: automation
19+
backendRefs:
20+
- name: test-service
21+
port: 80
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
---
3+
4+
apiVersion: gateway.networking.k8s.io/v1beta1
5+
kind: HTTPRoute
6+
metadata:
7+
name: test-match-method
8+
spec:
9+
parentRefs:
10+
- name: gateway
11+
sectionName: http
12+
hostnames:
13+
- {{ hostname }}
14+
rules:
15+
- matches:
16+
- method: GET
17+
- method: OPTIONS
18+
backendRefs:
19+
- name: test-service
20+
port: 80

0 commit comments

Comments
 (0)