Skip to content

Commit 1605b2f

Browse files
server: remove registered userdata when cleanup an account (#7777)
1 parent fdb23da commit 1605b2f

File tree

5 files changed

+20
-0
lines changed

5 files changed

+20
-0
lines changed

engine/schema/src/main/java/com/cloud/user/dao/UserDataDao.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ public interface UserDataDao extends GenericDao<UserDataVO, Long> {
2525

2626
public UserDataVO findByName(long accountId, long domainId, String name);
2727

28+
int removeByAccountId(long accountId);
29+
2830
}

engine/schema/src/main/java/com/cloud/user/dao/UserDataDaoImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,11 @@ public UserDataVO findByName(long accountId, long domainId, String name) {
6363

6464
return findOneBy(sc);
6565
}
66+
67+
@Override
68+
public int removeByAccountId(long accountId) {
69+
SearchCriteria<UserDataVO> sc = userdataSearch.create();
70+
sc.setParameters("accountId", accountId);
71+
return remove(sc);
72+
}
6673
}

server/src/main/java/com/cloud/user/AccountManagerImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@
162162
import com.cloud.user.dao.SSHKeyPairDao;
163163
import com.cloud.user.dao.UserAccountDao;
164164
import com.cloud.user.dao.UserDao;
165+
import com.cloud.user.dao.UserDataDao;
165166
import com.cloud.utils.ConstantTimeComparator;
166167
import com.cloud.utils.NumbersUtil;
167168
import com.cloud.utils.Pair;
@@ -292,6 +293,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
292293
private GlobalLoadBalancerRuleDao _gslbRuleDao;
293294
@Inject
294295
private SSHKeyPairDao _sshKeyPairDao;
296+
@Inject
297+
private UserDataDao userDataDao;
295298

296299
private List<QuerySelector> _querySelectors;
297300

@@ -1089,6 +1092,10 @@ public int compare(NetworkVO network1, NetworkVO network2) {
10891092
for (SSHKeyPairVO keypair : sshkeypairs) {
10901093
_sshKeyPairDao.remove(keypair.getId());
10911094
}
1095+
1096+
// Delete registered UserData
1097+
userDataDao.removeByAccountId(accountId);
1098+
10921099
return true;
10931100
} catch (Exception ex) {
10941101
s_logger.warn("Failed to cleanup account " + account + " due to ", ex);

server/src/test/java/com/cloud/user/AccountManagerImplTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ public void deleteUserAccount() {
164164
sshkeyList.add(sshkey);
165165
Mockito.when(_sshKeyPairDao.listKeyPairs(Mockito.anyLong(), Mockito.anyLong())).thenReturn(sshkeyList);
166166
Mockito.when(_sshKeyPairDao.remove(Mockito.anyLong())).thenReturn(true);
167+
Mockito.when(userDataDao.removeByAccountId(Mockito.anyLong())).thenReturn(222);
167168

168169
Assert.assertTrue(accountManagerImpl.deleteUserAccount(42l));
169170
// assert that this was a clean delete

server/src/test/java/com/cloud/user/AccountManagetImplTestBase.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import com.cloud.user.dao.SSHKeyPairDao;
7474
import com.cloud.user.dao.UserAccountDao;
7575
import com.cloud.user.dao.UserDao;
76+
import com.cloud.user.dao.UserDataDao;
7677
import com.cloud.vm.VirtualMachineManager;
7778
import com.cloud.vm.dao.DomainRouterDao;
7879
import com.cloud.vm.dao.InstanceGroupDao;
@@ -193,6 +194,8 @@ public class AccountManagetImplTestBase {
193194
OrchestrationService _orchSrvc;
194195
@Mock
195196
SSHKeyPairDao _sshKeyPairDao;
197+
@Mock
198+
UserDataDao userDataDao;
196199

197200
@Spy
198201
@InjectMocks

0 commit comments

Comments
 (0)