# test_a1.tavern.yaml test_name: test healthcheck stages: - name: test the a1 healthcheck request: url: http://localhost:10000/a1-p/healthcheck method: GET response: status_code: 200 --- test_name: test admission control stages: - name: type not there yet request: url: http://localhost:10000/a1-p/policytypes/20000 method: GET response: status_code: 404 - name: type list empty request: url: http://localhost:10000/a1-p/policytypes method: GET response: status_code: 200 body: [] - name: instance list 404 request: url: http://localhost:10000/a1-p/policytypes/20000/policies method: GET response: status_code: 404 - name: put the type request: url: http://localhost:10000/a1-p/policytypes/20000 method: PUT json: name: Admission Control description: various parameters to control admission of dual connection policy_type_id: 20000 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object properties: enforce: type: boolean default: true window_length: type: integer default: 1 minimum: 1 maximum: 60 description: Sliding window length (in minutes) blocking_rate: type: number default: 10 minimum: 1 maximum: 100 description: "% Connections to block" trigger_threshold: type: integer default: 10 minimum: 1 description: Minimum number of events in window to trigger blocking required: - enforce - blocking_rate - trigger_threshold - window_length additionalProperties: false - name: type there now request: url: http://localhost:10000/a1-p/policytypes/20000 method: GET response: status_code: 200 - name: now in type list request: url: http://localhost:10000/a1-p/policytypes method: GET response: status_code: 200 body: [20000] - name: instance list 200 but empty request: url: http://localhost:10000/a1-p/policytypes/20000/policies method: GET response: status_code: 200 body: [] - name: test the admission control policy get not there yet request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy method: GET response: status_code: 404 - name: test the admission control policy status get not there yet request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy/status method: GET response: status_code: 404 - name: put the admission control policy request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy method: PUT json: enforce: true window_length: 10 blocking_rate: 20 trigger_threshold: 10 headers: content-type: application/json response: status_code: 201 - name: test the admission control policy get request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy method: GET response: status_code: 200 body: enforce: true window_length: 10 blocking_rate: 20 trigger_threshold: 10 - name: test the admission control policy status get delay_before: 3 # give it a few seconds for rmr request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy/status method: GET response: status_code: 200 body: - handler_id: test_receiver status: OK - name: instance list 200 and contains the instance request: url: http://localhost:10000/a1-p/policytypes/20000/policies method: GET response: status_code: 200 body: - admission_control_policy --- test_name: test the delay receiver stages: - name: test the delay policy type not there yet request: url: http://localhost:10000/a1-p/policytypes/20001 method: GET response: status_code: 404 - name: not yet in type list request: url: http://localhost:10000/a1-p/policytypes method: GET response: status_code: 200 body: [20000] - name: instance list 404 request: url: http://localhost:10000/a1-p/policytypes/20001/policies method: GET response: status_code: 404 - name: put the type request: url: http://localhost:10000/a1-p/policytypes/20001 method: PUT json: name: test policy description: just for testing policy_type_id: 20001 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object properties: test: type: string required: - test additionalProperties: false - name: type there now request: url: http://localhost:10000/a1-p/policytypes/20001 method: GET response: status_code: 200 body: name: test policy description: just for testing policy_type_id: 20001 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object properties: test: type: string required: - test additionalProperties: false - name: now in type list request: url: http://localhost:10000/a1-p/policytypes method: GET response: status_code: 200 body: - 20000 - 20001 - name: instance list 200 but empty request: url: http://localhost:10000/a1-p/policytypes/20001/policies method: GET response: status_code: 200 body: [] - name: test the delay policy instance get not there yet request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest method: GET response: status_code: 404 - name: test the delay policy status get not there yet request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status method: GET response: status_code: 404 - name: create delay policy instance request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest method: PUT json: test: foo headers: content-type: application/json response: status_code: 201 - name: test the delay policy get request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest method: GET response: status_code: 200 body: test: foo - name: test the admission control policy status get max_retries: 3 delay_before: 5 # give it a few seconds for rmr ; delay reciever sleeps for 5 seconds by default request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status method: GET response: status_code: 200 body: - handler_id: delay_receiver status: OK - name: instance list 200 and there request: url: http://localhost:10000/a1-p/policytypes/20001/policies method: GET response: status_code: 200 body: - delaytest --- test_name: test bad routing file endpoint stages: - name: put the type request: url: http://localhost:10000/a1-p/policytypes/20002 method: PUT json: name: test policy description: just for testing policy_type_id: 20002 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object properties: test: type: string required: - test additionalProperties: false - name: create policy instance that will go to a broken routing endpoint request: url: http://localhost:10000/a1-p/policytypes/20002/policies/brokentest method: PUT json: test: foo headers: content-type: application/json response: status_code: 201 - name: should be no status delay_before: 5 # give it a few seconds for rmr ; delay reciever sleeps for 5 seconds by default request: url: http://localhost:10000/a1-p/policytypes/20002/policies/brokentest/status method: GET response: status_code: 200 body: [] --- test_name: bad_requests stages: - name: bad type get request: url: http://localhost:10000/a1-p/policytypes/20666 method: GET response: status_code: 404 - name: bad instance get request: url: http://localhost:10000/a1-p/policytypes/20000/policies/darkness method: GET response: status_code: 404 - name: bad int range 1 request: url: http://localhost:10000/a1-p/policytypes/19999 method: PUT json: name: test policy description: just for testing policy_type_id: 19999 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object response: status_code: 400 - name: bad int range 2 request: url: http://localhost:10000/a1-p/policytypes/21024 method: PUT json: name: test policy description: just for testing policy_type_id: 21024 create_schema: "$schema": http://json-schema.org/draft-07/schema# type: object response: status_code: 400 - name: bad body for admission control policy request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy method: PUT json: not: "expected" headers: content-type: application/json response: status_code: 400 - name: not a json request: url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy method: PUT data: "asdf" response: status_code: 415 - name: bad body for delaytest request: url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest method: PUT json: not: "welcome" response: status_code: 400