From e47abc01c8778cc07c11a331ae31ce46b6fd06a0 Mon Sep 17 00:00:00 2001
From: haozi007 <liuhao27@huawei.com>
Date: Thu, 14 Dec 2023 10:59:34 +0800
Subject: [PATCH 59/65] improve code of pull

1. ignore unneccessary error log;
2. do not show progress, if stdout is not tty;

Signed-off-by: haozi007 <liuhao27@huawei.com>
---
 src/cmd/isula/images/pull.c                               | 6 ++++++
 .../modules/image/oci/storage/image_store/image_type.c    | 8 ++++++++
 .../layer_store/graphdriver/overlay2/driver_overlay2.c    | 5 +++++
 3 files changed, 19 insertions(+)

diff --git a/src/cmd/isula/images/pull.c b/src/cmd/isula/images/pull.c
index 9d420778..b30cc0bd 100644
--- a/src/cmd/isula/images/pull.c
+++ b/src/cmd/isula/images/pull.c
@@ -36,6 +36,12 @@ struct client_arguments g_cmd_pull_args = {};
 static bool is_terminal_show_supported()
 {
 #ifdef GRPC_CONNECTOR
+    // if stdout is not tty, just ingore progress
+    if (!isatty(STDOUT_FILENO)) {
+        WARN("Stdout is not tty device, just ignore progress.");
+        return false;
+    }
+
     // Initialize the terminfo database
     setupterm(NULL, STDOUT_FILENO, (int *)0);
 
diff --git a/src/daemon/modules/image/oci/storage/image_store/image_type.c b/src/daemon/modules/image/oci/storage/image_store/image_type.c
index 50af0a69..50a81db2 100644
--- a/src/daemon/modules/image/oci/storage/image_store/image_type.c
+++ b/src/daemon/modules/image/oci/storage/image_store/image_type.c
@@ -77,6 +77,14 @@ int try_fill_image_spec(image_t *img, const char *id, const char *image_store_di
         goto out;
     }
 
+    // for new_image(), first try will failed because config file not exist
+    // and image_store_set_big_data() will retry this function
+    if (!util_file_exists(config_file)) {
+        WARN("Oci image spec: %s not found.", config_file);
+        ret = -1;
+        goto out;
+    }
+
     img->spec = oci_image_spec_parse_file(config_file, NULL, &err);
     if (img->spec == NULL) {
         ERROR("Failed to parse oci image spec: %s", err);
diff --git a/src/daemon/modules/image/oci/storage/layer_store/graphdriver/overlay2/driver_overlay2.c b/src/daemon/modules/image/oci/storage/layer_store/graphdriver/overlay2/driver_overlay2.c
index 3bc433ae..3d814954 100644
--- a/src/daemon/modules/image/oci/storage/layer_store/graphdriver/overlay2/driver_overlay2.c
+++ b/src/daemon/modules/image/oci/storage/layer_store/graphdriver/overlay2/driver_overlay2.c
@@ -1133,7 +1133,12 @@ static char *read_layer_lower_file(const char *layer_dir)
         goto out;
     }
 
+    // lowest layer do not have lower file
+    if (!util_file_exists(lower_file)) {
+        goto out;
+    }
     lower = util_read_text_file(lower_file);
+
 out:
     free(lower_file);
     return lower;
-- 
2.42.0

