stages:
- name: test the a1 healthcheck
request:
- url: http://localhost:10000/a1-p/healthcheck
+ url: http://localhost:10000/A1-P/v2/healthcheck
method: GET
response:
status_code: 200
stages:
- name: type not there yet
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: GET
response:
status_code: 404
- name: type list empty
request:
- url: http://localhost:10000/a1-p/policytypes
+ url: http://localhost:10000/A1-P/v2/policytypes
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: instance list 404
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies
method: GET
response:
status_code: 404
- name: put the type
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: PUT
json:
name: Admission Control
- name: type there now
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: GET
response:
status_code: 200
- name: now in type list
request:
- url: http://localhost:10000/a1-p/policytypes
+ url: http://localhost:10000/A1-P/v2/policytypes
method: GET
response:
status_code: 200
- body: [6660666]
+ json: [6660666]
- name: instance list 200 but empty
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: test the admission control policy get not there yet
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/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/6660666/policies/admission_control_policy/status
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 404
- name: bad body for admission control policy
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: PUT
json:
not: "expected"
- name: not a json
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: PUT
data: "asdf"
response:
# put it properly
- name: put the admission control policy instance
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: PUT
json:
class: 12
- name: cant delete type with instances
delay_before: 3 # wait for the type acks to come back first
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: DELETE
response:
status_code: 400
- name: test the admission control policy get
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: GET
response:
status_code: 200
- body:
+ json:
class: 12
enforce: true
window_length: 20
blocking_rate: 20
trigger_threshold: 10
-
- name: test the admission control policy status get
- delay_before: 3 # give it a few seconds for rmr
+ delay_before: 10 # give it a few seconds for rmr
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy/status
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "IN EFFECT"
has_been_deleted: False
+ created_at: !anyfloat
- name: instance list 200 and contains the instance
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies
method: GET
response:
status_code: 200
- body:
+ json:
- admission_control_policy
# DELETE the instance and make sure subsequent GETs return properly
- name: delete the instance
delay_after: 4
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: DELETE
response:
status_code: 202
- name: status should now be not in effect but still there
delay_before: 3 # give it a few seconds for rmr
- delay_after: 8 # 3 + 11 > 10; that is, wait until t2 expires
+ delay_after: 10 # 3 + 10 > 10; that is, wait until t2 expires
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy/status
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "NOT IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: instance list 200 but no instance
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: cant get instance status
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy/status
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy/status
method: GET
response:
status_code: 404
- name: cant get instance
request:
- url: http://localhost:10000/a1-p/policytypes/6660666/policies/admission_control_policy
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666/policies/admission_control_policy
method: GET
response:
status_code: 404
- name: delete ac type
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: DELETE
response:
status_code: 204
- name: cant delete again
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: DELETE
response:
status_code: 404
- name: cant get
request:
- url: http://localhost:10000/a1-p/policytypes/6660666
+ url: http://localhost:10000/A1-P/v2/policytypes/6660666
method: DELETE
response:
status_code: 404
- name: empty type list
request:
- url: http://localhost:10000/a1-p/policytypes
+ url: http://localhost:10000/A1-P/v2/policytypes
method: GET
response:
status_code: 200
- body: []
+ json: []
---
- name: test the delay policy type not there yet
request:
- url: http://localhost:10000/a1-p/policytypes/20001
+ url: http://localhost:10000/A1-P/v2/policytypes/20001
method: GET
response:
status_code: 404
- name: not yet in type list
request:
- url: http://localhost:10000/a1-p/policytypes
+ url: http://localhost:10000/A1-P/v2/policytypes
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: instance list 404
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies
method: GET
response:
status_code: 404
- name: put the type
request:
- url: http://localhost:10000/a1-p/policytypes/20001
+ url: http://localhost:10000/A1-P/v2/policytypes/20001
method: PUT
json:
name: test policy
- name: type there now
request:
- url: http://localhost:10000/a1-p/policytypes/20001
+ url: http://localhost:10000/A1-P/v2/policytypes/20001
method: GET
response:
status_code: 200
- body:
+ json:
name: test policy
description: just for testing
policy_type_id: 20001
- name: now in type list
request:
- url: http://localhost:10000/a1-p/policytypes
+ url: http://localhost:10000/A1-P/v2/policytypes
method: GET
response:
status_code: 200
- body:
+ json:
- 20001
- name: instance list 200 but empty
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: test the delay policy instance get not there yet
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+ url: http://localhost:10000/A1-P/v2/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
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 404
- name: bad body for delaytest
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest
method: PUT
json:
not: "welcome"
- name: create delay policy instance
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest
method: PUT
json:
test: foo
- name: test the delay status get, not in effect yet
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "NOT IN EFFECT"
has_been_deleted: False
+ created_at: !anyfloat
- name: test the delay policy get
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest
method: GET
response:
status_code: 200
- body:
+ json:
test: foo
- name: instance list 200 and there
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies
method: GET
response:
status_code: 200
- body:
+ json:
- delaytest
- name: test the delay status get
max_retries: 3
delay_before: 6 # 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
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "IN EFFECT"
has_been_deleted: False
+ created_at: !anyfloat
# DELETE the instance and make sure subsequent GETs return properly
- name: delete the instance
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest
method: DELETE
response:
status_code: 202
- name: test the delay status get immediately
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: test the delay status get after delay but before timers
delay_before: 7
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "NOT IN EFFECT"
has_been_deleted: True
+ deleted_at: !anyfloat
+ created_at: !anyfloat
- name: test the delay status get after delay and after the timers
delay_before: 7
request:
- url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+ url: http://localhost:10000/A1-P/v2/policytypes/20001/policies/delaytest/status
method: GET
response:
status_code: 404
stages:
- name: type not there yet
request:
- url: http://localhost:10000/a1-p/policytypes/1006001
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001
method: GET
response:
status_code: 404
- name: put the type
request:
- url: http://localhost:10000/a1-p/policytypes/1006001
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001
method: PUT
json:
name: query test
- name: type there now
request:
- url: http://localhost:10000/a1-p/policytypes/1006001
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001
method: GET
response:
status_code: 200
- name: instance list 200 but empty
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies
method: GET
response:
status_code: 200
- body: []
+ json: []
- name: instance 1
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt1
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies/qt1
method: PUT
json:
foo: "bar1"
- name: instance 2
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt2
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies/qt2
method: PUT
json:
foo: "bar2"
- name: instance list
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies
method: GET
response:
status_code: 200
- body: [qt1, qt2]
+ json: [qt1, qt2]
# after the query, a1 should send, query receiver should send back, and the policy should be in effect
-
+ # sometimes in kubernetes, this test takes a long time to work because of an k8s issue
+ # empirically we find that the si95 rmr finally "detects" failure after about 75 seconds, retries, and then works.
- name: test the query status get
- max_retries: 3
- delay_before: 6 # give it a few seconds for rmr ; delay reciever sleeps for 5 seconds by default
+ max_retries: 100
+ delay_before: 1
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt1/status
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies/qt1/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "IN EFFECT"
has_been_deleted: False
+ created_at: !anyfloat
- name: test the query status get 2
- max_retries: 3
- delay_before: 6 # give it a few seconds for rmr ; delay reciever sleeps for 5 seconds by default
+ max_retries: 100
+ delay_before: 1
request:
- url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt2/status
+ url: http://localhost:10000/A1-P/v2/policytypes/1006001/policies/qt2/status
method: GET
response:
status_code: 200
- body:
+ json:
instance_status: "IN EFFECT"
has_been_deleted: False
+ created_at: !anyfloat
---
- name: put the type
request:
- url: http://localhost:10000/a1-p/policytypes/20002
+ url: http://localhost:10000/A1-P/v2/policytypes/20002
method: PUT
json:
name: test policy
- name: create policy instance that will go to a broken routing endpoint
request:
- url: http://localhost:10000/a1-p/policytypes/20002/policies/brokentest
+ url: http://localhost:10000/A1-P/v2/policytypes/20002/policies/brokentest
method: PUT
json:
test: foo
- name: should be no status
request:
- url: http://localhost:10000/a1-p/policytypes/20002/policies/brokentest/status
+ url: http://localhost:10000/A1-P/v2/policytypes/20002/policies/brokentest/status
method: GET
response:
status_code: 200
- body: []
+ json: []
# this one cant currently be deleted, see the comment in a1/data.py
- name: bad type get
request:
- url: http://localhost:10000/a1-p/policytypes/20666
+ url: http://localhost:10000/A1-P/v2/policytypes/20666
method: GET
response:
status_code: 404
- name: bad instance get bad type
request:
- url: http://localhost:10000/a1-p/policytypes/20666/policies/nonono
+ url: http://localhost:10000/A1-P/v2/policytypes/20666/policies/nonono
method: GET
response:
status_code: 404
- name: bad int range 1
request:
- url: http://localhost:10000/a1-p/policytypes/0
+ url: http://localhost:10000/A1-P/v2/policytypes/0
method: PUT
json:
name: test policy
- name: bad int range 2
request:
- url: http://localhost:10000/a1-p/policytypes/2147483648
+ url: http://localhost:10000/A1-P/v2/policytypes/2147483648
method: PUT
json:
name: test policy