aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go')
-rw-r--r--vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go b/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go
new file mode 100644
index 000000000..a75c7d1d2
--- /dev/null
+++ b/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zc_policy_unique_request_id.go
@@ -0,0 +1,24 @@
+package azblob
+
+import (
+ "context"
+
+ "github.com/Azure/azure-pipeline-go/pipeline"
+)
+
+// NewUniqueRequestIDPolicyFactory creates a UniqueRequestIDPolicyFactory object
+// that sets the request's x-ms-client-request-id header if it doesn't already exist.
+func NewUniqueRequestIDPolicyFactory() pipeline.Factory {
+ return pipeline.FactoryFunc(func(next pipeline.Policy, po *pipeline.PolicyOptions) pipeline.PolicyFunc {
+ // This is Policy's Do method:
+ return func(ctx context.Context, request pipeline.Request) (pipeline.Response, error) {
+ id := request.Header.Get(xMsClientRequestID)
+ if id == "" { // Add a unique request ID if the caller didn't specify one already
+ request.Header.Set(xMsClientRequestID, newUUID().String())
+ }
+ return next.Do(ctx, request)
+ }
+ })
+}
+
+const xMsClientRequestID = "x-ms-client-request-id"