mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
CloudStack CLOUDSTACK-3307
UCS:DB: Same UCS manager can be added multiple times
This commit is contained in:
parent
a5c2d24ee2
commit
84ed1fee6b
@ -208,36 +208,41 @@ public class UcsManagerImpl implements UcsManager {
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) {
|
||||
SearchCriteriaService<UcsManagerVO, UcsManagerVO> q = SearchCriteria2.create(UcsManagerVO.class);
|
||||
q.addAnd(q.getEntity().getUrl(), Op.EQ, cmd.getUrl());
|
||||
UcsManagerVO mgrvo = q.find();
|
||||
if (mgrvo != null) {
|
||||
throw new IllegalArgumentException(String.format("duplicate UCS manager. url[%s] is used by another UCS manager already", cmd.getUrl()));
|
||||
}
|
||||
|
||||
UcsManagerVO vo = new UcsManagerVO();
|
||||
vo.setUuid(UUID.randomUUID().toString());
|
||||
vo.setPassword(cmd.getPassword());
|
||||
vo.setUrl(cmd.getUrl());
|
||||
vo.setUsername(cmd.getUsername());
|
||||
vo.setZoneId(cmd.getZoneId());
|
||||
vo.setName(cmd.getName());
|
||||
public UcsManagerResponse addUcsManager(AddUcsManagerCmd cmd) {
|
||||
SearchCriteriaService<UcsManagerVO, UcsManagerVO> q = SearchCriteria2.create(UcsManagerVO.class);
|
||||
q.addAnd(q.getEntity().getUrl(), Op.EQ, cmd.getUrl());
|
||||
UcsManagerVO mgrvo = q.find();
|
||||
if (mgrvo != null) {
|
||||
throw new IllegalArgumentException(String.format("duplicate UCS manager. url[%s] is used by another UCS manager already", cmd.getUrl()));
|
||||
}
|
||||
|
||||
try {
|
||||
UcsManagerVO vo = new UcsManagerVO();
|
||||
vo.setUuid(UUID.randomUUID().toString());
|
||||
vo.setPassword(cmd.getPassword());
|
||||
vo.setUrl(cmd.getUrl());
|
||||
vo.setUsername(cmd.getUsername());
|
||||
vo.setZoneId(cmd.getZoneId());
|
||||
vo.setName(cmd.getName());
|
||||
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
ucsDao.persist(vo);
|
||||
txn.commit();
|
||||
UcsManagerResponse rsp = new UcsManagerResponse();
|
||||
rsp.setId(String.valueOf(vo.getId()));
|
||||
rsp.setName(vo.getName());
|
||||
rsp.setUrl(vo.getUrl());
|
||||
rsp.setZoneId(String.valueOf(vo.getZoneId()));
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
mgrvo = ucsDao.persist(vo);
|
||||
txn.commit();
|
||||
UcsManagerResponse rsp = new UcsManagerResponse();
|
||||
rsp.setId(String.valueOf(vo.getId()));
|
||||
rsp.setName(vo.getName());
|
||||
rsp.setUrl(vo.getUrl());
|
||||
rsp.setZoneId(String.valueOf(vo.getZoneId()));
|
||||
|
||||
discoverBlades(vo);
|
||||
|
||||
return rsp;
|
||||
discoverBlades(vo);
|
||||
return rsp;
|
||||
} catch (CloudRuntimeException e) {
|
||||
if (mgrvo != null) {
|
||||
ucsDao.remove(mgrvo.getId());
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
private String getCookie(Long ucsMgrId) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user