Skip to content

Commit

Permalink
add verity script
Browse files Browse the repository at this point in the history
  • Loading branch information
helight committed Sep 30, 2020
1 parent 2831af1 commit 4d6287a
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 11 deletions.
6 changes: 5 additions & 1 deletion http-filter-example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ or you can just use this demo yaml file [config.yaml](config.yaml).
```
- Run an http server
```sh
python httpserver.py
python ./http-filter-example/httpserver.py
```
- Access the http server with curl cmd:
```sh
Expand All @@ -82,6 +82,10 @@ via: sample-filter
x-envoy-expected-rq-timeout-ms: 15000
content-length: 0
```
- Start service and verify with shell script

1. `bash ./http-filter-example/start_service.sh`
2. `bash ./http-filter-example/verify.sh`

[StreamDecoderFilter]: https://github.com/envoyproxy/envoy/blob/b2610c84aeb1f75c804d67effcb40592d790e0f1/include/envoy/http/filter.h#L300
[StreamEncoderFilter]: https://github.com/envoyproxy/envoy/blob/b2610c84aeb1f75c804d67effcb40592d790e0f1/include/envoy/http/filter.h#L413
Expand Down
23 changes: 13 additions & 10 deletions http-filter-example/httpserver.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
#!/usr/bin/python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
#!/usr/bin/python3
from http.server import BaseHTTPRequestHandler,HTTPServer

PORT = 8081
HTTP_PORT = 8081

# This class will handles any incoming request
class doHandler(BaseHTTPRequestHandler):

# Handler for the GET requests
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
print self.headers # print the http header
# Send the html message
self.wfile.write("Hello World !")
print(self.headers)
# Send the message
self.wfile.write(b"Hello World !\r\n")
self.wfile.write(self.headers.as_bytes())
return

try:
# Create a web server and define the handler to manage the incoming request
server = HTTPServer(('', PORT), doHandler)
print 'Started httpserver on port ' , PORT
# Create a http server and define the handler to manage the request
server = HTTPServer(('', HTTP_PORT), doHandler)
print('Started httpserver on port ' , HTTP_PORT)

# Wait forever for incoming http requests
server.serve_forever()

except KeyboardInterrupt:
print 'shutting down the web server'
print('^C received, shutting down the web server')
server.socket.close()
3 changes: 3 additions & 0 deletions http-filter-example/start_service.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
python3 ./http-filter-example/httpserver.py&
./bazel-bin/envoy --config-path ./http-filter-example/config.yaml
32 changes: 32 additions & 0 deletions http-filter-example/verify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash -e

export NAME=http-filter-example

_curl () {
local arg curl_command
curl_command=(curl -s)
if [[ ! "$*" =~ "-X" ]]; then
curl_command+=(-X GET)
fi
for arg in "${@}"; do
curl_command+=("$arg")
done
"${curl_command[@]}" || {
echo "ERROR: curl (${curl_command[*]})" >&2
return 1
}
}

responds_with () {
local expected
expected="$1"
shift
_curl "${@}" | grep "$expected" || {
echo "ERROR: curl expected (${*}): $expected" >&2
return 1
}
}

responds_with \
"via: sample-filter" \
"http://localhost:8080"

0 comments on commit 4d6287a

Please sign in to comment.