func GetImagesOnNode()

in images/controller/pkg/util.go [191:218]


func GetImagesOnNode() ([]DockerImage, error) {
	resp := make([]DockerImage, 0)

	cmd := exec.Command("sh", "-c", "docker images --digests --format '{{json .}}'")
	stdout, err := cmd.StdoutPipe()
	if err != nil {
		return resp, fmt.Errorf("failed to get node images, stdoutpipe: %v", err)
	}
	if err := cmd.Start(); err != nil {
		return resp, fmt.Errorf("failed to get node images, command start: %v", err)
	}

	d := json.NewDecoder(stdout)
	for {
		var jsonResp DockerImage
		if err := d.Decode(&jsonResp); err == io.EOF {
			break
		} else if err != nil {
			return resp, err
		}
		resp = append(resp, jsonResp)
	}
	if err := cmd.Wait(); err != nil {
		return resp, fmt.Errorf("failed to get node images, command wait: %v", err)
	}

	return resp, nil
}