Skip to content

Commit

Permalink
fix validation for kms options (Azure#4560)
Browse files Browse the repository at this point in the history
  • Loading branch information
FumingZhang committed Mar 23, 2022
1 parent 0ad4600 commit 77a28e3
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/aks-preview/azext_aks_preview/decorator.py
Original file line number Diff line number Diff line change
Expand Up @@ -1597,6 +1597,7 @@ def _get_enable_azure_keyvault_kms(self, enable_validation: bool = False) -> boo
:return: bool
"""
# read the original value passed by the command
# TODO: set default value as False after the get function of AKSParamDict accepts parameter `default`
enable_azure_keyvault_kms = self.raw_param.get("enable_azure_keyvault_kms")
# In create mode, try to read the property value corresponding to the parameter from the `mc` object.
if self.decorator_mode == DecoratorMode.CREATE:
Expand All @@ -1610,8 +1611,10 @@ def _get_enable_azure_keyvault_kms(self, enable_validation: bool = False) -> boo
# this parameter does not need dynamic completion
# validation
if enable_validation:
if enable_azure_keyvault_kms and self._get_azure_keyvault_kms_key_id(enable_validation=False) is None:
raise RequiredArgumentMissingError('"--enable-azure-keyvault-kms" requires "--azure-keyvault-kms-key-id".')
if bool(enable_azure_keyvault_kms) != bool(self._get_azure_keyvault_kms_key_id(enable_validation=False)):
raise RequiredArgumentMissingError(
'You must set "--enable-azure-keyvault-kms" and "--azure-keyvault-kms-key-id" at the same time.'
)

return enable_azure_keyvault_kms

Expand Down
11 changes: 11 additions & 0 deletions src/aks-preview/azext_aks_preview/tests/latest/test_decorator.py
Original file line number Diff line number Diff line change
Expand Up @@ -1746,6 +1746,17 @@ def test_get_enable_azure_keyvault_kms(self):
with self.assertRaises(RequiredArgumentMissingError):
ctx_4.get_enable_azure_keyvault_kms()

ctx_5 = AKSPreviewContext(
self.cmd,
{
"azure_keyvault_kms_key_id": "test_azure_keyvault_kms_key_id",
},
self.models,
decorator_mode=DecoratorMode.CREATE,
)
with self.assertRaises(RequiredArgumentMissingError):
ctx_5.get_enable_azure_keyvault_kms()

def test_get_azure_keyvault_kms_key_id(self):
ctx_0 = AKSPreviewContext(
self.cmd,
Expand Down

0 comments on commit 77a28e3

Please sign in to comment.