Skip to content

Commit b44d342

Browse files
authored
{AppService} az functionapp config container set: Check if dapr config is null before updating settings (#28257)
1 parent 16a0e6a commit b44d342

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

src/azure-cli/azure/cli/command_modules/appservice/custom.py

+4
Original file line numberDiff line numberDiff line change
@@ -3840,6 +3840,10 @@ def update_dapr_and_workload_config(cmd, resource_group_name, name, enabled=None
38403840
http_max_request_size=None, http_read_buffer_size=None, log_level=None,
38413841
enable_api_logging=None, workload_profile_name=None, cpu=None, memory=None):
38423842
site = _generic_site_operation(cmd.cli_ctx, resource_group_name, name, 'get')
3843+
DaprConfig = cmd.get_models('DaprConfig')
3844+
if site.dapr_config is None:
3845+
site.dapr_config = DaprConfig()
3846+
38433847
import inspect
38443848
frame = inspect.currentframe()
38453849
bool_flags = ['enabled', 'enable_api_logging']

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands_thru_mock.py

+31-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
add_remote_build_app_settings,
1515
remove_remote_build_app_settings,
1616
config_source_control,
17-
validate_app_settings_in_scm)
17+
validate_app_settings_in_scm,
18+
update_container_settings_functionapp)
1819
from azure.cli.core.profiles import ResourceType
1920
from azure.cli.core.azclierror import (AzureInternalError, UnclassifiedUserFault)
2021

@@ -405,6 +406,35 @@ def test_validate_app_settings_in_scm_should_contain_failure(self, get_app_setti
405406
# assert
406407
self.assertFalse(result)
407408

409+
@mock.patch('azure.cli.command_modules.appservice.custom.is_centauri_functionapp')
410+
@mock.patch('azure.cli.command_modules.appservice.custom._generic_site_operation')
411+
@mock.patch('azure.cli.command_modules.appservice.custom.update_functionapp_polling', return_value=True)
412+
@mock.patch('azure.cli.command_modules.appservice.custom.update_container_settings', autospec=True)
413+
def test_update_container_settings_functionapp(self,
414+
update_container_settings_mock,
415+
update_functionapp_polling_mock,
416+
site_op_mock,
417+
is_centauri_functionapp_mock):
418+
# prepare
419+
cmd_mock = _get_test_cmd()
420+
cli_ctx_mock = mock.MagicMock()
421+
cmd_mock.cli_ctx = cli_ctx_mock
422+
423+
Site, DaprConfig, ResourceConfig = cmd_mock.get_models('Site', 'DaprConfig', 'ResourceConfig')
424+
site = Site(dapr_config=None, location='westus', name='name', resource_config=ResourceConfig())
425+
site_op_mock.return_value = site
426+
427+
is_centauri_functionapp_mock.return_value = True
428+
429+
# action
430+
update_container_settings_functionapp(cmd_mock, 'rg', 'name', workload_profile_name='d4', cpu=0.5, memory='1Gi')
431+
432+
# assert
433+
updated_site = site
434+
updated_site.dapr_config = DaprConfig()
435+
update_functionapp_polling_mock.assert_called_with(cmd_mock, 'rg', 'name', updated_site)
436+
437+
408438
@mock.patch('azure.cli.command_modules.appservice.custom.validate_app_settings_in_scm', return_value=True)
409439
@mock.patch('azure.cli.command_modules.appservice.custom.update_app_settings')
410440
@mock.patch('azure.cli.command_modules.appservice.custom.delete_app_settings')

0 commit comments

Comments
 (0)