Skip to content

Commit 278d28c

Browse files
authored
feat: Add first real interop test (#156)
Verify tokens issued by both rust and python are accepted by both keystones (token validation).
1 parent a1c7293 commit 278d28c

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

.github/workflows/functional.yml

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,7 @@ jobs:
102102
- name: Run python keystone
103103
env:
104104
OS_KEYSTONE_CONFIG_DIR: ${{ github.workspace }}/etc
105-
run: |
106-
uwsgi --module "keystone.server.wsgi:initialize_public_application()" --http-socket :5001 -b 65535 --http-keepalive --so-keepalive --logformat "Request %(uri):%(method) returned %(status) in %(msecs)ms" > python.log 2>&1 &
105+
run: uwsgi --module "keystone.server.wsgi:initialize_public_application()" --http-socket :5001 -b 65535 --http-keepalive --so-keepalive --logformat "Request %(uri):%(method) returned %(status) in %(msecs)ms" > python.log 2>&1 &
107106

108107
- name: Setup service catalog
109108
env:
@@ -118,26 +117,34 @@ jobs:
118117
run: cargo install --path .
119118

120119
- name: Run rust keystone
121-
run: |
122-
keystone -c ${{ github.workspace }}/etc/keystone.conf -vv > rust.log 2>&1 &
120+
run: keystone -c ${{ github.workspace }}/etc/keystone.conf -vv > rust.log 2>&1 &
123121

124-
- name: Test python keystone
125-
run: |
126-
curl http://localhost:5001/v3
122+
- name: Test python keystone availability
123+
run: curl http://localhost:5001/v3
124+
125+
- name: Test rust keystone availability
126+
run: curl http://localhost:8080/v3
127127

128-
- name: Test rust keystone
128+
- name: Basic test using token validation
129129
run: |
130-
curl http://localhost:8080/v3
130+
TOKEN1=$(osc --os-cloud admin auth login)
131+
TOKEN2=$(osc --os-cloud admin-rust auth login)
132+
133+
echo "Use rust Keystone token against both Keystones"
134+
curl http://localhost:8080/v3/auth/tokens -H "X-Auth-Token: ${TOKEN1}" -H "X-Subject-Token: ${TOKEN1}" | jq
135+
curl http://localhost:5001/v3/auth/tokens -H "X-Auth-Token: ${TOKEN1}" -H "X-Subject-Token: ${TOKEN1}" | jq
136+
137+
echo "Use python Keystone token against both Keystones"
138+
curl http://localhost:8080/v3/auth/tokens -H "X-Auth-Token: ${TOKEN2}" -H "X-Subject-Token: ${TOKEN2}" | jq
139+
curl http://localhost:5001/v3/auth/tokens -H "X-Auth-Token: ${TOKEN2}" -H "X-Subject-Token: ${TOKEN2}" | jq
131140
132141
- name: Run interop tests
133142
run: cargo test --test interop
134143

135144
- name: Dump python keystone log
136145
if: failure()
137-
run: |
138-
cat python.log
146+
run: cat python.log
139147

140148
- name: Dump rust keystone log
141149
if: failure()
142-
run: |
143-
cat rust.log
150+
run: cat rust.log

0 commit comments

Comments
 (0)