github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/images/targets/delete.go (about)

     1  package targets
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Sirupsen/logrus"
     7  	"github.com/daticahealth/cli/commands/environments"
     8  	"github.com/daticahealth/cli/lib/images"
     9  	"github.com/daticahealth/cli/lib/prompts"
    10  	"github.com/daticahealth/cli/models"
    11  )
    12  
    13  func cmdTargetsDelete(envID, imageName string, user *models.User, ie environments.IEnvironments, ii images.IImages, ip prompts.IPrompts) error {
    14  	env, err := ie.Retrieve(envID)
    15  	if err != nil {
    16  		return err
    17  	}
    18  	var targetList []string
    19  	repositoryName, tag, err := ii.GetGloballyUniqueNamespace(imageName, env, true)
    20  	if err != nil {
    21  		return err
    22  	}
    23  	repo := ii.GetNotaryRepository(env.Pod, repositoryName, user)
    24  	if tag == "" {
    25  		if err := ip.YesNo("No tag specified", fmt.Sprintf("Would you like to delete trust data for all targets in %s? (y/n) ", repositoryName)); err != nil {
    26  			return nil
    27  		}
    28  
    29  		targets, err := ii.ListTargets(repo)
    30  		if err != nil {
    31  			return err
    32  		}
    33  		for _, target := range targets {
    34  			targetList = append(targetList, target.Name)
    35  		}
    36  	} else {
    37  		targetList = []string{tag}
    38  	}
    39  
    40  	if err := ii.CheckChangelist(repo, ip); err != nil {
    41  		return err
    42  	}
    43  	if err := ii.DeleteTargets(repo, targetList, true); err != nil {
    44  		return err
    45  	}
    46  	logrus.Printf("\nSuccessfully deleted signed targets for %s\n", repositoryName)
    47  	return nil
    48  }