Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit360aa2f

Browse files
committed
feat: handle uploading data files in runner
1 parent83ef3a6 commit360aa2f

File tree

2 files changed

+134
-1
lines changed

2 files changed

+134
-1
lines changed

‎provisionerd/runner/runner.go

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,11 +717,13 @@ func (r *Runner) runTemplateImportProvisionWithRichParameters(
717717
}
718718
}()
719719

720+
varmoduleFilesUpload*sdkproto.DataBuilder
720721
for {
721722
msg,err:=r.session.Recv()
722723
iferr!=nil {
723724
returnnil,xerrors.Errorf("recv import provision: %w",err)
724725
}
726+
725727
switchmsgType:=msg.Type.(type) {
726728
case*sdkproto.Response_Log:
727729
r.logProvisionerJobLog(context.Background(),msgType.Log.Level,"template import provision job logged",
@@ -735,6 +737,30 @@ func (r *Runner) runTemplateImportProvisionWithRichParameters(
735737
Output:msgType.Log.Output,
736738
Stage:stage,
737739
})
740+
case*sdkproto.Response_DataUpload:
741+
c:=msgType.DataUpload
742+
ifc.UploadType!=sdkproto.DataUploadType_UPLOAD_TYPE_MODULE_FILES {
743+
returnnil,xerrors.Errorf("invalid data upload type: %q",c.UploadType)
744+
}
745+
746+
ifmoduleFilesUpload!=nil {
747+
returnnil,xerrors.New("multiple module data uploads received, only expect 1")
748+
}
749+
750+
moduleFilesUpload,err=sdkproto.NewDataBuilder(c)
751+
iferr!=nil {
752+
returnnil,xerrors.Errorf("create data builder: %w",err)
753+
}
754+
case*sdkproto.Response_ChunkPiece:
755+
c:=msgType.ChunkPiece
756+
ifmoduleFilesUpload==nil {
757+
returnnil,xerrors.New("received chunk piece before module files data upload")
758+
}
759+
760+
_,err:=moduleFilesUpload.Add(c)
761+
iferr!=nil {
762+
returnnil,xerrors.Errorf("module files, add chunk piece: %w",err)
763+
}
738764
case*sdkproto.Response_Plan:
739765
c:=msgType.Plan
740766
ifc.Error!="" {
@@ -745,19 +771,32 @@ func (r *Runner) runTemplateImportProvisionWithRichParameters(
745771
returnnil,xerrors.New(c.Error)
746772
}
747773

774+
ifmoduleFilesUpload!=nil&&len(c.ModuleFiles)>0 {
775+
returnnil,xerrors.New("module files were uploaded and module files were returned in the plan response. Only one of these should be set")
776+
}
777+
748778
r.logger.Info(context.Background(),"parse dry-run provision successful",
749779
slog.F("resource_count",len(c.Resources)),
750780
slog.F("resources",resourceNames(c.Resources)),
751781
)
752782

783+
moduleFilesData:=c.ModuleFiles
784+
ifmoduleFilesUpload!=nil {
785+
uploadData,err:=moduleFilesUpload.Complete()
786+
iferr!=nil {
787+
returnnil,xerrors.Errorf("module files, complete upload: %w",err)
788+
}
789+
moduleFilesData=uploadData
790+
}
791+
753792
return&templateImportProvision{
754793
Resources:c.Resources,
755794
Parameters:c.Parameters,
756795
ExternalAuthProviders:c.ExternalAuthProviders,
757796
Modules:c.Modules,
758797
Presets:c.Presets,
759798
Plan:c.Plan,
760-
ModuleFiles:c.ModuleFiles,
799+
ModuleFiles:moduleFilesData,
761800
},nil
762801
default:
763802
returnnil,xerrors.Errorf("invalid message type %q received from provisioner",

‎provisionersdk/proto/dataupload.go

Lines changed: 94 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp