You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2016/06/06 16:36:16 UTC
ambari git commit: AMBARI-17036 - Getting JMX Protocol Values On
Large Cluster Takes Too Long (jonathanhurley)
Repository: ambari
Updated Branches:
refs/heads/trunk b0bc550c1 -> 7593acfda
AMBARI-17036 - Getting JMX Protocol Values On Large Cluster Takes Too Long (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7593acfd
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7593acfd
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7593acfd
Branch: refs/heads/trunk
Commit: 7593acfdacf9ace292b1adb607eebbb15080469f
Parents: b0bc550
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Fri Jun 3 16:05:15 2016 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Mon Jun 6 11:52:53 2016 -0400
----------------------------------------------------------------------
.../controller/AmbariManagementController.java | 10 ++
.../AmbariManagementControllerImpl.java | 11 +++
.../internal/AbstractProviderModule.java | 98 ++++++++++++--------
.../controller/jmx/JMXPropertyProvider.java | 5 +-
.../events/ClusterConfigChangedEvent.java | 2 +-
.../ambari/server/state/ConfigHelper.java | 33 ++-----
.../apache/ambari/server/state/ConfigImpl.java | 9 +-
.../internal/JMXHostProviderTest.java | 39 ++++----
8 files changed, 115 insertions(+), 92 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
index 9f221d5..b488af3 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
@@ -31,6 +31,8 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.controller.internal.RequestStageContainer;
import org.apache.ambari.server.controller.metrics.MetricPropertyProviderFactory;
import org.apache.ambari.server.controller.metrics.timeline.cache.TimelineMetricCacheProvider;
+import org.apache.ambari.server.events.AmbariEvent;
+import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.metadata.RoleCommandOrder;
import org.apache.ambari.server.scheduler.ExecutionScheduleManager;
import org.apache.ambari.server.security.authorization.AuthorizationException;
@@ -825,5 +827,13 @@ public interface AmbariManagementController {
*/
CredentialStoreService getCredentialStoreService();
+ /**
+ * Gets an {@link AmbariEventPublisher} which can be used to send and receive
+ * {@link AmbariEvent}s.
+ *
+ * @return
+ */
+ AmbariEventPublisher getAmbariEventPublisher();
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index fe9204d..ba93d25 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -97,6 +97,7 @@ import org.apache.ambari.server.controller.metrics.MetricPropertyProviderFactory
import org.apache.ambari.server.controller.metrics.timeline.cache.TimelineMetricCacheProvider;
import org.apache.ambari.server.controller.spi.Resource;
import org.apache.ambari.server.customactions.ActionDefinition;
+import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.metadata.ActionMetadata;
import org.apache.ambari.server.metadata.RoleCommandOrder;
import org.apache.ambari.server.orm.dao.ClusterDAO;
@@ -265,6 +266,8 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
private CredentialStoreService credentialStoreService;
@Inject
private ClusterVersionDAO clusterVersionDAO;
+ @Inject
+ private AmbariEventPublisher ambariEventPublisher;
private MaintenanceStateHelper maintenanceStateHelper;
@@ -4729,6 +4732,14 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
return injector.getInstance(MetricPropertyProviderFactory.class);
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AmbariEventPublisher getAmbariEventPublisher() {
+ return injector.getInstance(AmbariEventPublisher.class);
+ }
+
@Override
public KerberosHelper getKerberosHelper() {
return kerberosHelper;
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
index 591441b..5ac66d8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
@@ -63,7 +63,11 @@ import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
import org.apache.ambari.server.controller.utilities.PredicateBuilder;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
import org.apache.ambari.server.controller.utilities.StreamProvider;
+import org.apache.ambari.server.events.ClusterConfigChangedEvent;
+import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.ConfigHelper;
import org.apache.ambari.server.state.DesiredConfig;
import org.apache.ambari.server.state.HostState;
import org.apache.ambari.server.state.Service;
@@ -72,6 +76,7 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
/**
@@ -107,7 +112,7 @@ public abstract class AbstractProviderModule implements ProviderModule,
private static final Map<String, Map<String, String[]>> jmxDesiredRpcSuffixProperties = new ConcurrentHashMap<>();
private volatile Map<String, Map<String, Map<String, String>>> jmxDesiredRpcSuffixes = new HashMap<String, Map<String, Map<String,String>>>();
private volatile Map<String, String> clusterHdfsSiteConfigVersionMap = new HashMap<String, String>();
- private volatile Map<String, String> clusterJmxProtocolMap = new HashMap<String, String>();
+ private volatile Map<String, String> clusterJmxProtocolMap = new ConcurrentHashMap<>();
private volatile Set<String> metricServerHosts = new HashSet<String>();
private volatile String clusterMetricServerPort = null;
private volatile String clusterMetricServerVipPort = null;
@@ -225,6 +230,14 @@ public abstract class AbstractProviderModule implements ProviderModule,
private MetricPropertyProviderFactory metricPropertyProviderFactory;
/**
+ * Used to respond to the following events:
+ * <ul>
+ * <li>{@link ClusterConfigChangedEvent}
+ */
+ @Inject
+ protected AmbariEventPublisher eventPublisher;
+
+ /**
* The map of host components.
*/
private Map<String, Map<String, String>> clusterHostComponentMap;
@@ -268,6 +281,11 @@ public abstract class AbstractProviderModule implements ProviderModule,
if (metricPropertyProviderFactory == null && managementController != null) {
metricPropertyProviderFactory = managementController.getMetricPropertyProviderFactory();
}
+
+ if (null == eventPublisher && null != managementController) {
+ eventPublisher = managementController.getAmbariEventPublisher();
+ eventPublisher.register(this);
+ }
}
@@ -964,48 +982,36 @@ public abstract class AbstractProviderModule implements ProviderModule,
value.substring(value.lastIndexOf(":") + 1, value.length()) : value;
}
+ /**
+ * Gets the desired configuration version tag for the given cluster and config
+ * type.
+ *
+ * @param clusterName
+ * the cluster name
+ * @param configType
+ * the configuration type (for example {@value hdfs-site}).
+ * @return
+ */
private String getDesiredConfigVersion(String clusterName,
- String configType) throws
- NoSuchParentResourceException, UnsupportedPropertyException,
- SystemException {
+ String configType) {
- // Get config version tag
- ResourceProvider clusterResourceProvider = getResourceProvider(Resource.Type.Cluster);
- Predicate basePredicate = new PredicateBuilder()
- .property(ClusterResourceProvider.CLUSTER_NAME_PROPERTY_ID).equals(clusterName)
- .toPredicate();
+ String versionTag = ConfigHelper.FIRST_VERSION_TAG;
- Set<Resource> clusterResource = null;
try {
+ Clusters clusters = managementController.getClusters();
+ Cluster cluster = clusters.getCluster(clusterName);
+ Map<String, DesiredConfig> desiredConfigs = cluster.getDesiredConfigs();
- Set<String> propertyIds = new HashSet<String>();
- propertyIds.add(ClusterResourceProvider.CLUSTER_NAME_PROPERTY_ID);
- propertyIds.add(ClusterResourceProvider.CLUSTER_DESIRED_CONFIGS_PROPERTY_ID);
-
- Map<String, String> requestInfoProperties = new HashMap<String, String>();
- requestInfoProperties.put(ClusterResourceProvider.GET_IGNORE_PERMISSIONS_PROPERTY_ID, "true");
-
- Request readRequest = PropertyHelper.getReadRequest(propertyIds,
- requestInfoProperties, null, null, null);
-
- clusterResource = clusterResourceProvider.getResources(readRequest, basePredicate);
- } catch (NoSuchResourceException e) {
- LOG.error("Resource for the desired config not found. " + e);
- }
-
- String versionTag = "version1";
- if (clusterResource != null) {
- for (Resource resource : clusterResource) {
- Map<String, Object> configs =
- resource.getPropertiesMap().get(ClusterResourceProvider.CLUSTER_DESIRED_CONFIGS_PROPERTY_ID);
- if (configs != null) {
- DesiredConfig config = (DesiredConfig) configs.get(configType);
- if (config != null) {
- versionTag = config.getTag();
- }
- }
+ DesiredConfig config = desiredConfigs.get(configType);
+ if (config != null) {
+ versionTag = config.getTag();
}
+ } catch (AmbariException ambariException) {
+ LOG.error(
+ "Unable to lookup the desired configuration tag for {} on cluster {}, defaulting to {}",
+ configType, clusterName, versionTag, ambariException);
}
+
return versionTag;
}
@@ -1182,7 +1188,11 @@ public abstract class AbstractProviderModule implements ProviderModule,
@Override
public String getJMXProtocol(String clusterName, String componentName) {
- String jmxProtocolString = clusterJmxProtocolMap.get(clusterName);
+ String mapKey = String.format("%s-%s", clusterName, componentName);
+ String jmxProtocolString = clusterJmxProtocolMap.get(mapKey);
+ if (null != jmxProtocolString) {
+ return jmxProtocolString;
+ }
try {
if (componentName.equals("NAMENODE") || componentName.equals("DATANODE") || componentName.equals("RESOURCEMANAGER") || componentName.equals("NODEMANAGER") || componentName.equals("JOURNALNODE") || componentName.equals("HISTORYSERVER")) {
@@ -1196,7 +1206,6 @@ public abstract class AbstractProviderModule implements ProviderModule,
newSiteConfigVersion, config,
jmxDesiredProperties.get(componentName));
jmxProtocolString = getJMXProtocolString(protocolMap.get(componentName));
- clusterJmxProtocolMap.put(clusterName, jmxProtocolString);
}
} else {
jmxProtocolString = "http";
@@ -1220,6 +1229,7 @@ public abstract class AbstractProviderModule implements ProviderModule,
LOG.debug("JMXProtocol = " + jmxProtocolString + ", for clusterName=" + clusterName +
", componentName = " + componentName);
}
+ clusterJmxProtocolMap.put(mapKey, jmxProtocolString);
return jmxProtocolString;
}
@@ -1289,4 +1299,16 @@ public abstract class AbstractProviderModule implements ProviderModule,
}
}
+ /**
+ * Handles {@link ClusterConfigChangedEvent} which means that some caches
+ * should invalidate.
+ *
+ * @param event
+ * the change event.
+ */
+ @Subscribe
+ public void onConfigurationChangedEvent(ClusterConfigChangedEvent event) {
+ clusterJmxProtocolMap.clear();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
index e1a5e22..a315e5c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
@@ -218,7 +218,7 @@ public class JMXPropertyProvider extends ThreadPoolEnabledPropertyProvider {
String clusterName = (String) resource.getPropertyValue(clusterNamePropertyId);
- String protocol = getJMXProtocol(clusterName, componentName);
+ String protocol = jmxHostProvider.getJMXProtocol(clusterName, componentName);
boolean httpsEnabled = false;
@@ -398,9 +398,6 @@ public class JMXPropertyProvider extends ThreadPoolEnabledPropertyProvider {
return port;
}
- private String getJMXProtocol(String clusterName, String componentName) {
- return jmxHostProvider.getJMXProtocol(clusterName, componentName);
- }
private Set<String> getHosts(Resource resource, String clusterName, String componentName) {
return hostNamePropertyId == null ?
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/events/ClusterConfigChangedEvent.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/ClusterConfigChangedEvent.java b/ambari-server/src/main/java/org/apache/ambari/server/events/ClusterConfigChangedEvent.java
index dd37ff9..3ca4900 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/ClusterConfigChangedEvent.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/ClusterConfigChangedEvent.java
@@ -77,7 +77,7 @@ public class ClusterConfigChangedEvent extends AmbariEvent {
*/
@Override
public String toString() {
- StringBuilder buffer = new StringBuilder("ClusterEnvConfigChangedEvent{");
+ StringBuilder buffer = new StringBuilder("ClusterConfigChangedEvent{");
buffer.append("clusterName=").append(getClusterName());
buffer.append(", configType=").append(getConfigType());
buffer.append(", versionTag=").append(getVersionTag());
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
index a3a2bda..1bd0ba9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
@@ -38,32 +38,12 @@ import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.ConfigurationRequest;
import org.apache.ambari.server.orm.TransactionalLocks;
import org.apache.ambari.server.orm.dao.ClusterDAO;
import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
import org.apache.ambari.server.state.PropertyInfo.PropertyType;
import org.apache.ambari.server.state.configgroup.ConfigGroup;
import org.apache.ambari.server.upgrade.UpgradeCatalog170;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.collect.Maps;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import com.google.inject.persist.Transactional;
-
-import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import org.apache.ambari.server.configuration.Configuration;
-import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.orm.dao.ClusterDAO;
-import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
-import org.apache.ambari.server.state.PropertyInfo.PropertyType;
-import org.apache.ambari.server.state.configgroup.ConfigGroup;
-import org.apache.ambari.server.upgrade.UpgradeCatalog170;
import org.apache.ambari.server.utils.SecretReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -112,6 +92,11 @@ public class ConfigHelper {
public static final String HTTPS_ONLY = "HTTPS_ONLY";
/**
+ * The tag given to newly created versions.
+ */
+ public static final String FIRST_VERSION_TAG = "version1";
+
+ /**
* Used to ensure that methods which rely on the completion of
* {@link Transactional} can detect when they are able to run.
*
@@ -831,10 +816,9 @@ public class ConfigHelper {
String authenticatedUserName,
String serviceVersionNote) throws AmbariException {
- String tag = "version1";
-
// create the configuration history entry
- Config baseConfig = createConfig(cluster, controller, configType, tag, properties, propertyAttributes);
+ Config baseConfig = createConfig(cluster, controller, configType, FIRST_VERSION_TAG, properties,
+ propertyAttributes);
if (baseConfig != null) {
cluster.addDesiredConfig(authenticatedUserName,
@@ -888,10 +872,9 @@ public class ConfigHelper {
for (Map.Entry<String, Map<String, String>> entry : batchProperties.entrySet()) {
String type = entry.getKey();
- String tag = "version1";
Map<String, String> properties = entry.getValue();
- Config baseConfig = createConfig(cluster, controller, type, tag, properties,
+ Config baseConfig = createConfig(cluster, controller, type, FIRST_VERSION_TAG, properties,
Collections.<String, Map<String,String>>emptyMap());
if (null != baseConfig) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigImpl.java
index 726e49f..b590c56 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigImpl.java
@@ -33,7 +33,6 @@ import org.apache.ambari.server.orm.dao.ClusterDAO;
import org.apache.ambari.server.orm.dao.ServiceConfigDAO;
import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -423,12 +422,10 @@ public class ConfigImpl implements Config {
cluster.getClusterGlobalLock().writeLock().unlock();
}
- // broadcast the change event for cluster-env config type
- if (StringUtils.equals(getType(), ConfigHelper.CLUSTER_ENV)) {
- ClusterConfigChangedEvent event = new ClusterConfigChangedEvent(cluster.getClusterName(),
- getType(), getTag(), getVersion());
+ // broadcast the change event for the configuration
+ ClusterConfigChangedEvent event = new ClusterConfigChangedEvent(cluster.getClusterName(),
+ getType(), getTag(), getVersion());
eventPublisher.publish(event);
- }
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/7593acfd/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
index 58975f7..9f610f9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
@@ -58,11 +58,11 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.springframework.security.core.context.SecurityContextHolder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.persist.PersistService;
-import org.springframework.security.core.context.SecurityContextHolder;
public class JMXHostProviderTest {
private Injector injector;
@@ -228,7 +228,7 @@ public class JMXHostProviderTest {
String serviceName = "HDFS";
String serviceName2 = "YARN";
String serviceName3 = "MAPREDUCE2";
-
+
createService(clusterName, serviceName, null);
createService(clusterName, serviceName2, null);
createService(clusterName, serviceName3, null);
@@ -309,7 +309,7 @@ public class JMXHostProviderTest {
yarnConfigs.put(RESOURCEMANAGER_HTTPS_PORT, "8090");
yarnConfigs.put(NODEMANAGER_HTTPS_PORT, "8044");
yarnConfigs.put(YARN_HTTPS_POLICY, "HTTPS_ONLY");
-
+
Map<String, String> mapreduceConfigs = new HashMap<String, String>();
mapreduceConfigs.put(MAPREDUCE_HTTPS_PORT, "19889");
mapreduceConfigs.put(MAPREDUCE_HTTPS_POLICY, "HTTPS_ONLY");
@@ -328,7 +328,7 @@ public class JMXHostProviderTest {
"yarn-site", "versionN", yarnConfigs, null);
crReq.setDesiredConfig(Collections.singletonList(cr2));
controller.updateClusters(Collections.singleton(crReq), null);
-
+
ConfigurationRequest cr3 = new ConfigurationRequest(clusterName,
"mapred-site", "versionN", mapreduceConfigs, null);
crReq.setDesiredConfig(Collections.singletonList(cr3));
@@ -418,7 +418,7 @@ public class JMXHostProviderTest {
createHDFSServiceConfigs(true);
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Service);
providerModule.registerResourceProvider(Resource.Type.Configuration);
// Non default port addresses
@@ -438,7 +438,7 @@ public class JMXHostProviderTest {
createHDFSServiceConfigs(false);
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Service);
providerModule.registerResourceProvider(Resource.Type.Configuration);
// Non default port addresses
@@ -458,7 +458,7 @@ public class JMXHostProviderTest {
createConfigsNameNodeHa();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Service);
providerModule.registerResourceProvider(Resource.Type.Configuration);
@@ -475,7 +475,7 @@ public class JMXHostProviderTest {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
// Non default port addresses
@@ -489,10 +489,9 @@ public class JMXHostProviderTest {
@Test
public void testGetHostNames() throws AmbariException {
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
-
-
AmbariManagementController managementControllerMock = createNiceMock(AmbariManagementController.class);
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(managementControllerMock);
+
Clusters clustersMock = createNiceMock(Clusters.class);
Cluster clusterMock = createNiceMock(Cluster.class);
Service serviceMock = createNiceMock(Service.class);
@@ -509,7 +508,6 @@ public class JMXHostProviderTest {
expect(serviceComponentMock.getServiceComponentHosts()).andReturn(hostComponents).anyTimes();
replay(managementControllerMock, clustersMock, clusterMock, serviceMock, serviceComponentMock);
- providerModule.managementController = managementControllerMock;
Set<String> result = providerModule.getHostNames("c1", "DATANODE");
Assert.assertTrue(result.iterator().next().equals("host1"));
@@ -522,7 +520,7 @@ public class JMXHostProviderTest {
ResourceAlreadyExistsException, UnsupportedPropertyException,
SystemException, AmbariException, NoSuchResourceException {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "RESOURCEMANAGER"));
@@ -530,14 +528,14 @@ public class JMXHostProviderTest {
Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "NODEMANAGER"));
Assert.assertEquals("8044", providerModule.getPort("c1", "NODEMANAGER", "localhost", true));
}
-
+
@Test
public void testJMXHistoryServerHttpsPort() throws
NoSuchParentResourceException,
ResourceAlreadyExistsException, UnsupportedPropertyException,
SystemException, AmbariException, NoSuchResourceException {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "HISTORYSERVER"));
@@ -551,7 +549,7 @@ public class JMXHostProviderTest {
ResourceAlreadyExistsException, UnsupportedPropertyException,
SystemException, AmbariException, NoSuchResourceException {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "JOURNALNODE"));
@@ -564,7 +562,7 @@ public class JMXHostProviderTest {
ResourceAlreadyExistsException, UnsupportedPropertyException,
SystemException, AmbariException, NoSuchResourceException {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "DATANODE"));
@@ -579,7 +577,7 @@ public class JMXHostProviderTest {
createConfigs();
- JMXHostProviderModule providerModule = new JMXHostProviderModule();
+ JMXHostProviderModule providerModule = new JMXHostProviderModule(controller);
providerModule.registerResourceProvider(Resource.Type.Cluster);
providerModule.registerResourceProvider(Resource.Type.Configuration);
// Non default port addresses
@@ -630,6 +628,11 @@ public class JMXHostProviderTest {
ResourceProvider configResourceProvider = new ConfigurationResourceProvider(
controller);
+ JMXHostProviderModule(AmbariManagementController ambariManagementController) {
+ super();
+ managementController = ambariManagementController;
+ }
+
@Override
protected ResourceProvider createResourceProvider(Resource.Type type) {
if (type == Resource.Type.Cluster) {