66import os .path
77import sqlite3
88import sys
9- from typing import Any , List , Tuple
9+ from typing import Any , List
1010
1111from six .moves .urllib .parse import urlparse
1212
1313from .globus import globus_activate , globus_finalize
1414from .hpss import hpss_put
1515from .hpss_utils import add_files
16- from .settings import DEFAULT_CACHE , config , get_db_filename , logger
16+ from .settings import config , get_db_filename , logger
1717from .utils import (
18+ CommandInfo ,
1819 create_tars_table ,
1920 get_files_to_archive ,
2021 run_command ,
2425
2526
2627def create ():
27- cache : str
28- cache , args = setup_create ()
28+ ci = CommandInfo ( "create" )
29+ args = setup_create (ci )
2930
3031 # Check config fields
3132 if config .path is not None :
@@ -77,7 +78,7 @@ def create():
7778 logger .debug (f"{ ts_utc ()} : Creating local cache directory" )
7879 os .chdir (path )
7980 try :
80- os .makedirs (cache )
81+ os .makedirs (ci . cache_dir )
8182 except OSError as exc :
8283 if exc .errno != errno .EEXIST :
8384 cache_error_str : str = "Cannot create local cache directory"
@@ -88,11 +89,11 @@ def create():
8889
8990 # Create and set up the database
9091 logger .debug (f"{ ts_utc ()} : Calling create_database()" )
91- failures : List [str ] = create_database (cache , args )
92+ failures : List [str ] = create_database (ci . cache_dir , args )
9293
9394 # Transfer to HPSS. Always keep a local copy.
94- logger .debug (f"{ ts_utc ()} : calling hpss_put() for { get_db_filename ( cache )} " )
95- hpss_put (hpss , get_db_filename ( cache ), cache , keep = True )
95+ logger .debug (f"{ ts_utc ()} : calling hpss_put() for { ci . get_db_name ( )} " )
96+ hpss_put (hpss , ci . get_db_name ( ), ci . cache_dir , keep = True )
9697
9798 logger .debug (f"{ ts_utc ()} : calling globus_finalize()" )
9899 globus_finalize (non_blocking = args .non_blocking )
@@ -104,7 +105,7 @@ def create():
104105 logger .error ("Failed to archive {}" .format (file_path ))
105106
106107
107- def setup_create () -> Tuple [ str , argparse .Namespace ] :
108+ def setup_create (ci : CommandInfo ) -> argparse .Namespace :
108109 # Parser
109110 parser : argparse .ArgumentParser = argparse .ArgumentParser (
110111 usage = "zstash create [<args>] path" , description = "Create a new zstash archive"
@@ -180,13 +181,10 @@ def setup_create() -> Tuple[str, argparse.Namespace]:
180181 config .path = os .path .abspath (args .path )
181182 config .hpss = args .hpss
182183 config .maxsize = int (1024 * 1024 * 1024 * args .maxsize )
183- cache : str
184184 if args .cache :
185- cache = args .cache
186- else :
187- cache = DEFAULT_CACHE
185+ ci .cache_dir = args .cache
188186
189- return cache , args
187+ return args
190188
191189
192190def create_database (cache : str , args : argparse .Namespace ) -> List [str ]:
0 commit comments