Skip to content

Commit 236fa2c

Browse files
committed
Add unit and integration tests
1 parent c85fdfc commit 236fa2c

File tree

3 files changed

+497
-22
lines changed

3 files changed

+497
-22
lines changed

src/aks-preview/azext_aks_preview/managed_cluster_decorator.py

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,8 +1032,12 @@ def get_container_network_logs(self, mc: ManagedCluster) -> Union[bool, None]:
10321032
)
10331033
monitoring_already_enabled = (
10341034
mc.addon_profiles and
1035-
mc.addon_profiles.get("omsagent") and
1036-
mc.addon_profiles["omsagent"].enabled
1035+
(
1036+
(mc.addon_profiles.get("omsagent") and
1037+
mc.addon_profiles["omsagent"].enabled) or
1038+
(mc.addon_profiles.get(CONST_MONITORING_ADDON_NAME_CAMELCASE) and
1039+
mc.addon_profiles[CONST_MONITORING_ADDON_NAME_CAMELCASE].enabled)
1040+
)
10371041
)
10381042
monitoring_enabled = monitoring_being_enabled or monitoring_already_enabled
10391043
if not acns_enabled or not monitoring_enabled:
@@ -4566,16 +4570,27 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
45664570
}
45674571
mc.addon_profiles[CONST_MONITORING_ADDON_NAME] = addon_profile
45684572

4569-
self.context.set_intermediate("monitoring_addon_enabled", True, overwrite_exists=True)
4570-
4571-
# Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
4572-
CONST_MONITORING_ADDON_NAME = addon_consts.get("CONST_MONITORING_ADDON_NAME")
4573-
if (mc.addon_profiles and
4574-
CONST_MONITORING_ADDON_NAME in mc.addon_profiles and
4575-
mc.addon_profiles[CONST_MONITORING_ADDON_NAME].enabled):
4573+
# Create DCR before the cluster is created (matching base class build_monitoring_addon_profile pattern).
4574+
# The DCRA will be created later in postprocessing_after_mc_created.
4575+
self.context.external_functions.ensure_container_insights_for_monitoring(
4576+
self.cmd,
4577+
addon_profile,
4578+
self.context.get_subscription_id(),
4579+
self.context.get_resource_group_name(),
4580+
self.context.get_name(),
4581+
self.context.get_location(),
4582+
remove_monitoring=False,
4583+
aad_route=self.context.get_enable_msi_auth_for_monitoring(),
4584+
create_dcr=True,
4585+
create_dcra=False,
4586+
enable_syslog=self.context.get_enable_syslog(),
4587+
data_collection_settings=self.context.get_data_collection_settings(),
4588+
is_private_cluster=self.context.get_enable_private_cluster(),
4589+
ampls_resource_id=self.context.get_ampls_resource_id(),
4590+
enable_high_log_scale_mode=self.context.get_enable_high_log_scale_mode(),
4591+
)
45764592

4577-
# Set intermediate value to trigger postprocessing
4578-
self.context.set_intermediate("monitoring_addon_postprocessing_required", True, overwrite_exists=True)
4593+
self.context.set_intermediate("monitoring_addon_enabled", True, overwrite_exists=True)
45794594

45804595
def _setup_opentelemetry_metrics(self, mc: ManagedCluster) -> None:
45814596
"""Set up OpenTelemetry metrics configuration."""
@@ -7680,13 +7695,6 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76807695

76817696
mc.addon_profiles[existing_key] = addon_profile
76827697
self.context.set_intermediate("monitoring_addon_enabled", True, overwrite_exists=True)
7683-
# Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
7684-
if (mc.addon_profiles and
7685-
existing_key in mc.addon_profiles and
7686-
mc.addon_profiles[existing_key].enabled):
7687-
7688-
# Set intermediate value to trigger postprocessing
7689-
self.context.set_intermediate("monitoring_addon_postprocessing_required", True, overwrite_exists=True)
76907698

76917699
def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76927700
"""Disable Azure Monitor logs configuration."""
@@ -7770,8 +7778,9 @@ def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
77707778
# Now disable the addon and clear configuration
77717779
mc.addon_profiles[addon_key].enabled = False
77727780

7773-
# Clear the config to remove old workspace resource ID and other settings
7774-
mc.addon_profiles[addon_key].config = None
7781+
# Use empty dict instead of None - setting config=None causes the SDK serializer
7782+
# to omit the config key entirely, which Azure interprets as "keep existing config"
7783+
mc.addon_profiles[addon_key].config = {}
77757784

77767785
# Also disable OpenTelemetry logs when disabling Azure Monitor logs
77777786
if opentelemetry_logs_enabled:

0 commit comments

Comments
 (0)