github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/generic/move.go (about) 1 package generic 2 3 import ( 4 "errors" 5 6 "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" 7 "github.com/jfrog/jfrog-cli-core/v2/common/spec" 8 "github.com/jfrog/jfrog-client-go/artifactory/services" 9 "github.com/jfrog/jfrog-client-go/utils/log" 10 ) 11 12 type MoveCommand struct { 13 GenericCommand 14 threads int 15 } 16 17 func NewMoveCommand() *MoveCommand { 18 return &MoveCommand{GenericCommand: *NewGenericCommand()} 19 } 20 21 func (mc *MoveCommand) Threads() int { 22 return mc.threads 23 } 24 25 func (mc *MoveCommand) SetThreads(threads int) *MoveCommand { 26 mc.threads = threads 27 return mc 28 } 29 30 // Moves the artifacts using the specified move pattern. 31 func (mc *MoveCommand) Run() error { 32 // Create Service Manager: 33 servicesManager, err := utils.CreateServiceManagerWithThreads(mc.serverDetails, mc.DryRun(), mc.threads, mc.retries, mc.retryWaitTimeMilliSecs) 34 if err != nil { 35 return err 36 } 37 38 var errorOccurred = false 39 var moveParamsArray []services.MoveCopyParams 40 // Create MoveParams for all File-Spec groups. 41 for i := 0; i < len(mc.Spec().Files); i++ { 42 moveParams, err := getMoveParams(mc.Spec().Get(i)) 43 if err != nil { 44 errorOccurred = true 45 log.Error(err) 46 continue 47 } 48 moveParamsArray = append(moveParamsArray, moveParams) 49 } 50 51 // Perform move. 52 totalMoved, totalFailed, err := servicesManager.Move(moveParamsArray...) 53 if err != nil { 54 errorOccurred = true 55 log.Error(err) 56 } 57 mc.result.SetSuccessCount(totalMoved) 58 mc.result.SetFailCount(totalFailed) 59 60 if errorOccurred { 61 return errors.New("move finished with errors, please review the logs") 62 } 63 return err 64 } 65 66 func (mc *MoveCommand) CommandName() string { 67 return "rt_move" 68 } 69 70 func getMoveParams(f *spec.File) (moveParams services.MoveCopyParams, err error) { 71 moveParams = services.NewMoveCopyParams() 72 moveParams.CommonParams, err = f.ToCommonParams() 73 if err != nil { 74 return 75 } 76 moveParams.Recursive, err = f.IsRecursive(true) 77 if err != nil { 78 return 79 } 80 moveParams.ExcludeArtifacts, err = f.IsExcludeArtifacts(false) 81 if err != nil { 82 return 83 } 84 moveParams.IncludeDeps, err = f.IsIncludeDeps(false) 85 if err != nil { 86 return 87 } 88 moveParams.Flat, err = f.IsFlat(false) 89 if err != nil { 90 return 91 } 92 return 93 }