GBP: redirect contracts
[vpp.git] / test / vpp_papi_provider.py
index 9f7968b..8ed870e 100644 (file)
@@ -78,14 +78,23 @@ class VppPapiProvider(object):
     def __enter__(self):
         return self
 
-    def expect_negative_api_retval(self):
-        """ Expect API failure """
+    def assert_negative_api_retval(self):
+        """ Expect API failure - used with with, e.g.:
+            with self.vapi.assert_negative_api_retval():
+                self.vapi.<api call expected to fail>
+        """
         self._expect_stack.append(self._expect_api_retval)
         self._expect_api_retval = self._negative
         return self
 
-    def expect_zero_api_retval(self):
-        """ Expect API success """
+    def assert_zero_api_retval(self):
+        """ Expect API success - used with with, e.g.:
+            with self.vapi.assert_negative_api_retval():
+                self.vapi.<api call expected to succeed>
+
+            note: this is useful only inside another with block
+                  as success is the default expected value
+        """
         self._expect_stack.append(self._expect_api_retval)
         self._expect_api_retval = self._zero
         return self
@@ -3443,6 +3452,13 @@ class VppPapiProvider(object):
              'show_instance': show_instance
              })
 
+    def ipsec_select_backend(self, protocol, index):
+        return self.api(self.papi.ipsec_select_backend,
+                        {'protocol': protocol, 'index': index})
+
+    def ipsec_backend_dump(self):
+        return self.api(self.papi.ipsec_backend_dump, {})
+
     def app_namespace_add(self,
                           namespace_id,
                           ip4_fib_id=0,
@@ -3615,14 +3631,16 @@ class VppPapiProvider(object):
         """ GBP Subnet Dump """
         return self.api(self.papi.gbp_subnet_dump, {})
 
-    def gbp_contract_add_del(self, is_add, src_epg, dst_epg, acl_index):
+    def gbp_contract_add_del(self, is_add, src_epg, dst_epg, acl_index, rules):
         """ GBP contract Add/Del """
         return self.api(self.papi.gbp_contract_add_del,
                         {'is_add': is_add,
                          'contract': {
                              'acl_index': acl_index,
                              'src_epg': src_epg,
-                             'dst_epg': dst_epg}})
+                             'dst_epg': dst_epg,
+                             'n_rules': len(rules),
+                             'rules': rules}})
 
     def gbp_contract_dump(self):
         """ GBP contract Dump """