|
18 | 18 | package com.cloud.kubernetes.cluster.actionworkers; |
19 | 19 |
|
20 | 20 | import com.cloud.kubernetes.cluster.KubernetesCluster; |
| 21 | +import com.cloud.kubernetes.cluster.KubernetesClusterDetailsVO; |
21 | 22 | import com.cloud.kubernetes.cluster.KubernetesClusterManagerImpl; |
22 | 23 | import com.cloud.kubernetes.cluster.dao.KubernetesClusterDao; |
23 | 24 | import com.cloud.kubernetes.cluster.dao.KubernetesClusterDetailsDao; |
@@ -118,10 +119,55 @@ public void removeVpcTierAllowPortACLRuleTestRemovesOneUnmarkedRuleForOlderClust |
118 | 119 |
|
119 | 120 | kubernetesClusterResourceModifierActionWorker.removeVpcTierAllowPortACLRule(networkMock, 22, 22); |
120 | 121 |
|
| 122 | + Mockito.verify(oldRule1).setReason("Kubernetes cluster cluster-a"); |
| 123 | + Mockito.verify(networkACLItemDaoMock).update(3L, oldRule1); |
121 | 124 | Mockito.verify(networkACLServiceMock).revokeNetworkACLItem(3L); |
122 | 125 | Mockito.verifyNoMoreInteractions(networkACLServiceMock); |
123 | 126 | } |
124 | 127 |
|
| 128 | + private void rememberCleanupDetails() { |
| 129 | + Mockito.doAnswer(invocation -> { |
| 130 | + Mockito.when(kubernetesClusterDetailsDaoMock.findDetail(1L, invocation.getArgument(1))) |
| 131 | + .thenReturn(Mockito.mock(KubernetesClusterDetailsVO.class)); |
| 132 | + return null; |
| 133 | + }).when(kubernetesClusterDetailsDaoMock).addDetail(Mockito.eq(1L), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean()); |
| 134 | + } |
| 135 | + |
| 136 | + @Test |
| 137 | + public void removeVpcTierAllowPortACLRuleTestRetryKeepsOtherClusterUnmarkedRule() throws Exception { |
| 138 | + Mockito.when(kubernetesClusterMock.getId()).thenReturn(1L); |
| 139 | + Mockito.when(kubernetesClusterMock.getUuid()).thenReturn("cluster-a"); |
| 140 | + Mockito.when(networkMock.getNetworkACLId()).thenReturn(10L); |
| 141 | + rememberCleanupDetails(); |
| 142 | + NetworkACLItemVO clusterARule = mockAclItem(1L, 6443, "Kubernetes cluster cluster-a"); |
| 143 | + NetworkACLItemVO clusterBOldRule = mockAclItem(2L, 6443, null); |
| 144 | + Mockito.when(networkACLItemDaoMock.listByACL(10L)).thenReturn(List.of(clusterARule, clusterBOldRule), List.of(clusterBOldRule)); |
| 145 | + |
| 146 | + kubernetesClusterResourceModifierActionWorker.removeVpcTierAllowPortACLRule(networkMock, 6443, 6443); |
| 147 | + kubernetesClusterResourceModifierActionWorker.removeVpcTierAllowPortACLRule(networkMock, 6443, 6443); |
| 148 | + |
| 149 | + Mockito.verify(networkACLServiceMock).revokeNetworkACLItem(1L); |
| 150 | + Mockito.verify(networkACLServiceMock, Mockito.never()).revokeNetworkACLItem(2L); |
| 151 | + Mockito.verify(networkACLItemDaoMock, Mockito.never()).update(Mockito.anyLong(), Mockito.any()); |
| 152 | + } |
| 153 | + |
| 154 | + @Test |
| 155 | + public void removeVpcTierAllowPortACLRuleTestRetryOfOlderClusterRemovesOnlyOneUnmarkedRule() throws Exception { |
| 156 | + Mockito.when(kubernetesClusterMock.getId()).thenReturn(1L); |
| 157 | + Mockito.when(kubernetesClusterMock.getUuid()).thenReturn("cluster-a"); |
| 158 | + Mockito.when(networkMock.getNetworkACLId()).thenReturn(10L); |
| 159 | + rememberCleanupDetails(); |
| 160 | + NetworkACLItemVO oldRule1 = mockAclItem(3L, 22, null); |
| 161 | + NetworkACLItemVO oldRule2 = mockAclItem(4L, 22, null); |
| 162 | + Mockito.when(networkACLItemDaoMock.listByACL(10L)).thenReturn(List.of(oldRule1, oldRule2), List.of(oldRule2)); |
| 163 | + |
| 164 | + kubernetesClusterResourceModifierActionWorker.removeVpcTierAllowPortACLRule(networkMock, 22, 22); |
| 165 | + kubernetesClusterResourceModifierActionWorker.removeVpcTierAllowPortACLRule(networkMock, 22, 22); |
| 166 | + |
| 167 | + Mockito.verify(networkACLServiceMock).revokeNetworkACLItem(3L); |
| 168 | + Mockito.verify(networkACLServiceMock, Mockito.never()).revokeNetworkACLItem(4L); |
| 169 | + } |
| 170 | + |
125 | 171 | @Test |
126 | 172 | public void getKubernetesClusterNodeNamePrefixTestReturnOriginalPrefixWhenNamingAllRequirementsAreMet() { |
127 | 173 | String originalPrefix = "k8s-cluster-01"; |
|
0 commit comments