static int tar_pull_make_local_copy(TarPull *i) { int r; assert(i); assert(i->tar_job); if (!i->local) return 0; if (!i->final_path) { r = pull_make_path(i->tar_job->url, i->tar_job->etag, i->image_root, ".tar-", NULL, &i->final_path); if (r < 0) return log_oom(); } r = pull_make_local_copy(i->final_path, i->image_root, i->local, i->force_local); if (r < 0) return r; if (i->settings) { const char *local_settings; assert(i->settings_job); if (!i->settings_path) { r = pull_make_path(i->settings_job->url, i->settings_job->etag, i->image_root, ".settings-", NULL, &i->settings_path); if (r < 0) return log_oom(); } local_settings = strjoina(i->image_root, "/", i->local, ".nspawn"); r = copy_file_atomic(i->settings_path, local_settings, 0664, i->force_local, 0); if (r == -EEXIST) log_warning_errno(r, "Settings file %s already exists, not replacing.", local_settings); else if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to copy settings files %s: %m", local_settings); log_info("Create new settings file '%s.nspawn'", i->local); } return 0; }
static int dkr_pull_make_local_copy(DkrPull *i) { int r; assert(i); if (!i->local) return 0; if (!i->final_path) { i->final_path = strjoin(i->image_root, "/.dkr-", i->id, NULL); if (!i->final_path) return log_oom(); } r = pull_make_local_copy(i->final_path, i->image_root, i->local, i->force_local); if (r < 0) return r; return 0; }
static int tar_pull_make_local_copy(TarPull *i) { int r; assert(i); assert(i->tar_job); if (!i->local) return 0; if (!i->final_path) { r = pull_make_path(i->tar_job->url, i->tar_job->etag, i->image_root, ".tar-", NULL, &i->final_path); if (r < 0) return log_oom(); } r = pull_make_local_copy(i->final_path, i->image_root, i->local, i->force_local); if (r < 0) return r; return 0; }
static int tar_pull_make_local_copy(TarPull *i) { int r; assert(i); assert(i->tar_job); if (!i->local) return 0; r = pull_make_local_copy(i->final_path, i->image_root, i->local, i->force_local); if (r < 0) return r; if (i->settings) { const char *local_settings; assert(i->settings_job); r = tar_pull_determine_path(i, ".nspawn", &i->settings_path); if (r < 0) return r; local_settings = strjoina(i->image_root, "/", i->local, ".nspawn"); r = copy_file_atomic(i->settings_path, local_settings, 0664, 0, COPY_REFLINK | (i->force_local ? COPY_REPLACE : 0)); if (r == -EEXIST) log_warning_errno(r, "Settings file %s already exists, not replacing.", local_settings); else if (r == -ENOENT) log_debug_errno(r, "Skipping creation of settings file, since none was found."); else if (r < 0) log_warning_errno(r, "Failed to copy settings files %s, ignoring: %m", local_settings); else log_info("Created new settings file %s.", local_settings); } return 0; }