2323import com .cloud .kubernetes .cluster .dao .KubernetesClusterDetailsDao ;
2424import com .cloud .kubernetes .cluster .dao .KubernetesClusterVmMapDao ;
2525import com .cloud .kubernetes .version .dao .KubernetesSupportedVersionDao ;
26+ import com .cloud .network .Network ;
27+ import com .cloud .network .vpc .NetworkACLItem ;
28+ import com .cloud .network .vpc .NetworkACLItemDao ;
29+ import com .cloud .network .vpc .NetworkACLItemVO ;
30+ import com .cloud .network .vpc .NetworkACLService ;
2631import org .junit .Assert ;
2732import org .junit .Before ;
2833import org .junit .Test ;
3136import org .mockito .Mockito ;
3237import org .mockito .junit .MockitoJUnitRunner ;
3338
39+ import java .util .List ;
40+
3441@ RunWith (MockitoJUnitRunner .class )
3542public class KubernetesClusterResourceModifierActionWorkerTest {
3643 @ Mock
@@ -51,6 +58,15 @@ public class KubernetesClusterResourceModifierActionWorkerTest {
5158 @ Mock
5259 private KubernetesCluster kubernetesClusterMock ;
5360
61+ @ Mock
62+ private NetworkACLItemDao networkACLItemDaoMock ;
63+
64+ @ Mock
65+ private NetworkACLService networkACLServiceMock ;
66+
67+ @ Mock
68+ private Network networkMock ;
69+
5470 private KubernetesClusterResourceModifierActionWorker kubernetesClusterResourceModifierActionWorker ;
5571
5672 @ Before
@@ -61,6 +77,49 @@ public void setUp() {
6177 kubernetesClusterManagerMock .kubernetesClusterVmMapDao = kubernetesClusterVmMapDaoMock ;
6278
6379 kubernetesClusterResourceModifierActionWorker = new KubernetesClusterResourceModifierActionWorker (kubernetesClusterMock , kubernetesClusterManagerMock );
80+ kubernetesClusterResourceModifierActionWorker .networkACLItemDao = networkACLItemDaoMock ;
81+ kubernetesClusterResourceModifierActionWorker .networkACLService = networkACLServiceMock ;
82+ }
83+
84+ private NetworkACLItemVO mockAclItem (long id , int port , String reason ) {
85+ NetworkACLItemVO aclItem = Mockito .mock (NetworkACLItemVO .class );
86+ Mockito .lenient ().when (aclItem .getId ()).thenReturn (id );
87+ Mockito .lenient ().when (aclItem .getProtocol ()).thenReturn ("TCP" );
88+ Mockito .lenient ().when (aclItem .getSourcePortStart ()).thenReturn (port );
89+ Mockito .lenient ().when (aclItem .getSourcePortEnd ()).thenReturn (port );
90+ Mockito .lenient ().when (aclItem .getAction ()).thenReturn (NetworkACLItem .Action .Allow );
91+ Mockito .lenient ().when (aclItem .getReason ()).thenReturn (reason );
92+ return aclItem ;
93+ }
94+
95+ @ Test
96+ public void removeVpcTierAllowPortACLRuleTestRemovesOnlyThisClusterRules () throws Exception {
97+ Mockito .when (kubernetesClusterMock .getUuid ()).thenReturn ("cluster-a" );
98+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (10L );
99+ NetworkACLItemVO clusterARule = mockAclItem (1L , 6443 , "Kubernetes cluster cluster-a" );
100+ NetworkACLItemVO clusterBRule = mockAclItem (2L , 6443 , "Kubernetes cluster cluster-b" );
101+ NetworkACLItemVO oldRule = mockAclItem (3L , 6443 , null );
102+ Mockito .when (networkACLItemDaoMock .listByACL (10L )).thenReturn (List .of (clusterARule , clusterBRule , oldRule ));
103+
104+ kubernetesClusterResourceModifierActionWorker .removeVpcTierAllowPortACLRule (networkMock , 6443 , 6443 );
105+
106+ Mockito .verify (networkACLServiceMock ).revokeNetworkACLItem (1L );
107+ Mockito .verifyNoMoreInteractions (networkACLServiceMock );
108+ }
109+
110+ @ Test
111+ public void removeVpcTierAllowPortACLRuleTestRemovesOneUnmarkedRuleForOlderClusters () throws Exception {
112+ Mockito .when (kubernetesClusterMock .getUuid ()).thenReturn ("cluster-a" );
113+ Mockito .when (networkMock .getNetworkACLId ()).thenReturn (10L );
114+ NetworkACLItemVO clusterBRule = mockAclItem (2L , 22 , "Kubernetes cluster cluster-b" );
115+ NetworkACLItemVO oldRule1 = mockAclItem (3L , 22 , null );
116+ NetworkACLItemVO oldRule2 = mockAclItem (4L , 22 , null );
117+ Mockito .when (networkACLItemDaoMock .listByACL (10L )).thenReturn (List .of (clusterBRule , oldRule1 , oldRule2 ));
118+
119+ kubernetesClusterResourceModifierActionWorker .removeVpcTierAllowPortACLRule (networkMock , 22 , 22 );
120+
121+ Mockito .verify (networkACLServiceMock ).revokeNetworkACLItem (3L );
122+ Mockito .verifyNoMoreInteractions (networkACLServiceMock );
64123 }
65124
66125 @ Test
0 commit comments