-
Notifications
You must be signed in to change notification settings - Fork 355
Traffic Ops integration tests #4959
Changes from all commits
f83b72a
cbac849
ec929c6
2cff83e
d64a783
4247cdb
2dbc48a
cce4a3e
5d04957
cdf613b
1c7b48f
78c90bf
e08b8c2
8fc90ad
7a98504
177e4d5
466c2e0
5a65105
1d6b9c3
65f6de3
646e39a
25ee0c6
e405915
9449fac
302f1fd
d9e8814
5d2f902
ab35d45
168d912
dce08a6
9630642
94eacb1
0df31d8
6a63efd
0b033ab
e9b369f
91effda
c2083b8
5d68657
919564a
eee25b8
6a3aa3f
5dd3e8f
a654d2f
69c12bb
89a5c18
42270c4
e797d49
951d171
90b12bc
3375e3e
5a07100
97c1916
20ae173
2add9e5
071ec24
98f10b7
c72acee
a3d93f2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
| # distributed with this work for additional information | ||
| # regarding copyright ownership. The ASF licenses this file | ||
| # to you under the Apache License, Version 2.0 (the | ||
| # "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, | ||
| # software distributed under the License is distributed on an | ||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. | ||
|
|
||
| FROM golang:1.14.2-alpine | ||
|
|
||
| ENV CGO_ENABLED=0 | ||
| RUN apk add --no-cache gettext git | ||
|
|
||
| COPY entrypoint.sh database.json traffic-ops-test.json cdn.json / | ||
| RUN chmod a+x /entrypoint.sh | ||
|
|
||
| ENTRYPOINT /entrypoint.sh |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| <!-- | ||
| Licensed to the Apache Software Foundation (ASF) under one | ||
| or more contributor license agreements. See the NOTICE file | ||
| distributed with this work for additional information | ||
| regarding copyright ownership. The ASF licenses this file | ||
| to you under the Apache License, Version 2.0 (the | ||
| "License"); you may not use this file except in compliance | ||
| with the License. You may obtain a copy of the License at | ||
|
|
||
| http://www.apache.org/licenses/LICENSE-2.0 | ||
|
|
||
| Unless required by applicable law or agreed to in writing, | ||
| software distributed under the License is distributed on an | ||
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| KIND, either express or implied. See the License for the | ||
| specific language governing permissions and limitations | ||
| under the License. | ||
| --> | ||
|
|
||
| # to-integration-tests Docker action | ||
| This action runs the Traffic Ops Go client integration tests with the Traffic | ||
| Ops API. | ||
|
|
||
| ## Inputs | ||
|
|
||
| ### `version` | ||
| **Required** Major API version to test e.g. 1, 2, 3 etc. | ||
|
|
||
| ## Outputs | ||
|
|
||
| ### `exit-code` | ||
| 1 if the Go program(s) could be built successfully. | ||
|
|
||
| ## Example usage | ||
| ```yaml | ||
| jobs: | ||
| tests: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| services: | ||
| postgres: | ||
| image: postgres:11.9 | ||
| env: | ||
| POSTGRES_USER: traffic_ops | ||
| POSTGRES_PASSWORD: twelve | ||
| POSTGRES_DB: traffic_ops | ||
| ports: | ||
| - 5432:5432 | ||
| options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | ||
|
|
||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@master | ||
| - name: initialize database | ||
| uses: ./.github/actions/todb-init | ||
| - name: Run API v5 tests | ||
| uses: ./.github/actions/to-integration-tests | ||
| with: | ||
| version: 5 | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
| # distributed with this work for additional information | ||
| # regarding copyright ownership. The ASF licenses this file | ||
| # to you under the Apache License, Version 2.0 (the | ||
| # "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, | ||
| # software distributed under the License is distributed on an | ||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. | ||
|
|
||
| name: 'to-integration-tests' | ||
| description: 'Runs Traffic Ops Go client/API integration tests' | ||
| inputs: | ||
| version: | ||
| description: 'Version of Traffic Ops API against which to run tests, e.g. 1, 2, 3, etc.' | ||
| required: true | ||
| runs: | ||
| using: 'docker' | ||
| image: 'Dockerfile' | ||
| args: | ||
| - ${{ inputs.version }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| { | ||
| "hypnotoad" : { | ||
| "listen" : [ | ||
| "https://not-a-real-host.test:1?cert=$PWD/localhost.crt&key=$PWD/localhost.key&verify=0x00&ciphers=AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!EDH:!ED" | ||
| ], | ||
| "user" : "trafops", | ||
| "group" : "trafops", | ||
| "heartbeat_timeout" : 20, | ||
| "pid_file" : "/var/run/traffic_ops.pid", | ||
| "workers" : 12 | ||
| }, | ||
| "use_ims": true, | ||
| "traffic_ops_golang" : { | ||
| "insecure": true, | ||
| "port" : "6443", | ||
| "log_location_error": "stderr", | ||
| "log_location_warning": "stderr", | ||
| "log_location_info": null, | ||
| "log_location_debug": null, | ||
| "log_location_event": null, | ||
| "max_db_connections": 20, | ||
| "db_conn_max_lifetime_seconds": 60, | ||
| "db_query_timeout_seconds": 20, | ||
| "supported_ds_metrics": [ "kbps", "tps_total", "tps_2xx", "tps_3xx", "tps_4xx", "tps_5xx" ] | ||
| }, | ||
| "cors" : { | ||
| "access_control_allow_origin" : "*" | ||
| }, | ||
| "to" : { | ||
| "base_url" : "https://localhost", | ||
| "email_from" : "no-reply@traffic-ops.test", | ||
| "no_account_found_msg" : "A Traffic Ops user account is required for access. Please contact your Traffic Ops user administrator." | ||
| }, | ||
| "portal" : { | ||
| "base_url" : "https://not-a-real-host.test/#!/", | ||
| "email_from" : "no-reply@traffic-portal.test", | ||
| "pass_reset_path" : "user", | ||
| "user_register_path" : "user" | ||
| }, | ||
| "secrets" : [ | ||
| "blahblah" | ||
| ], | ||
| "geniso" : { | ||
| "iso_root_path" : "/opt/traffic_ops/app/public" | ||
| }, | ||
| "inactivity_timeout" : 60, | ||
| "smtp" : { | ||
| "enabled" : false | ||
| }, | ||
| "InfluxEnabled": false | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| { | ||
| "description": "Local PostgreSQL database on port 5432", | ||
| "dbname": "traffic_ops", | ||
| "hostname": "postgres", | ||
| "user": "traffic_ops", | ||
| "password": "twelve", | ||
| "port": "5432", | ||
| "ssl": false, | ||
| "type": "Pg" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
| # distributed with this work for additional information | ||
| # regarding copyright ownership. The ASF licenses this file | ||
| # to you under the Apache License, Version 2.0 (the | ||
| # "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, | ||
| # software distributed under the License is distributed on an | ||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. | ||
| version: "1.0" | ||
| name: dbconf.yml | ||
|
|
||
| test: | ||
| driver: postgres | ||
| open: host=postgres port=5432 user=traffic_ops password=twelve dbname=traffic_ops sslmode=disable | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,111 @@ | ||
| #!/bin/sh -l | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
| # distributed with this work for additional information | ||
| # regarding copyright ownership. The ASF licenses this file | ||
| # to you under the Apache License, Version 2.0 (the | ||
| # "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, | ||
| # software distributed under the License is distributed on an | ||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. | ||
|
|
||
| GOPATH="$(mktemp -d)" | ||
| SRCDIR="$GOPATH/src/github.com/apache" | ||
| mkdir -p "$SRCDIR" | ||
| ln -s "$PWD" "$SRCDIR/trafficcontrol" | ||
|
|
||
| cd "$SRCDIR/trafficcontrol/traffic_ops/traffic_ops_golang" | ||
|
|
||
|
|
||
| /usr/local/go/bin/go get ./... | ||
| /usr/local/go/bin/go build . | ||
|
|
||
| echo " | ||
| -----BEGIN CERTIFICATE----- | ||
| MIIDtTCCAp2gAwIBAgIJAJgQuE9T48+gMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV | ||
| BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX | ||
| aWRnaXRzIFB0eSBMdGQwHhcNMTcwNTA5MDIyNTI0WhcNMTgwNTA5MDIyNTI0WjBF | ||
| MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 | ||
| ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB | ||
| CgKCAQEA1OsuQ71qaSZ4ivGnh4YryeQEHMn5wZLX7kWYB637ssyOJnkU1ZGs93JM | ||
| XJADzsjmssP6icSDhV2JPgDDYzx1eBJt6y3vHI7L3AdGfQJj+4FFABKR8moqpc1J | ||
| WIMGnPzO6DeEc8irf0qxSh+yvuFX0j6oS8oCqiRxz5+HL2wEGWmrgr37JY4/bs7o | ||
| 4CMY19Ru1dP2Fr292HEIqCEnLTOuaHSWAEWx1Tm93kT9sXbw/SG2JTLQSX80biFL | ||
| 7foJeoGWLls2reTCYTprzWFaMu3x9I8HLtf4VIN44rtvo5N20KYgjGqvPjFGPljL | ||
| yrgB8rXSCpH3M4AbazxD8fZKbdORawIDAQABo4GnMIGkMB0GA1UdDgQWBBT6zEpf | ||
| DYbYCI3Bu82+Q5SmI+/7ojB1BgNVHSMEbjBsgBT6zEpfDYbYCI3Bu82+Q5SmI+/7 | ||
| oqFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV | ||
| BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAJgQuE9T48+gMAwGA1UdEwQF | ||
| MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGLs1NcYNtUgN6FuMb6/UskEWLTKwfno | ||
| NBtNdIbcZP3HmJHwruLWCeqj6HIWJC87EqmPTIYPdem3SAN1L20fWpzm7AB7av+2 | ||
| wTCAPVP0punF/IouSb6fyo8fdG1a104Mge4iy/Sf2uf09NEv08sfVdB4P0tKRRlg | ||
| 5KChhmspdPP7fmPXyghm4IC0Seknmh6IlVOnALXLU5OoCLHTie5Hjv4Tm8Xu0oBA | ||
| dIH/cPu2/w5SAIVq9CtcsdglS0ZsCAv4W2YieuSLPf5xuI0q/5lFZGNoDpIWJldx | ||
| Y2IpnoNCrHEAxijP5ctPawsxkSt2PmQ5uNNL7TbMudc3hZzOpTPkGoo= | ||
| -----END CERTIFICATE----- | ||
| " > localhost.crt | ||
|
|
||
| echo "-----BEGIN RSA PRIVATE KEY----- | ||
| MIIEpQIBAAKCAQEA1OsuQ71qaSZ4ivGnh4YryeQEHMn5wZLX7kWYB637ssyOJnkU | ||
| 1ZGs93JMXJADzsjmssP6icSDhV2JPgDDYzx1eBJt6y3vHI7L3AdGfQJj+4FFABKR | ||
| 8moqpc1JWIMGnPzO6DeEc8irf0qxSh+yvuFX0j6oS8oCqiRxz5+HL2wEGWmrgr37 | ||
| JY4/bs7o4CMY19Ru1dP2Fr292HEIqCEnLTOuaHSWAEWx1Tm93kT9sXbw/SG2JTLQ | ||
| SX80biFL7foJeoGWLls2reTCYTprzWFaMu3x9I8HLtf4VIN44rtvo5N20KYgjGqv | ||
| PjFGPljLyrgB8rXSCpH3M4AbazxD8fZKbdORawIDAQABAoIBAQCYOINc/qCDCHQJ | ||
| sfa511ya/B9MjcG3eMpTmQG2C9b033WJX+tbPMjSJ68cRgHS5qK4j5AgypPU1yh1 | ||
| YYpO+jxpWZOoHbDjU9u/NJxaZ0kf2C2CfcRF8U0IOJoFY7doqP0r2/Uf6glh+f6C | ||
| JeNewDBPKWictpHtHh0X+M9nQew0VZ7slXnV+IwUxiWYEtiIjwMyzSmfDEnN3ix5 | ||
| fuVQLvVaq+bbqXj2rMpJWFj7zMsG5HRePQl2kQGtMYLCIalnJIQs5jQn2YsliNyy | ||
| fQiwWnU0wkrLlmkhlivlISRDtP35WQgF8ObsoQ3LZXRflB0C7U7zEl7Dj3Vi7WXr | ||
| jsRZC4dxAoGBAPwuPdtc9gSNKjn8RnqfEJjdSo1qdLbGvRcSJNy4/kEEFECJXkeO | ||
| mV/aklCi39cxAaIjVdTQ1XN67RMxgdekCI2Eg8h4RdvwgB/tAO+C3ExzMSOA1IcZ | ||
| tWuwIA2YnaFF9Sla9iJqxgtoGlaqm4VTUM/IdZqlzsP08pfNq7bXPsr9AoGBANgk | ||
| tkovf1Y0O4lBHX3eVLnHXForxEZh8bGHwuJJWWzb0ZFcXrrSd8FSycZrR28v4sdQ | ||
| WSSVPz3Op95HoTVXVL9EJcZ+MTnHaoCHbYBkrGTlGviu5Fl2V5EbrN7R7CdxJeem | ||
| HOU4shTy1acMPgf8sT17ykkXhVeUhSK2Jg6fZn6HAoGAI4/51SeE4htuKwMyhTRN | ||
| SOFcFBlBIE1ieRBr9lx4Ln7+xCMbEog/hM7z9z8gxd35Vv4YqoxQrZpWOHCw2NIf | ||
| CqX3V5vubhe6WcY4bY5MttM/yLvwPKUZeng57PDqucV9zzkuoKfiCdXCcRpaGDEp | ||
| okOooghj4ip204WDg6NTDZkCgYEAwZTfzsGLgmF1kRBIoZqmt1zeUcQxHfhKx32Y | ||
| BaM7/EtD/rSEAz7NEtBa9uLOL77rlSdZL3KcGXck0efFckitFkCqtIQBAoaf1E12 | ||
| vS9tV0/6QBAjZByhgM0Qnt/Uad7k2/vilUmZ9TkoMVy9kdm3xCFCowP14OKb+uK4 | ||
| YxBQc7ECgYEAm7eVtNlPHYmC54FU2bLucryNMLmu9I8O6zvbK5sxiMdtlh7OjaUB | ||
| RQS5iVc0iTacDZTGh7eqNzgGplj76pWGHeZUy0xIj/ZIRu2qOy0v+ffqfX1wCz7p | ||
| A22D22wvfs7CE3cUz/8UnvLM3kbTTu1WbbBbrHjAV47sAHjW/ckTqeo= | ||
| -----END RSA PRIVATE KEY----- | ||
| " > localhost.key | ||
|
|
||
| envsubst </cdn.json >cdn.conf | ||
| mv /database.json ./database.conf | ||
|
|
||
| ./traffic_ops_golang --cfg ./cdn.conf --dbcfg ./database.conf >out.log 2>err.log & | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should stdout and stderr go to the same file so we have context for errors and warnings? Errors will still be pretty easy to find by searching for
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. stdout won't contain anything too helpful, I pretty much just do that to avoid writing to closed file descriptors, just in case. info, event, and debug logging is piped to |
||
|
|
||
| if [ -z "$INPUT_VERSION" ]; then | ||
| INPUT_VERSION="3"; | ||
| fi | ||
|
|
||
| cd "../testing/api/v$INPUT_VERSION" | ||
|
|
||
| cp /traffic-ops-test.json ./traffic-ops-test.conf | ||
| /usr/local/go/bin/go test -v --cfg ./traffic-ops-test.conf | ||
| CODE="$?" | ||
| rm traffic-ops-test.conf | ||
|
|
||
| # TODO - make these build artifacts | ||
| if [ -f ../../../traffic_ops_golang/out.log ]; then | ||
| cat ../../../traffic_ops_golang/out.log | ||
| rm ../.../../traffic_ops_golang/out.log | ||
| fi | ||
|
|
||
| if [ -f ../../../traffic_ops_golang/err.log ]; then | ||
| cat ../../../traffic_ops_golang/err.log >&2 | ||
| rm ../../../traffic_ops_golang/err.log | ||
| fi | ||
|
|
||
| exit "$CODE" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| { | ||
| "default": { | ||
| "logLocations": { | ||
| "debug": "stderr", | ||
| "error": "stderr", | ||
| "event": "stderr", | ||
| "info": "stderr", | ||
| "warning": "stderr" | ||
| }, | ||
| "session": { | ||
| "timeoutInSecs": 60 | ||
| } | ||
| }, | ||
| "trafficOps": { | ||
| "URL": "https://localhost:6443", | ||
| "password": "twelve", | ||
| "users": { | ||
| "disallowed": "disallowed", | ||
| "operations": "operations", | ||
| "admin": "admin", | ||
| "federation": "federation", | ||
| "portal": "portal", | ||
| "readOnly": "readOnly", | ||
| "extension": "extension" | ||
| } | ||
| }, | ||
| "trafficOpsDB": { | ||
| "dbname": "traffic_ops", | ||
| "description": "Test database to_test", | ||
| "hostname": "postgres", | ||
| "password": "twelve", | ||
| "port": "5432", | ||
| "type": "Pg", | ||
| "user": "traffic_ops" | ||
| }, | ||
| "noPerl": true, | ||
| "noISO": true | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
| # distributed with this work for additional information | ||
| # regarding copyright ownership. The ASF licenses this file | ||
| # to you under the Apache License, Version 2.0 (the | ||
| # "License"); you may not use this file except in compliance | ||
| # with the License. You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, | ||
| # software distributed under the License is distributed on an | ||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. | ||
|
|
||
| FROM golang:1.14.2-alpine | ||
|
|
||
| RUN apk add --no-cache git gcc gettext postgresql-client musl-dev &&\ | ||
| go get -v bitbucket.org/liamstask/goose/cmd/goose &&\ | ||
| mv $GOPATH/bin/goose /bin/ &&\ | ||
| apk del git gcc musl-dev | ||
|
|
||
|
|
||
| COPY entrypoint.sh dbconf.yml / | ||
| RUN chmod a+x /entrypoint.sh | ||
|
|
||
| ENTRYPOINT /entrypoint.sh |
Uh oh!
There was an error while loading. Please reload this page.