@@ -90,15 +90,15 @@ public static Hashtable GetPublicDiagnosticsConfigurationFromFile(string configu
90
90
switch ( GetConfigFileType ( configurationPath ) )
91
91
{
92
92
case ConfigFileType . Xml :
93
- return GetPublicConfigFromXml ( configurationPath , storageAccountName ) ;
93
+ return GetPublicConfigFromXmlFile ( configurationPath , storageAccountName ) ;
94
94
case ConfigFileType . Json :
95
- return GetPublicConfigFromJson ( configurationPath , storageAccountName ) ;
95
+ return GetPublicConfigFromJsonFile ( configurationPath , storageAccountName ) ;
96
96
default :
97
97
throw new ArgumentException ( Properties . Resources . DiagnosticsExtensionInvalidConfigFileFormat ) ;
98
98
}
99
99
}
100
100
101
- private static Hashtable GetPublicConfigFromXml ( string configurationPath , string storageAccountName )
101
+ private static Hashtable GetPublicConfigFromXmlFile ( string configurationPath , string storageAccountName )
102
102
{
103
103
var config = File . ReadAllText ( configurationPath ) ;
104
104
@@ -158,9 +158,9 @@ private static Hashtable GetPublicConfigFromXml(string configurationPath, string
158
158
return hashTable ;
159
159
}
160
160
161
- private static Hashtable GetPublicConfigFromJson ( string configurationPath , string storageAccountName )
161
+ private static Hashtable GetPublicConfigFromJsonFile ( string configurationPath , string storageAccountName )
162
162
{
163
- var publicConfig = GetPublicConfigFromJson ( configurationPath ) ;
163
+ var publicConfig = GetPublicConfigJObjectFromJsonFile ( configurationPath ) ;
164
164
var properties = publicConfig . Properties ( ) . Select ( p => p . Name ) ;
165
165
var wadCfgProperty = properties . FirstOrDefault ( p => p . Equals ( WadCfg , StringComparison . OrdinalIgnoreCase ) ) ;
166
166
var xmlCfgProperty = properties . FirstOrDefault ( p => p . Equals ( EncodedXmlCfg , StringComparison . OrdinalIgnoreCase ) ) ;
@@ -195,7 +195,7 @@ public static Hashtable GetPrivateDiagnosticsConfiguration(string storageAccount
195
195
return privateConfig ;
196
196
}
197
197
198
- public static XElement GetPublicConfigFromXml ( string configurationPath )
198
+ public static XElement GetPublicConfigXElementFromXmlFile ( string configurationPath )
199
199
{
200
200
XElement publicConfig = null ;
201
201
@@ -218,7 +218,7 @@ public static XElement GetPublicConfigFromXml(string configurationPath)
218
218
return publicConfig ;
219
219
}
220
220
221
- public static JObject GetPublicConfigFromJson ( string configurationPath )
221
+ public static JObject GetPublicConfigJObjectFromJsonFile ( string configurationPath )
222
222
{
223
223
var config = JsonConvert . DeserializeObject < JObject > ( File . ReadAllText ( configurationPath ) ) ;
224
224
var properties = config . Properties ( ) . Select ( p => p . Name ) ;
@@ -283,13 +283,13 @@ public static string InitializeStorageAccountName(AzureStorageContext storageCon
283
283
}
284
284
else if ( configFileType == ConfigFileType . Xml )
285
285
{
286
- var publicConfig = GetPublicConfigFromXml ( configurationPath ) ;
286
+ var publicConfig = GetPublicConfigXElementFromXmlFile ( configurationPath ) ;
287
287
var storageNode = publicConfig == null ? null : publicConfig . Elements ( ) . FirstOrDefault ( ele => ele . Name . LocalName == StorageAccountElemStr ) ;
288
288
storageAccountName = storageNode == null ? null : storageNode . Value ;
289
289
}
290
290
else if ( configFileType == ConfigFileType . Json )
291
291
{
292
- var publicConfig = GetPublicConfigFromJson ( configurationPath ) ;
292
+ var publicConfig = GetPublicConfigJObjectFromJsonFile ( configurationPath ) ;
293
293
var properties = publicConfig . Properties ( ) . Select ( p => p . Name ) ;
294
294
var storageAccountProperty = properties . FirstOrDefault ( p => p . Equals ( StorageAccount , StringComparison . OrdinalIgnoreCase ) ) ;
295
295
storageAccountName = storageAccountProperty == null ? null : publicConfig [ storageAccountProperty ] . Value < string > ( ) ;
@@ -309,16 +309,7 @@ public static string InitializeStorageAccountKey(IStorageManagementClient storag
309
309
string storageAccountKey = null ;
310
310
StorageAccount storageAccount = null ;
311
311
312
- try
313
- {
314
- var storageAccounts = storageClient . StorageAccounts . List ( ) . StorageAccounts ;
315
- storageAccount = storageAccounts == null ? null : storageAccounts . FirstOrDefault ( account => account . Name . Equals ( storageAccountName ) ) ;
316
- }
317
- catch
318
- {
319
- }
320
-
321
- if ( storageAccount != null )
312
+ if ( TryGetStorageAccount ( storageClient , storageAccountName , out storageAccount ) )
322
313
{
323
314
// Help user retrieve the storage account key
324
315
var psStorageAccount = new PSStorageAccount ( storageAccount ) ;
@@ -346,51 +337,52 @@ public static string InitializeStorageAccountEndpoint(string storageAccountName,
346
337
AzureStorageContext storageContext = null , string configurationPath = null , AzureContext defaultContext = null )
347
338
{
348
339
string storageAccountEndpoint = null ;
340
+ StorageAccount storageAccount = null ;
349
341
350
342
if ( storageContext != null )
351
343
{
352
344
// Get value from StorageContext
353
345
storageAccountEndpoint = GetEndpointFromStorageContext ( storageContext ) ;
354
346
}
355
- else
347
+ else if ( TryGetStorageAccount ( storageClient , storageAccountName , out storageAccount ) )
348
+ {
349
+ // Get value from StorageAccount
350
+ var endpoints = storageAccount . PrimaryEndpoints ;
351
+ var context = CreateStorageContext ( endpoints . Blob , endpoints . Queue , endpoints . Table , endpoints . File , storageAccountName , storageAccountKey ) ;
352
+ storageAccountEndpoint = GetEndpointFromStorageContext ( context ) ;
353
+ }
354
+ else if ( ! string . IsNullOrEmpty (
355
+ storageAccountEndpoint = GetStorageAccountInfoFromPrivateConfig ( configurationPath , PrivConfEndpointAttr ) ) )
356
+ {
357
+ // We can get the value from PrivateConfig
358
+ }
359
+ else if ( defaultContext != null && defaultContext . Environment != null )
356
360
{
357
- // Try get the storage account from current subscription
358
- StorageAccount storageAccount = null ;
361
+ // Get value from default azure environment. Default to use https
362
+ Uri blobEndpoint = defaultContext . Environment . GetStorageBlobEndpoint ( storageAccountName ) ;
363
+ Uri queueEndpoint = defaultContext . Environment . GetStorageQueueEndpoint ( storageAccountName ) ;
364
+ Uri tableEndpoint = defaultContext . Environment . GetStorageTableEndpoint ( storageAccountName ) ;
365
+ Uri fileEndpoint = defaultContext . Environment . GetStorageFileEndpoint ( storageAccountName ) ;
366
+ var context = CreateStorageContext ( blobEndpoint , queueEndpoint , tableEndpoint , fileEndpoint , storageAccountName , storageAccountKey ) ;
367
+ storageAccountEndpoint = GetEndpointFromStorageContext ( context ) ;
368
+ }
359
369
360
- try
361
- {
362
- var storageAccounts = storageClient . StorageAccounts . List ( ) . StorageAccounts ;
363
- storageAccount = storageAccounts == null ? null : storageAccounts . FirstOrDefault ( account => account . Name . Equals ( storageAccountName ) ) ;
364
- }
365
- catch
366
- {
367
- }
370
+ return storageAccountEndpoint ;
371
+ }
368
372
369
- if ( storageAccount != null )
370
- {
371
- // Get value from StorageAccount
372
- var endpoints = storageAccount . PrimaryEndpoints ;
373
- var context = CreateStorageContext ( endpoints . Blob , endpoints . Queue , endpoints . Table , endpoints . File , storageAccountName , storageAccountKey ) ;
374
- storageAccountEndpoint = GetEndpointFromStorageContext ( context ) ;
375
- }
376
- else if ( ! string . IsNullOrEmpty ( GetStorageAccountInfoFromPrivateConfig ( configurationPath , PrivConfEndpointAttr ) ) )
377
- {
378
- // Get value from PrivateConfig
379
- storageAccountEndpoint = GetStorageAccountInfoFromPrivateConfig ( configurationPath , PrivConfEndpointAttr ) ;
380
- }
381
- else if ( defaultContext != null && defaultContext . Environment != null )
382
- {
383
- // Get value from default azure environment. Default to use https
384
- Uri blobEndpoint = defaultContext . Environment . GetStorageBlobEndpoint ( storageAccountName ) ;
385
- Uri queueEndpoint = defaultContext . Environment . GetStorageQueueEndpoint ( storageAccountName ) ;
386
- Uri tableEndpoint = defaultContext . Environment . GetStorageTableEndpoint ( storageAccountName ) ;
387
- Uri fileEndpoint = defaultContext . Environment . GetStorageFileEndpoint ( storageAccountName ) ;
388
- var context = CreateStorageContext ( blobEndpoint , queueEndpoint , tableEndpoint , fileEndpoint , storageAccountName , storageAccountKey ) ;
389
- storageAccountEndpoint = GetEndpointFromStorageContext ( context ) ;
390
- }
373
+ private static bool TryGetStorageAccount ( IStorageManagementClient storageClient , string storageAccountName , out StorageAccount storageAccount )
374
+ {
375
+ try
376
+ {
377
+ var storageAccounts = storageClient . StorageAccounts . List ( ) . StorageAccounts ;
378
+ storageAccount = storageAccounts == null ? null : storageAccounts . FirstOrDefault ( account => account . Name . Equals ( storageAccountName ) ) ;
379
+ }
380
+ catch
381
+ {
382
+ storageAccount = null ;
391
383
}
392
384
393
- return storageAccountEndpoint ;
385
+ return storageAccount != null ;
394
386
}
395
387
396
388
private static AzureStorageContext CreateStorageContext ( Uri blobEndpoint , Uri queueEndpoint , Uri tableEndpoint , Uri fileEndpoint ,
0 commit comments