void updateVolumeHostInfo(AllocationAttempt attempt, AllocationCandidate candidate, Long newHost) { List<Object> storageDriverIds = new ArrayList<>(); for (Volume v : attempt.getVolumes()) { if (v.getStorageDriverId() != null) { storageDriverIds.add(v.getStorageDriverId()); StorageDriver d = v.getStorageDriverId() != null ? storageDrivers.get(v.getStorageDriverId()) : null; if (d != null && StorageDriverConstants.SCOPE_LOCAL.equals(DataAccessor.fieldString(d, StorageDriverConstants.FIELD_SCOPE))) { persist = true;
StorageDriver driver = objectManager.loadResource(StorageDriver.class, volume.getStorageDriverId()); if (driver != null) { String accessMode = DataAccessor.fieldString(driver, StorageDriverConstants.FIELD_VOLUME_ACCESS_MODE);
Object d = data.get(VolumeConstants.FIELD_VOLUME_DRIVER); String driver = d != null ? d.toString() : null; Long driverId = volume.getStorageDriverId(); StorageDriver storageDriver = objectManager.loadResource(StorageDriver.class, driverId);
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Volume volume = (Volume) state.getResource(); String driver = DataAccessor.fieldString(volume, VolumeConstants.FIELD_VOLUME_DRIVER); Long driverId = volume.getStorageDriverId(); Integer deviceNum = volume.getDeviceNumber(); StorageDriver storageDriver = objectManager.loadResource(StorageDriver.class, driverId); if (storageDriver == null && StringUtils.isNotBlank(driver)) { storageDriver = objectManager.findAny(StorageDriver.class, STORAGE_DRIVER.ACCOUNT_ID, volume.getAccountId(), STORAGE_DRIVER.REMOVED, null, STORAGE_DRIVER.NAME, driver); } if (storageDriver != null) { driver = storageDriver.getName(); driverId = storageDriver.getId(); deviceNum = -1; } HandlerResult result = new HandlerResult(VolumeConstants.FIELD_VOLUME_DRIVER, driver, VOLUME.DEVICE_NUMBER, deviceNum, VOLUME.STORAGE_DRIVER_ID, driverId); Long hostId = volume.getHostId(); if (storageDriver != null && hostId != null) { if (storagePoolDao.associateVolumeToPool(volume.getId(), storageDriver.getId(), hostId) != null) { result.withShouldContinue(false) .withChainProcessName(objectProcessManager.getStandardProcessName(StandardProcess.DEACTIVATE, volume)); } } return result; }
setStackId(from.getStackId()); setVolumeTemplateId(from.getVolumeTemplateId()); setStorageDriverId(from.getStorageDriverId()); setSizeMb(from.getSizeMb());