Project

Profile

Help

Task #1231

Updated by jortel@redhat.com over 8 years ago

Catalog model object: 

 Unique Index (path, importer_id) 

 Catalog: 
 * path             A Is: <unit_id>/<path_inside_unit> 
 * unit_id          The unit storage path. ID 
 * plugin_id        An importer_id      The importer ID 
 * repo_id          The repo ID 
 * url              The download URL 
 * checksum         The checksum and type used to verify downloaded file.    Is: <algorithm>:<digest> <type>:<checksum> 
 * data             Misc data (dict) used by the importer. 

 <pre> 
 Flow for when a GET request for a file not on disk. The symlink is there but nothing at the target for the symlink. 
 - Derive the path from the incoming request (symlink information) 
 - Find catalog entries for unit by path 
 - If no entries matched - 404 
 - For each entry - if importer or repo does not exist, continue 
   - When a matching entry is found: 
     - get plugin 
     - get downloader config from the plugin 
     - build downloader_id hash from config 
     - get/build downloader from streamer downloader pool 
     - feed download request into downloader input queue 
   - If all entries return 404 then 404 the file  
   - If download succeeds, put file into final location and remove catalog entries for the path 
 </pre>

Back