@@ -14436,6 +14436,195 @@ def test_enable_container_network_logs(self):
1443614436 ):
1443714437 dec_8.set_up_addon_profiles(mc_8)
1443814438
14439+ # Case 9: UPDATE - enable HLSM only (no CNL), monitoring with MSI auth enabled
14440+ dec_9 = AKSManagedClusterUpdateDecorator(
14441+ self.cmd,
14442+ self.client,
14443+ {
14444+ "enable_high_log_scale_mode": True,
14445+ },
14446+ ResourceType.MGMT_CONTAINERSERVICE,
14447+ )
14448+ mc_9 = self.models.ManagedCluster(
14449+ location="test_location",
14450+ network_profile=self.models.ContainerServiceNetworkProfile(
14451+ network_plugin="azure",
14452+ network_plugin_mode="overlay",
14453+ network_dataplane="cilium",
14454+ advanced_networking=self.models.AdvancedNetworking(
14455+ enabled=True,
14456+ ),
14457+ ),
14458+ addon_profiles={
14459+ "omsagent": self.models.ManagedClusterAddonProfile(
14460+ enabled=True,
14461+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14462+ )
14463+ },
14464+ )
14465+ dec_9.context.attach_mc(mc_9)
14466+ dec_mc_9 = dec_9.update_monitoring_profile_flow_logs(mc_9)
14467+ # HLSM should be enabled but CNL remains unset — no enableRetinaNetworkFlags change
14468+ # The monitoring_addon_postprocessing_required intermediate should be set
14469+ self.assertTrue(
14470+ dec_9.context.get_intermediate("monitoring_addon_postprocessing_required")
14471+ )
14472+
14473+ # Case 10: UPDATE - disable HLSM while CNL is active -> should ERROR
14474+ dec_10 = AKSManagedClusterUpdateDecorator(
14475+ self.cmd,
14476+ self.client,
14477+ {
14478+ "enable_high_log_scale_mode": False,
14479+ },
14480+ ResourceType.MGMT_CONTAINERSERVICE,
14481+ )
14482+ mc_10 = self.models.ManagedCluster(
14483+ location="test_location",
14484+ network_profile=self.models.ContainerServiceNetworkProfile(
14485+ network_plugin="azure",
14486+ network_plugin_mode="overlay",
14487+ network_dataplane="cilium",
14488+ advanced_networking=self.models.AdvancedNetworking(
14489+ enabled=True,
14490+ ),
14491+ ),
14492+ addon_profiles={
14493+ "omsagent": self.models.ManagedClusterAddonProfile(
14494+ enabled=True,
14495+ config={
14496+ CONST_MONITORING_USING_AAD_MSI_AUTH: "true",
14497+ "enableRetinaNetworkFlags": "True",
14498+ },
14499+ )
14500+ },
14501+ )
14502+ dec_10.context.attach_mc(mc_10)
14503+ with self.assertRaises(MutuallyExclusiveArgumentError):
14504+ dec_10.update_monitoring_profile_flow_logs(mc_10)
14505+
14506+ # Case 11: UPDATE - enable CNL + HLSM=true together
14507+ dec_11 = AKSManagedClusterUpdateDecorator(
14508+ self.cmd,
14509+ self.client,
14510+ {
14511+ "enable_container_network_logs": True,
14512+ "enable_high_log_scale_mode": True,
14513+ },
14514+ ResourceType.MGMT_CONTAINERSERVICE,
14515+ )
14516+ mc_11 = self.models.ManagedCluster(
14517+ location="test_location",
14518+ network_profile=self.models.ContainerServiceNetworkProfile(
14519+ network_plugin="azure",
14520+ network_plugin_mode="overlay",
14521+ network_dataplane="cilium",
14522+ advanced_networking=self.models.AdvancedNetworking(
14523+ enabled=True,
14524+ ),
14525+ ),
14526+ addon_profiles={
14527+ "omsagent": self.models.ManagedClusterAddonProfile(
14528+ enabled=True,
14529+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14530+ )
14531+ },
14532+ )
14533+ dec_11.context.attach_mc(mc_11)
14534+ dec_mc_11 = dec_11.update_monitoring_profile_flow_logs(mc_11)
14535+ self.assertEqual(
14536+ dec_mc_11.addon_profiles["omsagent"].config["enableRetinaNetworkFlags"],
14537+ "True",
14538+ )
14539+ self.assertTrue(
14540+ dec_11.context.get_intermediate("monitoring_addon_postprocessing_required")
14541+ )
14542+
14543+ # Case 12: UPDATE - enable HLSM without monitoring addon -> should ERROR
14544+ dec_12 = AKSManagedClusterUpdateDecorator(
14545+ self.cmd,
14546+ self.client,
14547+ {
14548+ "enable_high_log_scale_mode": True,
14549+ },
14550+ ResourceType.MGMT_CONTAINERSERVICE,
14551+ )
14552+ mc_12 = self.models.ManagedCluster(
14553+ location="test_location",
14554+ network_profile=self.models.ContainerServiceNetworkProfile(
14555+ network_plugin="azure",
14556+ network_plugin_mode="overlay",
14557+ network_dataplane="cilium",
14558+ advanced_networking=self.models.AdvancedNetworking(
14559+ enabled=True,
14560+ ),
14561+ ),
14562+ )
14563+ dec_12.context.attach_mc(mc_12)
14564+ with self.assertRaises(RequiredArgumentMissingError):
14565+ dec_12.update_monitoring_profile_flow_logs(mc_12)
14566+
14567+ # Case 13: UPDATE - enable HLSM without MSI auth -> should ERROR
14568+ dec_13 = AKSManagedClusterUpdateDecorator(
14569+ self.cmd,
14570+ self.client,
14571+ {
14572+ "enable_high_log_scale_mode": True,
14573+ },
14574+ ResourceType.MGMT_CONTAINERSERVICE,
14575+ )
14576+ mc_13 = self.models.ManagedCluster(
14577+ location="test_location",
14578+ network_profile=self.models.ContainerServiceNetworkProfile(
14579+ network_plugin="azure",
14580+ network_plugin_mode="overlay",
14581+ network_dataplane="cilium",
14582+ advanced_networking=self.models.AdvancedNetworking(
14583+ enabled=True,
14584+ ),
14585+ ),
14586+ addon_profiles={
14587+ "omsagent": self.models.ManagedClusterAddonProfile(
14588+ enabled=True,
14589+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "false"},
14590+ )
14591+ },
14592+ )
14593+ dec_13.context.attach_mc(mc_13)
14594+ with self.assertRaises(RequiredArgumentMissingError):
14595+ dec_13.update_monitoring_profile_flow_logs(mc_13)
14596+
14597+ # Case 14: UPDATE - enable CNL + HLSM=false -> should ERROR
14598+ dec_14 = AKSManagedClusterUpdateDecorator(
14599+ self.cmd,
14600+ self.client,
14601+ {
14602+ "enable_container_network_logs": True,
14603+ "enable_high_log_scale_mode": False,
14604+ },
14605+ ResourceType.MGMT_CONTAINERSERVICE,
14606+ )
14607+ mc_14 = self.models.ManagedCluster(
14608+ location="test_location",
14609+ network_profile=self.models.ContainerServiceNetworkProfile(
14610+ network_plugin="azure",
14611+ network_plugin_mode="overlay",
14612+ network_dataplane="cilium",
14613+ advanced_networking=self.models.AdvancedNetworking(
14614+ enabled=True,
14615+ ),
14616+ ),
14617+ addon_profiles={
14618+ "omsagent": self.models.ManagedClusterAddonProfile(
14619+ enabled=True,
14620+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14621+ )
14622+ },
14623+ )
14624+ dec_14.context.attach_mc(mc_14)
14625+ with self.assertRaises(MutuallyExclusiveArgumentError):
14626+ dec_14.update_monitoring_profile_flow_logs(mc_14)
14627+
1443914628
1444014629if __name__ == "__main__":
1444114630 unittest.main()
0 commit comments