@ -14,11 +14,16 @@ SOURCES = [
( _DATA_ACCOUNT_CI , " commadataci " ) ,
]
DEST_KEY = azureutil . get_user_token ( _DATA_ACCOUNT_CI , " openpilotci " )
SOURCE_KEYS = [ azureutil . get_user_token ( account , bucket ) for account , bucket in SOURCES ]
SERVICE = BlockBlobService ( _DATA_ACCOUNT_CI , sas_token = DEST_KEY )
def get_azure_keys ( ) :
dest_key = azureutil . get_user_token ( _DATA_ACCOUNT_CI , " openpilotci " )
source_keys = [ azureutil . get_user_token ( account , bucket ) for account , bucket in SOURCES ]
service = BlockBlobService ( _DATA_ACCOUNT_CI , sas_token = dest_key )
return dest_key , source_keys , service
def upload_route ( path , exclude_patterns = None ) :
dest_key , _ , _ = get_azure_keys ( )
if exclude_patterns is None :
exclude_patterns = [ ' */dcamera.hevc ' ]
@ -29,27 +34,28 @@ def upload_route(path, exclude_patterns=None):
" azcopy " ,
" copy " ,
f " { path } /* " ,
f " https:// { _DATA_ACCOUNT_CI } .blob.core.windows.net/openpilotci/ { destpath } ? { DEST_KEY } " ,
f " https:// { _DATA_ACCOUNT_CI } .blob.core.windows.net/openpilotci/ { destpath } ? { dest_key } " ,
" --recursive=false " ,
" --overwrite=false " ,
] + [ f " --exclude-pattern= { p } " for p in exclude_patterns ]
subprocess . check_call ( cmd )
def sync_to_ci_public ( route ) :
dest_key , source_keys , service = get_azure_keys ( )
key_prefix = route . replace ( ' | ' , ' / ' )
dongle_id = key_prefix . split ( ' / ' ) [ 0 ]
if next ( azureutil . list_all_blobs ( SERVICE , " openpilotci " , prefix = key_prefix ) , None ) is not None :
if next ( azureutil . list_all_blobs ( service , " openpilotci " , prefix = key_prefix ) , None ) is not None :
return True
print ( f " Uploading { route } " )
for ( source_account , source_bucket ) , source_key in zip ( SOURCES , SOURCE_KEYS ) :
for ( source_account , source_bucket ) , source_key in zip ( SOURCES , source_keys ) :
print ( f " Trying { source_account } / { source_bucket } " )
cmd = [
" azcopy " ,
" copy " ,
f " https:// { source_account } .blob.core.windows.net/ { source_bucket } / { key_prefix } ? { source_key } " ,
f " https:// { _DATA_ACCOUNT_CI } .blob.core.windows.net/openpilotci/ { dongle_id } ? { DEST_KEY } " ,
f " https:// { _DATA_ACCOUNT_CI } .blob.core.windows.net/openpilotci/ { dongle_id } ? { dest_key } " ,
" --recursive=true " ,
" --overwrite=false " ,
" --exclude-pattern=*/dcamera.hevc " ,