@Override public List<DataStore> getImageCacheStores(Scope scope) { return imageDataStoreMgr.listImageCacheStores(scope); }
@Override public boolean migrateToObjectStore(DataStore store) { return imageStoreHelper.convertToStagingStore(store); }
@Override public DataStore initialize(Map<String, Object> dsInfos) { ImageStoreVO ids = imageStoreHelper.createImageStore(dsInfos); return imageStoreMgr.getImageStore(ids.getId()); }
@Override public DataStore getDataStore(long storeId, DataStoreRole role) { try { if (role == DataStoreRole.Primary) { return primaryStoreMgr.getPrimaryDataStore(storeId); } else if (role == DataStoreRole.Image) { return imageDataStoreMgr.getImageStore(storeId); } else if (role == DataStoreRole.ImageCache) { return imageDataStoreMgr.getImageStore(storeId); } } catch (CloudRuntimeException e) { throw e; } throw new CloudRuntimeException("un recognized type" + role); }
@Override public boolean configure(Map<String, Object> params) { lifeCycle = ComponentContext.inject(S3ImageStoreLifeCycleImpl.class); driver = ComponentContext.inject(S3ImageStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); return true; }
@Override public void deleteEntityExtractUrl(DataStore store, String installPath, String downloadUrl, Upload.Type entityType) { // find an endpoint to send command based on the ssvm on which the url was created. EndPoint ep = _epSelector.select(store, downloadUrl); // Delete Symlink at ssvm. In case of volume also delete the volume. DeleteEntityDownloadURLCommand cmd = new DeleteEntityDownloadURLCommand(installPath, entityType, downloadUrl, ((ImageStoreEntity) store).getMountPoint()); Answer ans = null; if (ep == null) { String errMsg = "No remote endpoint to send command, check if host or ssvm is down?"; s_logger.error(errMsg); ans = new Answer(cmd, false, errMsg); } else { ans = ep.sendMessage(cmd); } if (ans == null || !ans.getResult()) { String errorString = "Unable to delete the url " + downloadUrl + " for path " + installPath + " on ssvm, " + ans.getDetails(); s_logger.error(errorString); throw new CloudRuntimeException(errorString); } }
@Override public List<DataStore> getImageStoresByScope(ZoneScope scope) { return imageDataStoreMgr.listImageStoresByScope(scope); }
@Override public List<DataStore> listImageStores() { return imageDataStoreMgr.listImageStores(); }
public long getImageDataStoreId() { return getImageDataStore().getImageStoreId(); }
@Override public DataStore initialize(Map<String, Object> dsInfos) { Long dcId = (Long)dsInfos.get("zoneId"); String url = (String)dsInfos.get("url"); String name = (String)dsInfos.get("name"); ScopeType scope = (ScopeType)dsInfos.get("scope"); String providerName = (String)dsInfos.get("providerName"); DataStoreRole role = (DataStoreRole)dsInfos.get("role"); Map<String, String> details = (Map<String, String>)dsInfos.get("details"); s_logger.info("Trying to add a swift store at " + url + " in data center " + dcId); // just need to insert an entry in DB Map<String, Object> imageStoreParameters = new HashMap<String, Object>(); imageStoreParameters.put("name", name); imageStoreParameters.put("zoneId", dcId); imageStoreParameters.put("url", url); imageStoreParameters.put("protocol", "http"); if (scope != null) { imageStoreParameters.put("scope", scope); } else { imageStoreParameters.put("scope", ScopeType.REGION); } imageStoreParameters.put("providerName", providerName); imageStoreParameters.put("role", role); ImageStoreVO ids = imageStoreHelper.createImageStore(imageStoreParameters, details); return imageStoreMgr.getImageStore(ids.getId()); }
@Override public DataStore getDataStore(String uuid, DataStoreRole role) { if (role == DataStoreRole.Primary) { return primaryStoreMgr.getPrimaryDataStore(uuid); } else if (role == DataStoreRole.Image) { return imageDataStoreMgr.getImageStore(uuid); } throw new CloudRuntimeException("un recognized type" + role); }
@Override public boolean configure(Map<String, Object> params) { lifeCycle = ComponentContext.inject(CloudStackImageStoreLifeCycleImpl.class); driver = ComponentContext.inject(CloudStackImageStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); return true; }
@Override public List<DataStore> listImageCacheStores() { return imageDataStoreMgr.listImageCacheStores(); }
@SuppressWarnings("unchecked") @Override public DataStore initialize(Map<String, Object> dsInfos) { String url = (String)dsInfos.get("url"); String name = (String)dsInfos.get("name"); String providerName = (String)dsInfos.get("providerName"); ScopeType scope = (ScopeType)dsInfos.get("scope"); DataStoreRole role = (DataStoreRole)dsInfos.get("role"); Map<String, String> details = (Map<String, String>)dsInfos.get("details"); s_logger.info("Trying to add a S3 store with endpoint: " + details.get(ApiConstants.S3_END_POINT)); Map<String, Object> imageStoreParameters = new HashMap(); imageStoreParameters.put("name", name); imageStoreParameters.put("url", url); String protocol = "http"; String useHttps = details.get(ApiConstants.S3_HTTPS_FLAG); if (useHttps != null && Boolean.parseBoolean(useHttps)) { protocol = "https"; } imageStoreParameters.put("protocol", protocol); if (scope != null) { imageStoreParameters.put("scope", scope); } else { imageStoreParameters.put("scope", ScopeType.REGION); } imageStoreParameters.put("providerName", providerName); imageStoreParameters.put("role", role); ImageStoreVO ids = imageStoreHelper.createImageStore(imageStoreParameters, details); return imageStoreMgr.getImageStore(ids.getId()); }
@Override public DataStore getImageStore(long zoneId) { List<DataStore> stores = getImageStoresByScope(new ZoneScope(zoneId)); if (stores == null || stores.size() == 0) { return null; } return imageDataStoreMgr.getImageStore(stores); }
@Override public boolean configure(Map<String, Object> params) { lifeCycle = ComponentContext.inject(SampleImageStoreLifeCycleImpl.class); driver = ComponentContext.inject(SampleImageStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); return true; }
@Override public DataStore getImageCacheStore(long zoneId) { List<DataStore> stores = getImageCacheStores(new ZoneScope(zoneId)); if (stores == null || stores.size() == 0) { return null; } return imageDataStoreMgr.getImageStore(stores); }
@Override public boolean configure(Map<String, Object> params) { lifeCycle = ComponentContext.inject(SwiftImageStoreLifeCycleImpl.class); driver = ComponentContext.inject(SwiftImageStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); return true; }
@Override public DataStore getCacheStore(Scope scope) { if (scope.getScopeType() != ScopeType.ZONE) { s_logger.debug("Can only support zone wide cache storage"); return null; } List<DataStore> cacheStores = dataStoreMgr.getImageCacheStores(scope); if ((cacheStores == null) || (cacheStores.size() <= 0)) { s_logger.debug("Can't find staging storage in zone: " + scope.getScopeId()); return null; } return imageStoreMgr.getImageStore(cacheStores); }