@@ -14623,6 +14623,195 @@ def test_enable_container_network_logs(self):
1462314623 ):
1462414624 dec_8.set_up_addon_profiles(mc_8)
1462514625
14626+ # Case 9: UPDATE - enable HLSM only (no CNL), monitoring with MSI auth enabled
14627+ dec_9 = AKSManagedClusterUpdateDecorator(
14628+ self.cmd,
14629+ self.client,
14630+ {
14631+ "enable_high_log_scale_mode": True,
14632+ },
14633+ ResourceType.MGMT_CONTAINERSERVICE,
14634+ )
14635+ mc_9 = self.models.ManagedCluster(
14636+ location="test_location",
14637+ network_profile=self.models.ContainerServiceNetworkProfile(
14638+ network_plugin="azure",
14639+ network_plugin_mode="overlay",
14640+ network_dataplane="cilium",
14641+ advanced_networking=self.models.AdvancedNetworking(
14642+ enabled=True,
14643+ ),
14644+ ),
14645+ addon_profiles={
14646+ "omsagent": self.models.ManagedClusterAddonProfile(
14647+ enabled=True,
14648+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14649+ )
14650+ },
14651+ )
14652+ dec_9.context.attach_mc(mc_9)
14653+ dec_mc_9 = dec_9.update_monitoring_profile_flow_logs(mc_9)
14654+ # HLSM should be enabled but CNL remains unset — no enableRetinaNetworkFlags change
14655+ # The monitoring_addon_postprocessing_required intermediate should be set
14656+ self.assertTrue(
14657+ dec_9.context.get_intermediate("monitoring_addon_postprocessing_required")
14658+ )
14659+
14660+ # Case 10: UPDATE - disable HLSM while CNL is active -> should ERROR
14661+ dec_10 = AKSManagedClusterUpdateDecorator(
14662+ self.cmd,
14663+ self.client,
14664+ {
14665+ "enable_high_log_scale_mode": False,
14666+ },
14667+ ResourceType.MGMT_CONTAINERSERVICE,
14668+ )
14669+ mc_10 = self.models.ManagedCluster(
14670+ location="test_location",
14671+ network_profile=self.models.ContainerServiceNetworkProfile(
14672+ network_plugin="azure",
14673+ network_plugin_mode="overlay",
14674+ network_dataplane="cilium",
14675+ advanced_networking=self.models.AdvancedNetworking(
14676+ enabled=True,
14677+ ),
14678+ ),
14679+ addon_profiles={
14680+ "omsagent": self.models.ManagedClusterAddonProfile(
14681+ enabled=True,
14682+ config={
14683+ CONST_MONITORING_USING_AAD_MSI_AUTH: "true",
14684+ "enableRetinaNetworkFlags": "True",
14685+ },
14686+ )
14687+ },
14688+ )
14689+ dec_10.context.attach_mc(mc_10)
14690+ with self.assertRaises(MutuallyExclusiveArgumentError):
14691+ dec_10.update_monitoring_profile_flow_logs(mc_10)
14692+
14693+ # Case 11: UPDATE - enable CNL + HLSM=true together
14694+ dec_11 = AKSManagedClusterUpdateDecorator(
14695+ self.cmd,
14696+ self.client,
14697+ {
14698+ "enable_container_network_logs": True,
14699+ "enable_high_log_scale_mode": True,
14700+ },
14701+ ResourceType.MGMT_CONTAINERSERVICE,
14702+ )
14703+ mc_11 = self.models.ManagedCluster(
14704+ location="test_location",
14705+ network_profile=self.models.ContainerServiceNetworkProfile(
14706+ network_plugin="azure",
14707+ network_plugin_mode="overlay",
14708+ network_dataplane="cilium",
14709+ advanced_networking=self.models.AdvancedNetworking(
14710+ enabled=True,
14711+ ),
14712+ ),
14713+ addon_profiles={
14714+ "omsagent": self.models.ManagedClusterAddonProfile(
14715+ enabled=True,
14716+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14717+ )
14718+ },
14719+ )
14720+ dec_11.context.attach_mc(mc_11)
14721+ dec_mc_11 = dec_11.update_monitoring_profile_flow_logs(mc_11)
14722+ self.assertEqual(
14723+ dec_mc_11.addon_profiles["omsagent"].config["enableRetinaNetworkFlags"],
14724+ "True",
14725+ )
14726+ self.assertTrue(
14727+ dec_11.context.get_intermediate("monitoring_addon_postprocessing_required")
14728+ )
14729+
14730+ # Case 12: UPDATE - enable HLSM without monitoring addon -> should ERROR
14731+ dec_12 = AKSManagedClusterUpdateDecorator(
14732+ self.cmd,
14733+ self.client,
14734+ {
14735+ "enable_high_log_scale_mode": True,
14736+ },
14737+ ResourceType.MGMT_CONTAINERSERVICE,
14738+ )
14739+ mc_12 = self.models.ManagedCluster(
14740+ location="test_location",
14741+ network_profile=self.models.ContainerServiceNetworkProfile(
14742+ network_plugin="azure",
14743+ network_plugin_mode="overlay",
14744+ network_dataplane="cilium",
14745+ advanced_networking=self.models.AdvancedNetworking(
14746+ enabled=True,
14747+ ),
14748+ ),
14749+ )
14750+ dec_12.context.attach_mc(mc_12)
14751+ with self.assertRaises(RequiredArgumentMissingError):
14752+ dec_12.update_monitoring_profile_flow_logs(mc_12)
14753+
14754+ # Case 13: UPDATE - enable HLSM without MSI auth -> should ERROR
14755+ dec_13 = AKSManagedClusterUpdateDecorator(
14756+ self.cmd,
14757+ self.client,
14758+ {
14759+ "enable_high_log_scale_mode": True,
14760+ },
14761+ ResourceType.MGMT_CONTAINERSERVICE,
14762+ )
14763+ mc_13 = self.models.ManagedCluster(
14764+ location="test_location",
14765+ network_profile=self.models.ContainerServiceNetworkProfile(
14766+ network_plugin="azure",
14767+ network_plugin_mode="overlay",
14768+ network_dataplane="cilium",
14769+ advanced_networking=self.models.AdvancedNetworking(
14770+ enabled=True,
14771+ ),
14772+ ),
14773+ addon_profiles={
14774+ "omsagent": self.models.ManagedClusterAddonProfile(
14775+ enabled=True,
14776+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "false"},
14777+ )
14778+ },
14779+ )
14780+ dec_13.context.attach_mc(mc_13)
14781+ with self.assertRaises(RequiredArgumentMissingError):
14782+ dec_13.update_monitoring_profile_flow_logs(mc_13)
14783+
14784+ # Case 14: UPDATE - enable CNL + HLSM=false -> should ERROR
14785+ dec_14 = AKSManagedClusterUpdateDecorator(
14786+ self.cmd,
14787+ self.client,
14788+ {
14789+ "enable_container_network_logs": True,
14790+ "enable_high_log_scale_mode": False,
14791+ },
14792+ ResourceType.MGMT_CONTAINERSERVICE,
14793+ )
14794+ mc_14 = self.models.ManagedCluster(
14795+ location="test_location",
14796+ network_profile=self.models.ContainerServiceNetworkProfile(
14797+ network_plugin="azure",
14798+ network_plugin_mode="overlay",
14799+ network_dataplane="cilium",
14800+ advanced_networking=self.models.AdvancedNetworking(
14801+ enabled=True,
14802+ ),
14803+ ),
14804+ addon_profiles={
14805+ "omsagent": self.models.ManagedClusterAddonProfile(
14806+ enabled=True,
14807+ config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14808+ )
14809+ },
14810+ )
14811+ dec_14.context.attach_mc(mc_14)
14812+ with self.assertRaises(MutuallyExclusiveArgumentError):
14813+ dec_14.update_monitoring_profile_flow_logs(mc_14)
14814+
1462614815
1462714816if __name__ == "__main__":
1462814817 unittest.main()
0 commit comments