response:
status_code: 200
-
---
-test_name: test delayed policy
+test_name: test admission control
stages:
- - name: test the delayed policy
+ - 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/policies/test_policy
+ 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:
- ACK_FROM: DELAYED_TEST
- status: SUCCESS
+ - admission_control_policy
+
---
-test_name: test admission control
+test_name: test the delay receiver
stages:
- - name: test the admission control policy
+
+ - 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/policies/admission_control_policy
+ 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:
- enforce: true
- window_length: 10
- blocking_rate: 20
- trigger_threshold: 10
+ 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:
- ACK_FROM: ADMISSION_CONTROL
- status: SUCCESS
+ test: foo
- - name: test the admission control policy get
+ - 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/policies/admission_control_policy
+ url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 200
body:
- mock return from FETCH: pretend policy is here
+ - 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: bad_requests
+test_name: test bad routing file endpoint
stages:
- - name: does not exist
+
+ - name: put the type
request:
- url: http://localhost:10000/a1-p/policies/darkness
+ 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/policies/admission_control_policy
+ url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
method: PUT
json:
not: "expected"
- name: not a json
request:
- url: http://localhost:10000/a1-p/policies/admission_control_policy
+ url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
method: PUT
data: "asdf"
response:
status_code: 415
- - name: bad body for test policy
+ - name: bad body for delaytest
request:
- url: http://localhost:10000/a1-p/policies/test_policy
+ url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
method: PUT
json:
not: "welcome"
response:
status_code: 400
-
- - name: test policy doesnt support fetch
- request:
- url: http://localhost:10000/a1-p/policies/test_policy
- method: GET
- response:
- status_code: 400