@@ -59,40 +59,18 @@ func (o *UploadPluginBundleOptions) UploadPluginBundle() error {
5959
6060 totalImages := len (manifest .ImagesToCopy )
6161 imagesUploaded := 0
62- uploadingMsg := "[%d/%d] uploading image %d"
63- uploadedMsg := "[%d/%d] uploaded image %d"
64- errorMsg := "error while uploading image %q"
6562 // Iterate through all the images and publish them to the remote repository
63+ var repoImagePath string
6664 for _ , ic := range manifest .ImagesToCopy {
6765 imageTar := filepath .Join (pluginBundleDir , ic .SourceTarFilePath )
68- repoImagePath , err : = utils .JoinURL (o .DestinationRepo , ic .RelativeImagePath )
66+ repoImagePath , err = utils .JoinURL (o .DestinationRepo , ic .RelativeImagePath )
6967 if err != nil {
7068 return errors .Wrap (err , "error while constructing the repo image path" )
7169 }
72- errorMsg = fmt .Sprintf (errorMsg , repoImagePath )
73- uploadingMsg = fmt .Sprintf (uploadingMsg , totalImages , imagesUploaded , imagesUploaded )
74- uploadedMsg = fmt .Sprintf (uploadedMsg , totalImages , imagesUploaded , imagesUploaded )
75- var spinner component.OutputWriterSpinner
76- if ! component .IsTTYEnabled () {
77- // Initialize the spinner
78- spinner = component .NewOutputWriterSpinner (component .WithOutputStream (os .Stderr ),
79- component .WithSpinnerText (uploadingMsg ),
80- component .WithSpinnerStarted ())
81- spinner .SetFinalText (errorMsg , log .LogTypeERROR )
82- defer spinner .StopSpinner ()
83- } else {
84- log .Infof (uploadingMsg , totalImages , imagesUploaded , imagesUploaded )
85- }
86- err = o .ImageProcessor .CopyImageFromTar (imageTar , repoImagePath )
87- if err != nil {
88- return errors .Wrap (err , errorMsg )
89- }
90- imagesUploaded = imagesUploaded + 1
91- if spinner != nil {
92- spinner .SetFinalText (uploadedMsg , log .LogTypeINFO )
93- } else {
94- log .Infof (uploadedMsg , totalImages , imagesUploaded , repoImagePath )
70+ if err = o .uploadImage (imageTar , repoImagePath , totalImages , imagesUploaded ); err != nil {
71+ return err
9572 }
73+ imagesUploaded ++
9674 }
9775 log .Infof ("---------------------------" )
9876 log .Infof ("---------------------------" )
@@ -126,6 +104,40 @@ func (o *UploadPluginBundleOptions) UploadPluginBundle() error {
126104 return nil
127105}
128106
107+ func (o * UploadPluginBundleOptions ) uploadImage (imageTar , repoImagePath string , totalImages , imagesUploaded int ) error {
108+ uploadingMsg := fmt .Sprintf ("[%d/%d] uploading image %q" , totalImages , imagesUploaded , repoImagePath )
109+ errorMsg := fmt .Sprintf ("[%d/%d] error while uploading image %q" , totalImages , imagesUploaded , repoImagePath )
110+ uploadedMsg := "[%d/%d] uploaded image %q"
111+
112+ var spinner component.OutputWriterSpinner
113+ if component .IsTTYEnabled () {
114+ // Initialize the spinner
115+ spinner = component .NewOutputWriterSpinner (
116+ component .WithOutputStream (os .Stderr ),
117+ component .WithSpinnerText (uploadingMsg ),
118+ component .WithSpinnerStarted (),
119+ )
120+ spinner .SetFinalText (errorMsg , log .LogTypeERROR )
121+ defer spinner .StopSpinner ()
122+ } else {
123+ log .Infof (uploadingMsg , totalImages , imagesUploaded , repoImagePath )
124+ }
125+
126+ if err := o .ImageProcessor .CopyImageFromTar (imageTar , repoImagePath ); err != nil {
127+ return errors .Wrapf (err , errorMsg , repoImagePath )
128+ }
129+
130+ uploadedMsg = fmt .Sprintf (uploadedMsg , totalImages , imagesUploaded + 1 , repoImagePath )
131+ if spinner != nil {
132+ spinner .SetFinalText (uploadedMsg , log .LogTypeINFO )
133+ spinner .StopSpinner ()
134+ } else {
135+ log .Infof (uploadedMsg , totalImages , imagesUploaded , repoImagePath )
136+ }
137+
138+ return nil
139+ }
140+
129141// mergePluginInventoryMetadata merges the downloaded plugin inventory metadata with
130142// existing plugin inventory metadata available on the remote repository
131143func (o * UploadPluginBundleOptions ) mergePluginInventoryMetadata (pluginInventoryMetadataImageWithTag , bundledPluginInventoryMetadataDBFilePath , tempDir string ) error {
0 commit comments