diff --git a/go.mod b/go.mod index 2a45cc8..5e062f0 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/zeropsio/zcli go 1.24 -require github.com/zeropsio/zerops-go v1.0.16 +require github.com/zeropsio/zerops-go v1.0.18 require ( github.com/charmbracelet/bubbles v0.20.0 diff --git a/go.sum b/go.sum index 74b3e23..cfcf4fc 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSW github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zeropsio/zerops-go v1.0.16 h1:9k/rdkMxbmBWHea2jENlSLLUXgJevjjoveqxz3y4qto= -github.com/zeropsio/zerops-go v1.0.16/go.mod h1:SY4o+4jAIrsDTwWACooogf1OyY1jNK8NqWBe9KFcjAA= +github.com/zeropsio/zerops-go v1.0.18 h1:UZMbyfg1ZEgLmDeBTTvyfH5v02juf6TMjAL0ZoTWGgA= +github.com/zeropsio/zerops-go v1.0.18/go.mod h1:SY4o+4jAIrsDTwWACooogf1OyY1jNK8NqWBe9KFcjAA= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/src/cmd/serviceDeploy.go b/src/cmd/serviceDeploy.go index 87c3fd3..0907235 100644 --- a/src/cmd/serviceDeploy.go +++ b/src/cmd/serviceDeploy.go @@ -151,7 +151,7 @@ func serviceDeployCmd() *cmdBuilder.Cmd { writer.CloseWithError(err) }() - if err := packageStream(ctx, cmdData.RestApiClient, appVersion.Id, finalReader); err != nil { + if err := packageStream(ctx, appVersion.UploadUrl, finalReader); err != nil { // if an error occurred while packing the app, return that error return err } diff --git a/src/cmd/servicePush.go b/src/cmd/servicePush.go index 5dc4d08..04f2b57 100644 --- a/src/cmd/servicePush.go +++ b/src/cmd/servicePush.go @@ -153,7 +153,7 @@ func servicePushCmd() *cmdBuilder.Cmd { defer wg.Done() // if an error occurred during upload, return it (it could be even auth error, before upload starts) - if err := packageStream(ctx, cmdData.RestApiClient, appVersion.Id, finalReader); err != nil { + if err := packageStream(ctx, appVersion.UploadUrl, finalReader); err != nil { _ = reader.CloseWithError(err) uploadErr = err // in case the reader is already closed with EOF, sometimes happened with timeouts } diff --git a/src/cmd/servicePushDeployShared.go b/src/cmd/servicePushDeployShared.go index 86010d8..fc0caa3 100644 --- a/src/cmd/servicePushDeployShared.go +++ b/src/cmd/servicePushDeployShared.go @@ -18,7 +18,6 @@ import ( "github.com/zeropsio/zerops-go/dto/output" "github.com/zeropsio/zerops-go/errorCode" "github.com/zeropsio/zerops-go/types" - "github.com/zeropsio/zerops-go/types/uuid" ) func createAppVersion( @@ -84,18 +83,22 @@ func openPackageFile(archiveFilePath string, workingDir string) (*os.File, error return file, nil } -func packageStream(ctx context.Context, restApiClient *zeropsRestApiClient.Handler, appVersionId uuid.AppVersionId, reader io.Reader) error { - // TODO(ms): content-type: application/octet-stream - upload, err := restApiClient.PutAppVersionUpload(ctx, path.AppVersionId{Id: appVersionId}, reader) +func packageStream(ctx context.Context, tempUrl types.String, reader io.Reader) error { + req, err := http.NewRequestWithContext(ctx, http.MethodPut, tempUrl.Native(), reader) if err != nil { - return err + return errors.Errorf("failed to create upload HTTP request: PUT %s => %v", tempUrl, err) } - if _, err := upload.Output(); err != nil { - return err + + resp, err := http.DefaultClient.Do(req) + if err != nil { + return errors.Errorf("failed to upload HTTP request: %v", err) } - if upload.StatusCode() != http.StatusOK { + defer resp.Body.Close() + + if resp.StatusCode >= http.StatusMultipleChoices { return errors.New(i18n.T(i18n.PushDeployUploadPackageFailed)) } + return nil }