@Override
public void run(Map tokens, Object data) {
if (!evtf.isFromThisManagementNode(tokens)) {
return;
}
PrimaryStorageStatusChangedData d = (PrimaryStorageStatusChangedData) data;
if (!PrimaryStorageStatus.Connected.toString().equals(d.getNewStatus())) {
return;
}
SimpleQuery<VolumeVO> q = dbf.createQuery(VolumeVO.class);
q.add(VolumeVO_.primaryStorageUuid, Op.EQ, d.getPrimaryStorageUuid());
q.add(VolumeVO_.status, Op.EQ, VolumeStatus.Ready);
q.add(VolumeVO_.actualSize, Op.NULL);
List<VolumeVO> vols = q.list();
if (vols.isEmpty()) {
return;
}
List<SyncVolumeSizeMsg> msgs = CollectionUtils.transformToList(vols, new Function<SyncVolumeSizeMsg, VolumeVO>() {
@Override
public SyncVolumeSizeMsg call(VolumeVO arg) {
SyncVolumeSizeMsg msg = new SyncVolumeSizeMsg();
msg.setVolumeUuid(arg.getUuid());
bus.makeTargetServiceIdByResourceUuid(msg, VolumeConstant.SERVICE_ID, arg.getUuid());
return msg;
}
});
bus.send(msgs);
}
});