|
@@ -309,6 +309,81 @@ public class ProfilingIndexTemplateRegistryTests extends ESTestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void testAllResourcesPresentButOutdated() {
|
|
|
+ DiscoveryNode node = DiscoveryNodeUtils.create("node");
|
|
|
+ DiscoveryNodes nodes = DiscoveryNodes.builder().localNodeId("node").masterNodeId("node").add(node).build();
|
|
|
+ Map<String, Integer> componentTemplates = new HashMap<>();
|
|
|
+ Map<String, Integer> composableTemplates = new HashMap<>();
|
|
|
+ Map<String, LifecyclePolicy> policies = new HashMap<>();
|
|
|
+ for (String templateName : registry.getComponentTemplateConfigs().keySet()) {
|
|
|
+ // outdated (or missing) version
|
|
|
+ componentTemplates.put(templateName, frequently() ? ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION - 1 : null);
|
|
|
+ }
|
|
|
+ for (String templateName : registry.getComposableTemplateConfigs().keySet()) {
|
|
|
+ // outdated (or missing) version
|
|
|
+ composableTemplates.put(templateName, frequently() ? ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION - 1 : null);
|
|
|
+ }
|
|
|
+ for (LifecyclePolicy policy : registry.getLifecyclePolicies()) {
|
|
|
+ // make a copy as we're modifying the version mapping
|
|
|
+ Map<String, Object> metadata = new HashMap<>(policy.getMetadata());
|
|
|
+ if (frequently()) {
|
|
|
+ metadata.put("version", ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION - 1);
|
|
|
+ } else {
|
|
|
+ metadata.remove("version");
|
|
|
+ }
|
|
|
+ policies.put(policy.getName(), new LifecyclePolicy(policy.getName(), policy.getPhases(), metadata));
|
|
|
+ }
|
|
|
+ ClusterState clusterState = createClusterState(Settings.EMPTY, componentTemplates, composableTemplates, policies, nodes);
|
|
|
+
|
|
|
+ assertFalse(ProfilingIndexTemplateRegistry.isAllResourcesCreated(clusterState, Settings.EMPTY));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testAllResourcesPresentAndCurrent() {
|
|
|
+ DiscoveryNode node = DiscoveryNodeUtils.create("node");
|
|
|
+ DiscoveryNodes nodes = DiscoveryNodes.builder().localNodeId("node").masterNodeId("node").add(node).build();
|
|
|
+ Map<String, Integer> componentTemplates = new HashMap<>();
|
|
|
+ Map<String, Integer> composableTemplates = new HashMap<>();
|
|
|
+ Map<String, LifecyclePolicy> policies = new HashMap<>();
|
|
|
+ for (String templateName : registry.getComponentTemplateConfigs().keySet()) {
|
|
|
+ componentTemplates.put(templateName, ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION);
|
|
|
+ }
|
|
|
+ for (String templateName : registry.getComposableTemplateConfigs().keySet()) {
|
|
|
+ composableTemplates.put(templateName, ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION);
|
|
|
+ }
|
|
|
+ for (LifecyclePolicy policy : registry.getLifecyclePolicies()) {
|
|
|
+ policies.put(policy.getName(), policy);
|
|
|
+ }
|
|
|
+ ClusterState clusterState = createClusterState(Settings.EMPTY, componentTemplates, composableTemplates, policies, nodes);
|
|
|
+
|
|
|
+ assertTrue(ProfilingIndexTemplateRegistry.isAllResourcesCreated(clusterState, Settings.EMPTY));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testSomeResourcesMissing() {
|
|
|
+ DiscoveryNode node = DiscoveryNodeUtils.create("node");
|
|
|
+ DiscoveryNodes nodes = DiscoveryNodes.builder().localNodeId("node").masterNodeId("node").add(node).build();
|
|
|
+ Map<String, Integer> componentTemplates = new HashMap<>();
|
|
|
+ Map<String, Integer> composableTemplates = new HashMap<>();
|
|
|
+ Map<String, LifecyclePolicy> policies = new HashMap<>();
|
|
|
+ for (String templateName : registry.getComponentTemplateConfigs().keySet()) {
|
|
|
+ if (rarely()) {
|
|
|
+ componentTemplates.put(templateName, ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (String templateName : registry.getComposableTemplateConfigs().keySet()) {
|
|
|
+ if (rarely()) {
|
|
|
+ composableTemplates.put(templateName, ProfilingIndexTemplateRegistry.INDEX_TEMPLATE_VERSION);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (LifecyclePolicy policy : registry.getLifecyclePolicies()) {
|
|
|
+ if (rarely()) {
|
|
|
+ policies.put(policy.getName(), policy);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ClusterState clusterState = createClusterState(Settings.EMPTY, componentTemplates, composableTemplates, policies, nodes);
|
|
|
+
|
|
|
+ assertFalse(ProfilingIndexTemplateRegistry.isAllResourcesCreated(clusterState, Settings.EMPTY));
|
|
|
+ }
|
|
|
+
|
|
|
private ActionResponse verifyComposableTemplateInstalled(
|
|
|
AtomicInteger calledTimes,
|
|
|
ActionType<?> action,
|