RmrSendToXapp modified to use policyTypeId as subid - needed for a1/xapp communicatio...
[ric-plt/a1.git] / integration_tests / test_a1.tavern.yaml
index 4c1dea6..4657fcc 100644 (file)
@@ -28,7 +28,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   - name: instance list 404
     request:
@@ -92,7 +92,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: [6660666]
+      json: [6660666]
 
   - name: instance list 200 but empty
     request:
@@ -100,7 +100,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   - name: test the admission control policy get not there yet
     request:
@@ -165,24 +165,24 @@ stages:
       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
       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:
@@ -190,7 +190,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body:
+      json:
         - admission_control_policy
 
   # DELETE the instance and make sure subsequent GETs return properly
@@ -204,15 +204,17 @@ stages:
 
   - 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
       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:
@@ -220,7 +222,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   - name: cant get instance status
     request:
@@ -263,7 +265,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
 
 ---
@@ -285,7 +287,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   - name: instance list 404
     request:
@@ -320,7 +322,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body:
+      json:
         name: test policy
         description: just for testing
         policy_type_id: 20001
@@ -340,7 +342,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body:
+      json:
        - 20001
 
   - name: instance list 200 but empty
@@ -349,7 +351,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   - name: test the delay policy instance get not there yet
     request:
@@ -391,9 +393,10 @@ stages:
       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:
@@ -401,7 +404,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body:
+      json:
         test: foo
 
   - name: instance list 200 and there
@@ -410,7 +413,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body:
+      json:
        - delaytest
 
   - name: test the delay status get
@@ -421,9 +424,10 @@ stages:
       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
@@ -439,9 +443,11 @@ stages:
       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
@@ -450,9 +456,11 @@ stages:
       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
@@ -464,6 +472,112 @@ stages:
 
 ---
 
+test_name: test query
+
+stages:
+  - name: type not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001
+      method: GET
+    response:
+      status_code: 404
+
+  - name: put the type
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001
+      method: PUT
+      json:
+        name: query test
+        description: test
+        policy_type_id: 1006001
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+          additionalProperties: false
+          properties:
+            foo:
+              type: string
+          required:
+            - foo
+    response:
+      status_code: 201
+
+  - name: type there now
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001
+      method: GET
+    response:
+      status_code: 200
+
+  - name: instance list 200 but empty
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies
+      method: GET
+    response:
+      status_code: 200
+      json: []
+
+  - name: instance 1
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt1
+      method: PUT
+      json:
+        foo: "bar1"
+      headers:
+        content-type: application/json
+    response:
+      status_code: 202
+
+  - name: instance 2
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt2
+      method: PUT
+      json:
+        foo: "bar2"
+      headers:
+        content-type: application/json
+    response:
+      status_code: 202
+
+  - name: instance list
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies
+      method: GET
+    response:
+      status_code: 200
+      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: 100
+    delay_before: 1
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt1/status
+      method: GET
+    response:
+      status_code: 200
+      json:
+        instance_status: "IN EFFECT"
+        has_been_deleted: False
+        created_at: !anyfloat
+
+  - name: test the query status get 2
+    max_retries: 100
+    delay_before: 1
+    request:
+      url: http://localhost:10000/a1-p/policytypes/1006001/policies/qt2/status
+      method: GET
+    response:
+      status_code: 200
+      json:
+        instance_status: "IN EFFECT"
+        has_been_deleted: False
+        created_at: !anyfloat
+
+---
+
 test_name: test bad routing file endpoint
 
 stages:
@@ -503,7 +617,7 @@ stages:
       method: GET
     response:
       status_code: 200
-      body: []
+      json: []
 
   # this one cant currently be deleted, see the comment in a1/data.py
 
@@ -554,5 +668,3 @@ stages:
           type: object
     response:
       status_code: 400
-
-