summaryrefslogtreecommitdiff
path: root/0059-improve-code-of-pull.patch
diff options
context:
space:
mode:
Diffstat (limited to '0059-improve-code-of-pull.patch')
-rw-r--r--0059-improve-code-of-pull.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/0059-improve-code-of-pull.patch b/0059-improve-code-of-pull.patch
new file mode 100644
index 0000000..e2c236e
--- /dev/null
+++ b/0059-improve-code-of-pull.patch
@@ -0,0 +1,71 @@
+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/64] 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
+