Skip to content

Commit 2784c37

Browse files
committed
Add unit and integration tests
1 parent 94b0732 commit 2784c37

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."""
@@ -7652,13 +7667,6 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76527667

76537668
mc.addon_profiles[existing_key] = addon_profile
76547669
self.context.set_intermediate("monitoring_addon_enabled", True, overwrite_exists=True)
7655-
# Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
7656-
if (mc.addon_profiles and
7657-
existing_key in mc.addon_profiles and
7658-
mc.addon_profiles[existing_key].enabled):
7659-
7660-
# Set intermediate value to trigger postprocessing
7661-
self.context.set_intermediate("monitoring_addon_postprocessing_required", True, overwrite_exists=True)
76627670

76637671
def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76647672
"""Disable Azure Monitor logs configuration."""
@@ -7742,8 +7750,9 @@ def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
77427750
# Now disable the addon and clear configuration
77437751
mc.addon_profiles[addon_key].enabled = False
77447752

7745-
# Clear the config to remove old workspace resource ID and other settings
7746-
mc.addon_profiles[addon_key].config = None
7753+
# Use empty dict instead of None - setting config=None causes the SDK serializer
7754+
# to omit the config key entirely, which Azure interprets as "keep existing config"
7755+
mc.addon_profiles[addon_key].config = {}
77477756

77487757
# Also disable OpenTelemetry logs when disabling Azure Monitor logs
77497758
if opentelemetry_logs_enabled:

0 commit comments

Comments
 (0)