protected void acquireVip(ModifyVipAttributesStruct s, Completion completion) {
refresh();
if (!acquireCheckModifyVipAttributeStruct(s)) {
completion.success();
return;
}
VipFactory f = vipMgr.getVipFactory(self.getServiceProvider());
VipBaseBackend vip = f.getVip(getSelf());
vip.acquireVipOnBackend(new Completion(completion) {
@Override
public void success() {
logger.debug(String.format("successfully acquired vip[uuid:%s, name:%s, ip:%s] on service[%s]",
self.getUuid(), self.getName(), self.getIp(), s.getServiceProvider()));
VipUseForList useForList = new VipUseForList(self.getUseFor());
useForList.add(s.getUseFor());
VipVO vo = Q.New(VipVO.class).eq(VipVO_.uuid, self.getUuid()).find();
vo.setUseFor(useForList.toString());
dbf.updateAndRefresh(vo);
addPeerL3NetworkUuid(s.getPeerL3NetworkUuid());
completion.success();
}
@Override
public void fail(ErrorCode errorCode) {
completion.fail(errorCode);
}
});
}