protected boolean registerProvider(DataStoreProvider provider) { Map<String, Object> copyParams = new HashMap<String, Object>(); String providerName = provider.getName(); if (providerMap.get(providerName) != null) { s_logger.debug("Did not register data store provider, provider name: " + providerName + " is not unique"); return false; } s_logger.debug("registering data store provider:" + provider.getName()); providerMap.put(providerName, provider); try { boolean registrationResult = provider.configure(copyParams); if (!registrationResult) { providerMap.remove(providerName); s_logger.debug("Failed to register data store provider: " + providerName); return false; } Set<DataStoreProviderType> types = provider.getTypes(); if (types.contains(DataStoreProviderType.PRIMARY)) { primaryDataStoreProviderMgr.registerDriver(provider.getName(), (PrimaryDataStoreDriver)provider.getDataStoreDriver()); primaryDataStoreProviderMgr.registerHostListener(provider.getName(), provider.getHostListener()); } else if (types.contains(DataStoreProviderType.IMAGE)) { imageStoreProviderMgr.registerDriver(provider.getName(), (ImageStoreDriver)provider.getDataStoreDriver()); } } catch (Exception e) { s_logger.debug("configure provider failed", e); providerMap.remove(providerName); return false; } return true; }
@Override public void processHostAboutToBeRemoved(long hostId) { List<DataStoreProvider> providers = _dataStoreProviderMgr.getProviders(); if (providers != null) { for (DataStoreProvider provider : providers) { if (provider instanceof PrimaryDataStoreProvider) { try { HypervisorHostListener hypervisorHostListener = provider.getHostListener(); if (hypervisorHostListener != null) { hypervisorHostListener.hostAboutToBeRemoved(hostId); } } catch (Exception ex) { s_logger.error("hostAboutToBeRemoved(long) failed for storage provider " + provider.getName(), ex); } } } } }
public List<StorageProviderResponse> getCacheDataStoreProviders() { List<StorageProviderResponse> providers = new ArrayList<StorageProviderResponse>(); for (DataStoreProvider provider : providerMap.values()) { if (provider.getTypes().contains(DataStoreProviderType.ImageCache)) { StorageProviderResponse response = new StorageProviderResponse(); response.setName(provider.getName()); response.setType(DataStoreProviderType.ImageCache.toString()); providers.add(response); } } return providers; }
params.put("details", cmd.getDetails()); params.put("scope", scopeType); params.put("providerName", storeProvider.getName()); params.put("role", DataStoreRole.ImageCache); DataStoreLifeCycle lifeCycle = storeProvider.getDataStoreLifeCycle(); DataStore store = null; try {
@Override public PrimaryDataStore getPrimaryDataStore(long dataStoreId) { StoragePoolVO dataStoreVO = dataStoreDao.findByIdIncludingRemoved(dataStoreId); if (dataStoreVO == null) { throw new CloudRuntimeException("Unable to locate datastore with id " + dataStoreId); } String providerName = dataStoreVO.getStorageProviderName(); DataStoreProvider provider = providerManager.getDataStoreProvider(providerName); PrimaryDataStoreImpl dataStore = PrimaryDataStoreImpl.createDataStore(dataStoreVO, driverMaps.get(provider.getName()), provider); return dataStore; }
@Override public long getUsedBytes(StoragePoolVO pool) { DataStoreProvider storeProvider = _dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName()); DataStoreDriver storeDriver = storeProvider.getDataStoreDriver(); if (storeDriver instanceof PrimaryDataStoreDriver) { PrimaryDataStoreDriver primaryStoreDriver = (PrimaryDataStoreDriver)storeDriver; return primaryStoreDriver.getUsedBytes(pool); } throw new CloudRuntimeException("Storage driver in CapacityManagerImpl.getUsedBytes(StoragePoolVO) is not a PrimaryDataStoreDriver."); }
DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle(); DataStore secStore = _dataStoreMgr.getDataStore(storeId, DataStoreRole.Image); lifeCycle.migrateToObjectStore(secStore);
@Override public void processHostRemoved(long hostId, long clusterId) { List<DataStoreProvider> providers = _dataStoreProviderMgr.getProviders(); if (providers != null) { for (DataStoreProvider provider : providers) { if (provider instanceof PrimaryDataStoreProvider) { try { HypervisorHostListener hypervisorHostListener = provider.getHostListener(); if (hypervisorHostListener != null) { hypervisorHostListener.hostRemoved(hostId, clusterId); } } catch (Exception ex) { s_logger.error("hostRemoved(long, long) failed for storage provider " + provider.getName(), ex); } } } } }
throw new InvalidParameterValueException("can't find image store provider: " + providerName); providerName = storeProvider.getName(); // ignored passed provider name and use default image store provider name params.put("details", details); params.put("scope", scopeType); params.put("providerName", storeProvider.getName()); params.put("role", DataStoreRole.Image); DataStoreLifeCycle lifeCycle = storeProvider.getDataStoreLifeCycle();
public List<StorageProviderResponse> getImageDataStoreProviders() { List<StorageProviderResponse> providers = new ArrayList<StorageProviderResponse>(); for (DataStoreProvider provider : providerMap.values()) { if (provider.getTypes().contains(DataStoreProviderType.IMAGE)) { StorageProviderResponse response = new StorageProviderResponse(); response.setName(provider.getName()); response.setType(DataStoreProvider.DataStoreProviderType.IMAGE.toString()); providers.add(response); } } return providers; }
@Override public void connectHostToSharedPool(long hostId, long poolId) throws StorageUnavailableException, StorageConflictException { StoragePool pool = (StoragePool)_dataStoreMgr.getDataStore(poolId, DataStoreRole.Primary); assert (pool.isShared()) : "Now, did you actually read the name of this method?"; s_logger.debug("Adding pool " + pool.getName() + " to host " + hostId); DataStoreProvider provider = _dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName()); HypervisorHostListener listener = hostListeners.get(provider.getName()); listener.hostConnect(hostId, pool.getId()); }
@Override public long getUsedIops(StoragePoolVO pool) { DataStoreProvider storeProvider = _dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName()); DataStoreDriver storeDriver = storeProvider.getDataStoreDriver(); if (storeDriver instanceof PrimaryDataStoreDriver) { PrimaryDataStoreDriver primaryStoreDriver = (PrimaryDataStoreDriver)storeDriver; return primaryStoreDriver.getUsedIops(pool); } throw new CloudRuntimeException("Storage driver in CapacityManagerImpl.getUsedIops(StoragePoolVO) is not a PrimaryDataStoreDriver."); }
StoragePoolVO storagePool = _storagePoolDao.findById(id); DataStoreProvider dataStoreProvider = _dataStoreProviderMgr.getDataStoreProvider(storagePool.getStorageProviderName()); DataStoreLifeCycle dataStoreLifeCycle = dataStoreProvider.getDataStoreLifeCycle();
@Override public void processHostAdded(long hostId) { List<DataStoreProvider> providers = _dataStoreProviderMgr.getProviders(); if (providers != null) { for (DataStoreProvider provider : providers) { if (provider instanceof PrimaryDataStoreProvider) { try { HypervisorHostListener hypervisorHostListener = provider.getHostListener(); if (hypervisorHostListener != null) { hypervisorHostListener.hostAdded(hostId); } } catch (Exception ex) { s_logger.error("hostAdded(long) failed for storage provider " + provider.getName(), ex); } } } } }
params.put("name", cmd.getStoragePoolName()); params.put("details", details); params.put("providerName", storeProvider.getName()); params.put("managed", cmd.isManaged()); params.put("capacityBytes", cmd.getCapacityBytes()); params.put("capacityIops", cmd.getCapacityIops()); DataStoreLifeCycle lifeCycle = storeProvider.getDataStoreLifeCycle(); DataStore store = null; try {
public List<StorageProviderResponse> getPrimaryDataStoreProviders() { List<StorageProviderResponse> providers = new ArrayList<StorageProviderResponse>(); for (DataStoreProvider provider : providerMap.values()) { if (provider.getTypes().contains(DataStoreProviderType.PRIMARY)) { StorageProviderResponse response = new StorageProviderResponse(); response.setName(provider.getName()); response.setType(DataStoreProvider.DataStoreProviderType.PRIMARY.toString()); providers.add(response); } } return providers; }
private long getDataObjectSizeIncludingHypervisorSnapshotReserve(Volume volume, StoragePool pool) { DataStoreProvider storeProvider = _dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName()); DataStoreDriver storeDriver = storeProvider.getDataStoreDriver(); if (storeDriver instanceof PrimaryDataStoreDriver) { PrimaryDataStoreDriver primaryStoreDriver = (PrimaryDataStoreDriver)storeDriver; VolumeInfo volumeInfo = volFactory.getVolume(volume.getId()); return primaryStoreDriver.getDataObjectSizeIncludingHypervisorSnapshotReserve(volumeInfo, pool); } return volume.getSize(); }
@ActionEvent(eventType = EventTypes.EVENT_ENABLE_PRIMARY_STORAGE, eventDescription = "enable storage pool") private void enablePrimaryStoragePool(StoragePoolVO primaryStorage) { if (!primaryStorage.getStatus().equals(StoragePoolStatus.Disabled)) { throw new InvalidParameterValueException("Primary storage with id " + primaryStorage.getId() + " cannot be enabled. Storage pool state : " + primaryStorage.getStatus().toString()); } DataStoreProvider provider = _dataStoreProviderMgr.getDataStoreProvider(primaryStorage.getStorageProviderName()); DataStoreLifeCycle dataStoreLifeCycle = provider.getDataStoreLifeCycle(); DataStore store = _dataStoreMgr.getDataStore(primaryStorage.getId(), DataStoreRole.Primary); ((PrimaryDataStoreLifeCycle)dataStoreLifeCycle).enableStoragePool(store); }
DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle(); if (pool == null) { Map<String, Object> params = new HashMap<String, Object>(); params.put("details", pInfo.getDetails()); params.put("uuid", pInfo.getUuid()); params.put("providerName", provider.getName());
private long getBytesRequiredForTemplate(VMTemplateVO tmpl, StoragePool pool) { DataStoreProvider storeProvider = _dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName()); DataStoreDriver storeDriver = storeProvider.getDataStoreDriver(); if (storeDriver instanceof PrimaryDataStoreDriver) { PrimaryDataStoreDriver primaryStoreDriver = (PrimaryDataStoreDriver)storeDriver; TemplateInfo templateInfo = tmplFactory.getReadyTemplateOnImageStore(tmpl.getId(), pool.getDataCenterId()); return primaryStoreDriver.getBytesRequiredForTemplate(templateInfo, pool); } return tmpl.getSize(); }