From 36380b8c5ac36ec2ec0726972da3a9e52269beed Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 19 Nov 2020 11:20:25 -0800 Subject: [PATCH 1/5] adding body back to response --- sdk/armcore/poller.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/armcore/poller.go b/sdk/armcore/poller.go index e949a28ad45f..19aff31e6a52 100644 --- a/sdk/armcore/poller.go +++ b/sdk/armcore/poller.go @@ -6,6 +6,7 @@ package armcore import ( + "bytes" "context" "encoding/json" "errors" @@ -452,6 +453,8 @@ func (pt *pollingTrackerBase) updateRawBody() error { pt.Err = err return pt.Err } + // put the body back so it's available to other callers + pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) // observed in 204 responses over HTTP/2.0; the content length is -1 but body is empty if len(b) == 0 { return nil From f0200bb29cdef028a6597e6da8f27dd8fb58bfd2 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 19 Nov 2020 16:37:29 -0800 Subject: [PATCH 2/5] Adding azcore dependant seek for body --- sdk/armcore/poller.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sdk/armcore/poller.go b/sdk/armcore/poller.go index 19aff31e6a52..89d61d900cd8 100644 --- a/sdk/armcore/poller.go +++ b/sdk/armcore/poller.go @@ -11,6 +11,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "io/ioutil" "net/http" "net/url" @@ -453,8 +454,16 @@ func (pt *pollingTrackerBase) updateRawBody() error { pt.Err = err return pt.Err } - // put the body back so it's available to other callers - pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) + // seek back to the beginning of the body or reassign the information to the body + if seeker, ok := pt.resp.Body.(io.Seeker); ok { + _, err = seeker.Seek(0, io.SeekStart) + if err != nil { + return err + } + } else { + // put the body back so it's available to other callers + pt.resp.Body = ioutil.NopCloser(bytes.NewReader(b)) + } // observed in 204 responses over HTTP/2.0; the content length is -1 but body is empty if len(b) == 0 { return nil From 7be22580272d39492f6ba7975c2d4f1c57ce4ef7 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 20 Nov 2020 09:30:37 -0800 Subject: [PATCH 3/5] updating azcore version --- sdk/armcore/go.mod | 2 +- sdk/armcore/go.sum | 4 ++-- sdk/azcore/version.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/armcore/go.mod b/sdk/armcore/go.mod index 7adec215b8ea..e8d8be27cd05 100644 --- a/sdk/armcore/go.mod +++ b/sdk/armcore/go.mod @@ -3,6 +3,6 @@ module github.com/Azure/azure-sdk-for-go/sdk/armcore go 1.14 require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.1 + github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.3 github.com/Azure/azure-sdk-for-go/sdk/internal v0.5.0 ) diff --git a/sdk/armcore/go.sum b/sdk/armcore/go.sum index b5996503702d..9fadc49ed287 100644 --- a/sdk/armcore/go.sum +++ b/sdk/armcore/go.sum @@ -1,5 +1,5 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.1 h1:YLBIWApuKB/RS0dK/mk/2g6x2+kjI9djMKqViZDTD88= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.1/go.mod h1:pElNP+u99BvCZD+0jOlhI9OC/NB2IDTOTGZOZH0Qhq8= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.3 h1:Q/fMaKaJfKuwlQNELa2ttHS3zzn0KXf43HmrvAYRxMY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.13.3/go.mod h1:pElNP+u99BvCZD+0jOlhI9OC/NB2IDTOTGZOZH0Qhq8= github.com/Azure/azure-sdk-for-go/sdk/internal v0.5.0 h1:HG1ggl8L3ZkV/Ydanf7lKr5kkhhPGCpWdnr1J6v7cO4= github.com/Azure/azure-sdk-for-go/sdk/internal v0.5.0/go.mod h1:k4KbFSunV/+0hOHL1vyFaPsiYQ1Vmvy1TBpmtvCDLZM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/sdk/azcore/version.go b/sdk/azcore/version.go index 2697820f83d2..5f138d28ba05 100644 --- a/sdk/azcore/version.go +++ b/sdk/azcore/version.go @@ -10,5 +10,5 @@ const ( UserAgent = "azcore/" + Version // Version is the semantic version (see http://semver.org) of the pipeline package. - Version = "0.13.0" + Version = "0.13.3" ) From 39dc7c7ce062212ec5e23322063cc06e21413fd4 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 20 Nov 2020 10:24:48 -0800 Subject: [PATCH 4/5] undo azcore version.go change --- sdk/azcore/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/azcore/version.go b/sdk/azcore/version.go index 5f138d28ba05..2697820f83d2 100644 --- a/sdk/azcore/version.go +++ b/sdk/azcore/version.go @@ -10,5 +10,5 @@ const ( UserAgent = "azcore/" + Version // Version is the semantic version (see http://semver.org) of the pipeline package. - Version = "0.13.3" + Version = "0.13.0" ) From 0ae8313741af6405effd56b85a238b4d51623387 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 20 Nov 2020 10:39:05 -0800 Subject: [PATCH 5/5] assign Seek error to poller --- sdk/armcore/poller.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/armcore/poller.go b/sdk/armcore/poller.go index 89d61d900cd8..d3870314182a 100644 --- a/sdk/armcore/poller.go +++ b/sdk/armcore/poller.go @@ -458,7 +458,8 @@ func (pt *pollingTrackerBase) updateRawBody() error { if seeker, ok := pt.resp.Body.(io.Seeker); ok { _, err = seeker.Seek(0, io.SeekStart) if err != nil { - return err + pt.Err = err + return pt.Err } } else { // put the body back so it's available to other callers