Skip to content

Commit 6b0bf42

Browse files
author
Kamran Khan
committed
Use Unknown for encryption status for issue Azure/WALinuxAgent#388
1 parent 79f789a commit 6b0bf42

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/ResourceManager/Compute/Commands.Compute/Extension/AzureDiskEncryption/AzureDiskEncryptionExtensionConstants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public static class AzureDiskEncryptionExtensionConstants
2424
public const string enableEncryptionOperation = "EnableEncryption";
2525
public const string disableEncryptionOperation = "DisableEncryption";
2626
public const string queryEncryptionStatusOperation = "QueryEncryptionStatus";
27+
public const string encryptionResultOsKey = "os";
28+
public const string encryptionResultDataKey = "data";
2729
public const string aadClientIDKey = "AADClientID";
2830
public const string aadClientSecretKey = "AADClientSecret";
2931
public const string aadClientCertThumbprintKey = "AADClientCertThumbprint";

src/ResourceManager/Compute/Commands.Compute/Extension/AzureDiskEncryption/GetAzureDiskEncryptionStatus.cs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,14 @@ private string GetExtensionStatusMessage(OSType currentOSType, bool returnSubsta
162162

163163
if (returnSubstatusMessage)
164164
{
165-
return context.SubStatuses[0].Message;
165+
if(context.SubStatuses != null)
166+
{
167+
return context.SubStatuses[0].Message;
168+
}
169+
else
170+
{
171+
throw new KeyNotFoundException(string.Format(CultureInfo.CurrentUICulture, "Invalid extension substatus"));
172+
}
166173
}
167174

168175
return context.Statuses[0].Message;
@@ -367,13 +374,25 @@ public override void ExecuteCmdlet()
367374
this.Name,
368375
parameters).GetAwaiter().GetResult();
369376

370-
string encryptionStatusJson = GetExtensionStatusMessage(osType, returnSubstatusMessage: true);
371-
Dictionary<string, string> encryptionStatusParsed = JsonConvert.DeserializeObject<Dictionary<string, string>>(encryptionStatusJson);
377+
Dictionary<string, string> encryptionStatusParsed = null;
378+
try
379+
{
380+
string encryptionStatusJson = GetExtensionStatusMessage(osType, returnSubstatusMessage: true);
381+
encryptionStatusParsed = JsonConvert.DeserializeObject<Dictionary<string, string>>(encryptionStatusJson);
382+
}
383+
catch(KeyNotFoundException)
384+
{
385+
encryptionStatusParsed = new Dictionary<string, string>()
386+
{
387+
{ AzureDiskEncryptionExtensionConstants.encryptionResultOsKey, EncryptionStatus.Unknown.ToString() },
388+
{ AzureDiskEncryptionExtensionConstants.encryptionResultDataKey, EncryptionStatus.Unknown.ToString() }
389+
};
390+
}
372391

373392
encryptionStatus = new AzureDiskEncryptionStatusContext
374393
{
375-
OsVolumeEncrypted = (EncryptionStatus) Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed["os"]),
376-
DataVolumesEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed["data"]),
394+
OsVolumeEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultOsKey]),
395+
DataVolumesEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultDataKey]),
377396
OsVolumeEncryptionSettings = osVolumeEncryptionSettings,
378397
ProgressMessage = GetExtensionStatusMessage(osType)
379398
};

0 commit comments

Comments
 (0)