Verify request ID in all manila responses

All requests to manila API must return
a request ID in the response headers.

This change adds validation to ensure
no new APIs are added that invalidate this
criterion.

Change-Id: If9b033109a653913b62ce9588011d2d7f00e0519
Partial-Bug: #1815532
diff --git a/manila_tempest_tests/services/share/v2/json/shares_client.py b/manila_tempest_tests/services/share/v2/json/shares_client.py
index e0eec7c..5395061 100644
--- a/manila_tempest_tests/services/share/v2/json/shares_client.py
+++ b/manila_tempest_tests/services/share/v2/json/shares_client.py
@@ -55,25 +55,38 @@
             new_headers = headers
         return new_headers
 
+    def verify_request_id(self, response):
+        response_headers = [r.lower() for r in response.keys()]
+        assert_msg = ("Response is missing request ID. Response "
+                      "headers are: %s") % response
+        assert 'x-compute-request-id' in response_headers, assert_msg
+
     # Overwrite all http verb calls to inject the micro version header
     def post(self, url, body, headers=None, extra_headers=False,
              version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).post(url, body, headers=headers)
+        resp, body = super(SharesV2Client, self).post(url, body,
+                                                      headers=headers)
+        self.verify_request_id(resp)
+        return resp, body
 
     def get(self, url, headers=None, extra_headers=False,
             version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).get(url, headers=headers)
+        resp, body = super(SharesV2Client, self).get(url, headers=headers)
+        self.verify_request_id(resp)
+        return resp, body
 
     def delete(self, url, headers=None, body=None, extra_headers=False,
                version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).delete(url, headers=headers,
-                                                  body=body)
+        resp, body = super(SharesV2Client, self).delete(url, headers=headers,
+                                                        body=body)
+        self.verify_request_id(resp)
+        return resp, body
 
     def patch(self, url, body, headers=None, extra_headers=False,
               version=LATEST_MICROVERSION):
@@ -85,19 +98,26 @@
             version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).put(url, body, headers=headers)
+        resp, body = super(SharesV2Client, self).put(url, body,
+                                                     headers=headers)
+        self.verify_request_id(resp)
+        return resp, body
 
     def head(self, url, headers=None, extra_headers=False,
              version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).head(url, headers=headers)
+        resp, body = super(SharesV2Client, self).head(url, headers=headers)
+        self.verify_request_id(resp)
+        return resp, body
 
     def copy(self, url, headers=None, extra_headers=False,
              version=LATEST_MICROVERSION):
         headers = self.inject_microversion_header(headers, version,
                                                   extra_headers=extra_headers)
-        return super(SharesV2Client, self).copy(url, headers=headers)
+        resp, body = super(SharesV2Client, self).copy(url, headers=headers)
+        self.verify_request_id(resp)
+        return resp, body
 
     def reset_state(self, s_id, status="error", s_type="shares",
                     headers=None, version=LATEST_MICROVERSION,