void tryFinishUpgrade(AtomicBoolean anyUpgradeFailed) { assert upgradesInProgress.get() > 0; if (upgradesInProgress.decrementAndGet() == 1) { try { // this is the last upgrade, the templates should now be in the desired state if (anyUpgradeFailed.get()) { logger.info("Templates were partially upgraded to version {}", Version.CURRENT); } else { logger.info("Templates were upgraded successfully to version {}", Version.CURRENT); } // Check upgraders are satisfied after the update completed. If they still // report that changes are required, this might indicate a bug or that something // else tinkering with the templates during the upgrade. final ImmutableOpenMap<String, IndexTemplateMetaData> upgradedTemplates = clusterService.state().getMetaData().getTemplates(); final boolean changesRequired = calculateTemplateChanges(upgradedTemplates).isPresent(); if (changesRequired) { logger.warn("Templates are still reported as out of date after the upgrade. The template upgrade will be retried."); } } finally { final int noMoreUpgrades = upgradesInProgress.decrementAndGet(); assert noMoreUpgrades == 0; } } }
ImmutableOpenMap<String, IndexTemplateMetaData> templates = state.getMetaData().getTemplates();
if (applyPluginUpgraders(metaData.getTemplates(), metaDataUpgrader.indexTemplateMetaDataUpgraders, upgradedMetaData::removeTemplate, (s, indexTemplateMetaData) -> upgradedMetaData.put(indexTemplateMetaData))) { changed = true;
void tryFinishUpgrade(AtomicBoolean anyUpgradeFailed) { assert upgradesInProgress.get() > 0; if (upgradesInProgress.decrementAndGet() == 1) { try { // this is the last upgrade, the templates should now be in the desired state if (anyUpgradeFailed.get()) { logger.info("Templates were partially upgraded to version {}", Version.CURRENT); } else { logger.info("Templates were upgraded successfully to version {}", Version.CURRENT); } // Check upgraders are satisfied after the update completed. If they still // report that changes are required, this might indicate a bug or that something // else tinkering with the templates during the upgrade. final ImmutableOpenMap<String, IndexTemplateMetaData> upgradedTemplates = clusterService.state().getMetaData().getTemplates(); final boolean changesRequired = calculateTemplateChanges(upgradedTemplates).isPresent(); if (changesRequired) { logger.warn("Templates are still reported as out of date after the upgrade. The template upgrade will be retried."); } } finally { final int noMoreUpgrades = upgradesInProgress.decrementAndGet(); assert noMoreUpgrades == 0; } } }
void tryFinishUpgrade(AtomicBoolean anyUpgradeFailed) { assert upgradesInProgress.get() > 0; if (upgradesInProgress.decrementAndGet() == 1) { try { // this is the last upgrade, the templates should now be in the desired state if (anyUpgradeFailed.get()) { logger.info("Templates were partially upgraded to version {}", Version.CURRENT); } else { logger.info("Templates were upgraded successfuly to version {}", Version.CURRENT); } // Check upgraders are satisfied after the update completed. If they still // report that changes are required, this might indicate a bug or that something // else tinkering with the templates during the upgrade. final ImmutableOpenMap<String, IndexTemplateMetaData> upgradedTemplates = clusterService.state().getMetaData().getTemplates(); final boolean changesRequired = calculateTemplateChanges(upgradedTemplates).isPresent(); if (changesRequired) { logger.warn("Templates are still reported as out of date after the upgrade. The template upgrade will be retried."); } } finally { final int noMoreUpgrades = upgradesInProgress.decrementAndGet(); assert noMoreUpgrades == 0; } } }
ImmutableOpenMap<String, IndexTemplateMetaData> templates = state.getMetaData().getTemplates();
ImmutableOpenMap<String, IndexTemplateMetaData> templates = state.getMetaData().getTemplates();
/** * Get the names of templates to delete, if no template is provided the complete list of templates is retrieved */ private Collection<String> getTemplates(Client client) { Collection<String> templatesColl; if (this.templates==null || this.templates.length==0) { // Retrieve all templates ClusterStateRequestBuilder clusterStateRequestBuilder = ClusterStateAction.INSTANCE.newRequestBuilder(client.admin().cluster()) .all().setMetaData(false); ClusterStateResponse clusterStateResponse = clusterStateRequestBuilder.execute().actionGet(); templatesColl = Lists.newArrayList(clusterStateResponse.getState().getMetaData().getTemplates().keysIt()); } else { // Use provided templates templatesColl = Arrays.asList(templates); } return templatesColl; } @Override
/** * Get the names of templates to delete, if no template is provided the complete list of templates is retrieved */ private Collection<String> getTemplates(Client client) { Collection<String> templatesColl; if (this.templates==null || this.templates.length==0) { // Retrieve all templates ClusterStateRequestBuilder clusterStateRequestBuilder = ClusterStateAction.INSTANCE.newRequestBuilder(client.admin().cluster()) .all().setMetaData(false); ClusterStateResponse clusterStateResponse = clusterStateRequestBuilder.execute().actionGet(); templatesColl = Lists.newArrayList(clusterStateResponse.getState().getMetaData().getTemplates().keysIt()); } else { // Use provided templates templatesColl = Arrays.asList(templates); } return templatesColl; } @Override
newPersistentSettings.build(), metaData.getIndices(), metaData.getTemplates(), metaData.getCustoms(), metaData.getConcreteAllIndices(),
/** As of 2.0 we require units for time and byte-sized settings. This methods adds default units to any * persistent settings and template settings that don't specify a unit. **/ public static MetaData addDefaultUnitsIfNeeded(ESLogger logger, MetaData metaData) { Settings newPersistentSettings = addDefaultUnitsIfNeeded( CLUSTER_TIME_SETTINGS, CLUSTER_BYTES_SIZE_SETTINGS, logger, metaData.persistentSettings()); ImmutableOpenMap<String, IndexTemplateMetaData> templates = updateTemplates(logger, metaData.getTemplates()); if (newPersistentSettings != null || templates != null) { return new MetaData( metaData.clusterUUID(), metaData.version(), metaData.transientSettings(), MoreObjects.firstNonNull(newPersistentSettings, metaData.persistentSettings()), metaData.getIndices(), MoreObjects.firstNonNull(templates, metaData.getTemplates()), metaData.getCustoms(), metaData.concreteAllIndices(), metaData.concreteAllOpenIndices(), metaData.concreteAllClosedIndices(), metaData.getAliasAndIndexLookup()); } else { // No changes: return metaData; } }
if (applyPluginUpgraders(metaData.getTemplates(), metaDataUpgrader.indexTemplateMetaDataUpgraders, upgradedMetaData::removeTemplate, (s, indexTemplateMetaData) -> upgradedMetaData.put(indexTemplateMetaData))) { changed = true;
if (applyPluginUpgraders(metaData.getTemplates(), metaDataUpgrader.indexTemplateMetaDataUpgraders, upgradedMetaData::removeTemplate, (s, indexTemplateMetaData) -> upgradedMetaData.put(indexTemplateMetaData))) { changed = true;
if (applyPluginUpgraders(metaData.getTemplates(), metaDataUpgrader.indexTemplateMetaDataUpgraders, upgradedMetaData::removeTemplate, (s, indexTemplateMetaData) -> upgradedMetaData.put(indexTemplateMetaData))) { changed = true;
ImmutableOpenMap<String,IndexTemplateMetaData> templates = metadata.getTemplates(); for (ObjectCursor<String> s : templates.keys()) { IndexTemplateMetaData itmd = templates.get(s.value);