github.com/niteshexa/cloudfoundry_cli@v7.1.0+incompatible/command/v7/events_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/command/flag"
     5  	"code.cloudfoundry.org/cli/util/ui"
     6  )
     7  
     8  type EventsCommand struct {
     9  	BaseCommand
    10  
    11  	RequiredArgs    flag.AppName `positional-args:"yes"`
    12  	usage           interface{}  `usage:"CF_NAME events APP_NAME"`
    13  	relatedCommands interface{}  `related_commands:"app, logs, map-route, unmap-route"`
    14  }
    15  
    16  func (cmd EventsCommand) Execute(_ []string) error {
    17  	err := cmd.SharedActor.CheckTarget(true, true)
    18  	if err != nil {
    19  		return err
    20  	}
    21  
    22  	user, err := cmd.Config.CurrentUser()
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	appName := cmd.RequiredArgs.AppName
    28  	cmd.UI.DisplayTextWithFlavor("Getting events for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{
    29  		"AppName":   appName,
    30  		"OrgName":   cmd.Config.TargetedOrganization().Name,
    31  		"SpaceName": cmd.Config.TargetedSpace().Name,
    32  		"Username":  user.Name,
    33  	})
    34  
    35  	events, warnings, err := cmd.Actor.GetRecentEventsByApplicationNameAndSpace(
    36  		appName,
    37  		cmd.Config.TargetedSpace().GUID,
    38  	)
    39  	cmd.UI.DisplayWarnings(warnings)
    40  	if err != nil {
    41  		return err
    42  	}
    43  
    44  	if len(events) == 0 {
    45  		cmd.UI.DisplayText("No events found.")
    46  	}
    47  
    48  	table := [][]string{
    49  		{
    50  			cmd.UI.TranslateText("time"),
    51  			cmd.UI.TranslateText("event"),
    52  			cmd.UI.TranslateText("actor"),
    53  			cmd.UI.TranslateText("description"),
    54  		},
    55  	}
    56  
    57  	for _, event := range events {
    58  		table = append(table, []string{
    59  			event.Time.Local().Format("2006-01-02T15:04:05.00-0700"),
    60  			event.Type,
    61  			event.ActorName,
    62  			event.Description,
    63  		})
    64  	}
    65  
    66  	cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding)
    67  
    68  	return nil
    69  }