Fix error handling

An error could be thrown here if the status was nil

Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
This commit is contained in:
Alex Ellis (OpenFaaS Ltd) 2021-01-04 11:19:37 +00:00
parent 32c00f0e9e
commit 294ef0f17f

View File

@ -27,23 +27,25 @@ func Remove(ctx context.Context, client *containerd.Client, name string) error {
container, containerErr := client.LoadContainer(ctx, name) container, containerErr := client.LoadContainer(ctx, name)
if containerErr == nil { if containerErr == nil {
found := true taskFound := true
t, err := container.Task(ctx, nil) t, err := container.Task(ctx, nil)
if err != nil { if err != nil {
if errdefs.IsNotFound(err) { if errdefs.IsNotFound(err) {
found = false taskFound = false
} else { } else {
return fmt.Errorf("unable to get task %s: ", err) return fmt.Errorf("unable to get task %s: ", err)
} }
} }
if found { if taskFound {
status, err := t.Status(ctx) status, err := t.Status(ctx)
if err != nil { if err != nil {
fmt.Printf("Status of %s is: %s\n", name, status.Status) log.Printf("Unable to get status for: %s, error: %s", name, err.Error())
} else {
log.Printf("Status of %s is: %s\n", name, status.Status)
} }
log.Printf("Need to kill %s\n", name) log.Printf("Need to kill task: %s\n", name)
if err = killTask(ctx, t); err != nil { if err = killTask(ctx, t); err != nil {
return fmt.Errorf("error killing task %s, %s, %s", container.ID(), name, err) return fmt.Errorf("error killing task %s, %s, %s", container.ID(), name, err)
} }