use of com.cloud.ucs.database.UcsBladeVO in project cloudstack by apache.
the class UcsManagerImpl method discoverBlades.
private void discoverBlades(UcsManagerVO ucsMgrVo) {
List<ComputeBlade> blades = listBlades(ucsMgrVo.getId());
for (ComputeBlade b : blades) {
UcsBladeVO vo = new UcsBladeVO();
vo.setDn(b.getDn());
vo.setUcsManagerId(ucsMgrVo.getId());
vo.setUuid(UUID.randomUUID().toString());
bladeDao.persist(vo);
}
}
use of com.cloud.ucs.database.UcsBladeVO in project cloudstack by apache.
the class UcsManagerImpl method deleteUcsManager.
@Override
public void deleteUcsManager(Long id) {
QueryBuilder<UcsBladeVO> serv = QueryBuilder.create(UcsBladeVO.class);
serv.and(serv.entity().getUcsManagerId(), Op.EQ, id);
List<UcsBladeVO> vos = serv.list();
for (UcsBladeVO vo : vos) {
bladeDao.remove(vo.getId());
}
ucsDao.remove(id);
}
use of com.cloud.ucs.database.UcsBladeVO in project cloudstack by apache.
the class UcsManagerImpl method listUcsBlades.
@Override
public ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd) {
QueryBuilder<UcsBladeVO> serv = QueryBuilder.create(UcsBladeVO.class);
serv.and(serv.entity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId());
List<UcsBladeVO> vos = serv.list();
List<UcsBladeResponse> rsps = new ArrayList<UcsBladeResponse>(vos.size());
for (UcsBladeVO vo : vos) {
UcsBladeResponse rsp = bladeVOToResponse(vo);
rsps.add(rsp);
}
ListResponse<UcsBladeResponse> response = new ListResponse<UcsBladeResponse>();
response.setResponses(rsps);
return response;
}
use of com.cloud.ucs.database.UcsBladeVO in project cloudstack by apache.
the class UcsManagerImpl method associateProfileToBlade.
@Override
public UcsBladeResponse associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd) {
QueryBuilder<UcsBladeVO> q = QueryBuilder.create(UcsBladeVO.class);
q.and(q.entity().getUcsManagerId(), Op.EQ, cmd.getUcsManagerId());
q.and(q.entity().getId(), Op.EQ, cmd.getBladeId());
UcsBladeVO bvo = q.find();
if (bvo == null) {
throw new IllegalArgumentException(String.format("cannot find UCS blade[id:%s, ucs manager id:%s]", cmd.getBladeId(), cmd.getUcsManagerId()));
}
if (bvo.getHostId() != null) {
throw new CloudRuntimeException(String.format("blade[id:%s, dn:%s] has been associated with host[id:%s]", bvo.getId(), bvo.getDn(), bvo.getHostId()));
}
UcsManagerVO mgrvo = ucsDao.findById(cmd.getUcsManagerId());
String cookie = getCookie(cmd.getUcsManagerId());
String pdn = cloneProfile(mgrvo.getId(), cmd.getProfileDn(), "profile-for-blade-" + bvo.getId());
String ucscmd = UcsCommands.associateProfileToBlade(cookie, pdn, bvo.getDn());
UcsHttpClient client = new UcsHttpClient(mgrvo.getUrl());
String res = client.call(ucscmd);
int count = 0;
int timeout = 600;
while (count < timeout) {
if (isProfileAssociated(mgrvo.getId(), bvo.getDn())) {
break;
}
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
throw new CloudRuntimeException(e);
}
count += 2;
}
if (count >= timeout) {
throw new CloudRuntimeException(String.format("associating profile[%s] to balde[%s] timeout after 600 seconds", pdn, bvo.getDn()));
}
bvo.setProfileDn(pdn);
bladeDao.update(bvo.getId(), bvo);
UcsBladeResponse rsp = bladeVOToResponse(bvo);
s_logger.debug(String.format("successfully associated profile[%s] to blade[%s]", pdn, bvo.getDn()));
return rsp;
}
Aggregations