github.com/loafoe/cli@v7.1.0+incompatible/command/v7/droplets_command.go (about) 1 package v7 2 3 import ( 4 "fmt" 5 "strings" 6 "time" 7 8 "code.cloudfoundry.org/cli/command/flag" 9 "code.cloudfoundry.org/cli/util/ui" 10 ) 11 12 type DropletsCommand struct { 13 BaseCommand 14 15 RequiredArgs flag.AppName `positional-args:"yes"` 16 usage interface{} `usage:"CF_NAME droplets APP_NAME"` 17 relatedCommands interface{} `related_commands:"set-droplet, create-package, packages, app, push"` 18 } 19 20 func (cmd DropletsCommand) Execute(args []string) error { 21 22 err := cmd.SharedActor.CheckTarget(true, true) 23 if err != nil { 24 return err 25 } 26 27 user, err := cmd.Config.CurrentUser() 28 if err != nil { 29 return err 30 } 31 32 cmd.UI.DisplayTextWithFlavor("Getting droplets of app {{.AppName}} in org {{.CurrentOrg}} / space {{.CurrentSpace}} as {{.CurrentUser}}...", map[string]interface{}{ 33 "AppName": cmd.RequiredArgs.AppName, 34 "CurrentSpace": cmd.Config.TargetedSpace().Name, 35 "CurrentOrg": cmd.Config.TargetedOrganization().Name, 36 "CurrentUser": user.Name, 37 }) 38 cmd.UI.DisplayNewline() 39 40 droplets, warnings, err := cmd.Actor.GetApplicationDroplets(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID) 41 cmd.UI.DisplayWarnings(warnings) 42 if err != nil { 43 return err 44 } 45 46 if len(droplets) == 0 { 47 cmd.UI.DisplayText("No droplets found") 48 return nil 49 } 50 51 table := [][]string{ 52 { 53 cmd.UI.TranslateText("guid"), 54 cmd.UI.TranslateText("state"), 55 cmd.UI.TranslateText("created"), 56 }, 57 } 58 59 for _, droplet := range droplets { 60 t, err := time.Parse(time.RFC3339, droplet.CreatedAt) 61 if err != nil { 62 return err 63 } 64 65 dropletGUID := droplet.GUID 66 if droplet.IsCurrent { 67 dropletGUID = fmt.Sprintf(`%s (current)`, dropletGUID) 68 } 69 70 table = append(table, []string{ 71 dropletGUID, 72 cmd.UI.TranslateText(strings.ToLower(string(droplet.State))), 73 cmd.UI.UserFriendlyDate(t), 74 }) 75 } 76 77 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 78 79 return nil 80 }