Selaa lähdekoodia

Get the real status of containers

Djordje Lukic 5 vuotta sitten
vanhempi
sitoutus
885fd799e1
2 muutettua tiedostoa jossa 16 lisäystä ja 9 poistoa
  1. 13 6
      azure/backend.go
  2. 3 3
      cli/cmd/ps.go

+ 13 - 6
azure/backend.go

@@ -53,7 +53,6 @@ func New(ctx context.Context) (containers.ContainerService, error) {
 func (cs *containerService) List(ctx context.Context) ([]containers.Container, error) {
 	var cg []containerinstance.ContainerGroup
 	result, err := cs.cgc.ListByResourceGroup(ctx, cs.ctx.ResourceGroup)
-
 	if err != nil {
 		return []containers.Container{}, err
 	}
@@ -67,12 +66,20 @@ func (cs *containerService) List(ctx context.Context) ([]containers.Container, e
 
 	res := []containers.Container{}
 	for _, c := range cg {
-		cc := *c.Containers
-		for _, d := range cc {
+		group, err := cs.cgc.Get(ctx, cs.ctx.ResourceGroup, *c.Name)
+		if err != nil {
+			return []containers.Container{}, err
+		}
+
+		for _, d := range *group.Containers {
+			status := "Unknown"
+			if d.InstanceView != nil && d.InstanceView.CurrentState != nil {
+				status = *d.InstanceView.CurrentState.State
+			}
 			res = append(res, containers.Container{
-				ID:    *c.Name,
-				Image: *d.Image,
-				// Command: strings.Join(*d.ContainerProperties.Command, " "), // TODO command can be null
+				ID:     *d.Name,
+				Image:  *d.Image,
+				Status: status,
 			})
 		}
 	}

+ 3 - 3
cli/cmd/ps.go

@@ -27,10 +27,10 @@ var PsCommand = cobra.Command{
 		}
 
 		w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0)
-		fmt.Fprintf(w, "NAME\tIMAGE\tCOMMAND\n")
-		format := "%s\t%s\t%s\n"
+		fmt.Fprintf(w, "NAME\tIMAGE\tSTATUS\tCOMMAND\n")
+		format := "%s\t%s\t%s\t%s\n"
 		for _, c := range containers {
-			fmt.Fprintf(w, format, c.ID, c.Image, c.Command)
+			fmt.Fprintf(w, format, c.ID, c.Image, c.Status, c.Command)
 		}
 		return w.Flush()
 	},