@@ -116,9 +116,11 @@ module ContainerInstances =
116116 UtilsStorageAccount: string
117117 UtilsStorageAccountKey: string
118118 UtilsFileShare: string
119+ UtilsStorageAccountUri : System .Uri
119120
120121 ResultsStorageAccount : string
121122 ResultsStorageAccountKey: string
123+ ResultsStorageAccountUri : System .Uri
122124
123125 NetworkProfileName: string
124126 VNetResourceGroup: string
@@ -236,22 +238,22 @@ module ContainerInstances =
236238 let getStorageKey ( azure : IAzure ) ( resourceGroup : string , storageAccount : string ) =
237239 async {
238240 let! storage = azure.StorageAccounts.GetByResourceGroupAsync( resourceGroup, storageAccount). ToAsync
241+
239242 let! keys = storage.GetKeysAsync() .ToAsync
240243 let storageKey = keys.[ 0 ]. Value
241- return storageKey
244+ return storageKey, ( System.Uri ( storage.EndPoints.Primary.File ))
242245 }
243246
244247 let getStorageKeyTask ( azure : IAzure ) ( resourceGroup : string , storageAccount : string ) =
245248 getStorageKey azure ( resourceGroup, storageAccount) |> Async.StartAsTask
246249
247250 let initializeTools ( agentConfig : AgentConfig ) =
248251 async {
249- let auth = Microsoft.Azure.Storage.Auth.StorageCredentials( agentConfig.UtilsStorageAccount, agentConfig.UtilsStorageAccountKey;)
250- let account = Microsoft.Azure.Storage.CloudStorageAccount( auth, true )
251- let sasUrl = account.ToString( true )
252+ let storageCredential = Azure.Storage.StorageSharedKeyCredential( agentConfig.UtilsStorageAccount, agentConfig.UtilsStorageAccountKey)
253+ let builder = Azure.Storage.Files.Shares.ShareUriBuilder( agentConfig.UtilsStorageAccountUri, ShareName = agentConfig.UtilsFileShare )
254+ let share = Azure.Storage.Files.Shares.ShareClient( builder.ToUri(), storageCredential)
255+ let directoryClient = share.GetDirectoryClient( " tools" )
252256
253- let directoryClient = Azure.Storage.Files.Shares.ShareDirectoryClient( sasUrl, agentConfig.UtilsFileShare, " tools" )
254-
255257 let asyncEnum = directoryClient.GetFilesAndDirectoriesAsync() .GetAsyncEnumerator()
256258
257259 let rec loadAllConfigs ( allConfigs ) =
@@ -368,7 +370,7 @@ module ContainerInstances =
368370 + ( sprintf " %s /" storageAccountName)
369371 + ( sprintf " path/%s /protocol/" ( Option.defaultValue containerGroupName rootFileShare))
370372
371- let createJobShareAndFolders ( logger : ILogger ) ( containerGroupName : string ) ( sasUrl : string ) ( jobCreateRequest : CreateJobRequest ) =
373+ let createJobShareAndFolders ( logger : ILogger ) ( containerGroupName : string ) ( getShare : string -> Azure.Storage.Files.Shares.ShareClient ) ( jobCreateRequest : CreateJobRequest ) =
372374 async {
373375 let shareName , createSubDirectory , shareQuota =
374376 match jobCreateRequest.JobDefinition.RootFileShare with
@@ -390,9 +392,12 @@ module ContainerInstances =
390392 let logInfo format = Printf.kprintf logger.LogInformation format
391393 logInfo " Creating config fileshare: %s " shareName
392394
395+ let shareClient = getShare shareName
396+ let rootDirectory = shareClient.GetRootDirectoryClient()
397+
393398 let saveString ( fileName : string ) ( data : string ) =
394399 async {
395- let file = Azure.Storage.Files.Shares.ShareFileClient ( sasUrl , shareName , fileName)
400+ let file = rootDirectory.GetFileClient ( fileName)
396401 let! _ = file.DeleteIfExistsAsync() .ToAsync
397402
398403 let! _ = file.CreateAsync( int64 data.Length). ToAsync
@@ -403,7 +408,6 @@ module ContainerInstances =
403408 return ()
404409 }
405410
406- let shareClient = Azure.Storage.Files.Shares.ShareClient( sasUrl, shareName)
407411 let! _ = shareClient.CreateIfNotExistsAsync( dict[], Nullable( shareQuota)) .ToAsync
408412
409413 let! subDirectory = createSubDirectory( shareClient)
@@ -579,14 +583,15 @@ module ContainerInstances =
579583 let workVolume = jobCreateRequest.JobId
580584 let workDirectory = sprintf " /work-directory-%s " jobCreateRequest.JobId
581585
582- let auth = Microsoft.Azure.Storage.Auth.StorageCredentials( agentConfig.ResultsStorageAccount, agentConfig.ResultsStorageAccountKey)
583- let account = Microsoft.Azure.Storage.CloudStorageAccount( auth, true )
584- let sasUrl = account.ToString( true )
586+ let getShare ( shareName ) =
587+ let storageCredential = Azure.Storage.StorageSharedKeyCredential( agentConfig.ResultsStorageAccount, agentConfig.ResultsStorageAccountKey)
588+ let builder = Azure.Storage.Files.Shares.ShareUriBuilder( agentConfig.ResultsStorageAccountUri, ShareName = shareName )
589+ Azure.Storage.Files.Shares.ShareClient( builder.ToUri(), storageCredential)
585590
586591 let makeToolConfig payload =
587592 getToolConfiguration dockerConfigs toolsConfigs payload
588593
589- let! shareName = createJobShareAndFolders logger containerGroupName sasUrl jobCreateRequest
594+ let! shareName = createJobShareAndFolders logger containerGroupName getShare jobCreateRequest
590595
591596 jobCreateRequest.JobDefinition.TestTasks.Tasks
592597 |> Array.countBy( fun task -> task.ToolName)
0 commit comments