@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); } } } } }
@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); } } } } }
@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); } } } } }
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; }