You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2018/07/20 16:43:55 UTC
[ambari] branch branch-2.7 updated: AMBARI-24322. Log Search /
Ambari upgrade: db config consistency check has warnings (*-logearch-conf
configs). (#1825)
This is an automated email from the ASF dual-hosted git repository.
oleewere pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-2.7 by this push:
new d6e6b9a AMBARI-24322. Log Search / Ambari upgrade: db config consistency check has warnings (*-logearch-conf configs). (#1825)
d6e6b9a is described below
commit d6e6b9ac103093132f87a345f3fd5f63ead327e9
Author: Olivér Szabó <ol...@gmail.com>
AuthorDate: Fri Jul 20 18:43:52 2018 +0200
AMBARI-24322. Log Search / Ambari upgrade: db config consistency check has warnings (*-logearch-conf configs). (#1825)
---
.../ambari/server/upgrade/UpgradeCatalog270.java | 27 +++++++++++++++-----
.../server/upgrade/UpgradeCatalog270Test.java | 29 +++++++---------------
2 files changed, 30 insertions(+), 26 deletions(-)
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog270.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog270.java
index bdeebfa..320bfd7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog270.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog270.java
@@ -259,6 +259,9 @@ public class UpgradeCatalog270 extends AbstractUpgradeCatalog {
public static final String AMBARI_INFRA_OLD_NAME = "AMBARI_INFRA";
public static final String AMBARI_INFRA_NEW_NAME = "AMBARI_INFRA_SOLR";
+ public static final String SERVICE_CONFIG_MAPPING_TABLE = "serviceconfigmapping";
+ public static final String CLUSTER_CONFIG_TABLE = "clusterconfig";
+
// Broken constraints added by Views
public static final String FK_HOSTCOMPONENTDESIREDSTATE_COMPONENT_NAME = "fk_hostcomponentdesiredstate_component_name";
public static final String FK_HOSTCOMPONENTSTATE_COMPONENT_NAME = "fk_hostcomponentstate_component_name";
@@ -1429,7 +1432,7 @@ public class UpgradeCatalog270 extends AbstractUpgradeCatalog {
*
* @throws AmbariException
*/
- protected void updateLogSearchConfigs() throws AmbariException {
+ protected void updateLogSearchConfigs() throws AmbariException, SQLException {
AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
Clusters clusters = ambariManagementController.getClusters();
if (clusters != null) {
@@ -1438,11 +1441,6 @@ public class UpgradeCatalog270 extends AbstractUpgradeCatalog {
ConfigHelper configHelper = injector.getInstance(ConfigHelper.class);
if (clusterMap != null && !clusterMap.isEmpty()) {
for (final Cluster cluster : clusterMap.values()) {
- cluster.getAllConfigs().stream()
- .map(Config::getType)
- .filter(configType -> configType.endsWith("-logsearch-conf"))
- .collect(Collectors.toSet())
- .forEach(configType -> configHelper.removeConfigsByType(cluster, configType));
Config logSearchEnv = cluster.getDesiredConfigByType("logsearch-env");
@@ -1522,11 +1520,28 @@ public class UpgradeCatalog270 extends AbstractUpgradeCatalog {
updateConfigurationPropertiesForCluster(cluster, "logfeeder-output-config", Collections.singletonMap("content", content), true, true);
}
+ DBAccessor dba = dbAccessor != null ? dbAccessor : injector.getInstance(DBAccessor.class); // for testing
+ removeLogSearchPatternConfigs(dba);
}
}
}
}
+ private void removeLogSearchPatternConfigs(DBAccessor dbAccessor) throws SQLException {
+ // remove config types with -logsearch-conf suffix
+ String configSuffix = "-logsearch-conf";
+ String serviceConfigMappingRemoveSQL = String.format(
+ "DELETE FROM %s WHERE config_id IN (SELECT config_id from %s where type_name like '%%%s')",
+ SERVICE_CONFIG_MAPPING_TABLE, CLUSTER_CONFIG_TABLE, configSuffix);
+
+ String clusterConfigRemoveSQL = String.format(
+ "DELETE FROM %s WHERE type_name like '%%%s'",
+ CLUSTER_CONFIG_TABLE, configSuffix);
+
+ dbAccessor.executeQuery(serviceConfigMappingRemoveSQL);
+ dbAccessor.executeQuery(clusterConfigRemoveSQL);
+ }
+
private void removeAdminHandlersFrom(Cluster cluster, String configType) throws AmbariException {
Config logSearchServiceLogsConfig = cluster.getDesiredConfigByType(configType);
if (logSearchServiceLogsConfig != null) {
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java
index 477da85..d91c21f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java
@@ -155,7 +155,6 @@ import java.sql.Timestamp;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -998,31 +997,15 @@ public class UpgradeCatalog270Test {
.addMockedMethod("createConfig")
.createNiceMock();
ConfigHelper configHelper = createMockBuilder(ConfigHelper.class)
- .addMockedMethod("removeConfigsByType")
.addMockedMethod("createConfigType", Cluster.class, StackId.class, AmbariManagementController.class,
String.class, Map.class, String.class, String.class)
.createMock();
expect(injector2.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes();
expect(injector2.getInstance(ConfigHelper.class)).andReturn(configHelper).anyTimes();
+ expect(injector2.getInstance(DBAccessor.class)).andReturn(dbAccessor).anyTimes();
expect(controller.getClusters()).andReturn(clusters).anyTimes();
- Config confSomethingElse1 = easyMockSupport.createNiceMock(Config.class);
- expect(confSomethingElse1.getType()).andReturn("something-else-1");
- Config confSomethingElse2 = easyMockSupport.createNiceMock(Config.class);
- expect(confSomethingElse2.getType()).andReturn("something-else-2");
- Config confLogSearchConf1 = easyMockSupport.createNiceMock(Config.class);
- expect(confLogSearchConf1.getType()).andReturn("service-1-logsearch-conf");
- Config confLogSearchConf2 = easyMockSupport.createNiceMock(Config.class);
- expect(confLogSearchConf2.getType()).andReturn("service-2-logsearch-conf");
-
- Collection<Config> configs = Arrays.asList(confSomethingElse1, confLogSearchConf1, confSomethingElse2, confLogSearchConf2);
-
- expect(cluster.getAllConfigs()).andReturn(configs).atLeastOnce();
- configHelper.removeConfigsByType(cluster, "service-1-logsearch-conf");
- expectLastCall().once();
- configHelper.removeConfigsByType(cluster, "service-2-logsearch-conf");
- expectLastCall().once();
configHelper.createConfigType(anyObject(Cluster.class), anyObject(StackId.class), eq(controller),
eq("logsearch-common-properties"), eq(Collections.emptyMap()), eq("ambari-upgrade"),
eq("Updated logsearch-common-properties during Ambari Upgrade from 2.6.0 to 3.0.0"));
@@ -1131,9 +1114,15 @@ public class UpgradeCatalog270Test {
expect(controller.createConfig(anyObject(Cluster.class), anyObject(StackId.class), anyString(), capture(logFeederOutputConfCapture), anyString(),
EasyMock.anyObject())).andReturn(config).once();
- replay(clusters, cluster);
+ String serviceConfigMapping = "serviceconfigmapping";
+ String clusterConfig = "clusterconfig";
+ dbAccessor.executeQuery(startsWith("DELETE FROM "+ serviceConfigMapping));
+ expectLastCall().once();
+ dbAccessor.executeQuery(startsWith("DELETE FROM "+ clusterConfig));
+ expectLastCall().once();
+
+ replay(clusters, cluster, dbAccessor);
replay(controller, injector2);
- replay(confSomethingElse1, confSomethingElse2, confLogSearchConf1, confLogSearchConf2);
replay(logSearchPropertiesConf, logFeederPropertiesConf);
replay(logFeederLog4jConf, logSearchLog4jConf);
replay(logSearchServiceLogsConf, logSearchAuditLogsConf);