github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/images/targets/reset.go (about) 1 package targets 2 3 import ( 4 "github.com/Sirupsen/logrus" 5 "github.com/daticahealth/cli/commands/environments" 6 "github.com/daticahealth/cli/lib/images" 7 "github.com/daticahealth/cli/models" 8 ) 9 10 const ( 11 improperImageName = "Improperly formatted image name. Follow the convention <image>:<tag>" 12 ) 13 14 func cmdTargetsReset(envID, imageName string, user *models.User, ie environments.IEnvironments, ii images.IImages) error { 15 env, err := ie.Retrieve(envID) 16 if err != nil { 17 return err 18 } 19 20 repositoryName, tag, err := ii.GetGloballyUniqueNamespace(imageName, env, true) 21 if err != nil { 22 return err 23 } 24 repo := ii.GetNotaryRepository(env.Pod, repositoryName, user) 25 26 changelist, err := repo.GetChangelist() 27 if err != nil { 28 return err 29 } 30 changes := changelist.List() 31 if len(changes) > 0 { 32 if tag != "" { 33 var indices []int 34 for i, change := range changes { 35 if change.Path() == tag { 36 indices = append(indices, i) 37 } 38 } 39 err := changelist.Remove(indices) 40 if err != nil { 41 return err 42 } 43 logrus.Printf("Local changelist cleared for target \"%s\" in trust repository %s", tag, repositoryName) 44 return nil 45 } else { 46 err := changelist.Clear("") 47 if err != nil { 48 return err 49 } 50 } 51 logrus.Printf("Local changelist cleared for trust repository %s", repositoryName) 52 return nil 53 } 54 logrus.Printf("No unpublished changes for trust repository %s\n", repositoryName) 55 return nil 56 }