You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ad...@apache.org on 2018/05/18 12:19:32 UTC
[ambari] branch trunk updated: AMBARI-23851. No relationship
between generic parameter and method argument (#1278)
This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new a1bc9ca AMBARI-23851. No relationship between generic parameter and method argument (#1278)
a1bc9ca is described below
commit a1bc9ca09cfd835bda9d288191ce34cc6a88a3d4
Author: Doroszlai, Attila <64...@users.noreply.github.com>
AuthorDate: Fri May 18 14:19:28 2018 +0200
AMBARI-23851. No relationship between generic parameter and method argument (#1278)
---
.../server/agent/stomp/AgentHostDataHolder.java | 2 +-
.../server/agent/stomp/AlertDefinitionsHolder.java | 4 +-
.../controller/internal/HostResourceProvider.java | 4 +-
.../ambari/server/events/HostsRemovedEvent.java | 56 +++++-----------------
.../alerts/AlertGroupsUpdateListener.java | 14 +++---
.../server/orm/dao/HostConfigMappingDAO.java | 12 +----
.../org/apache/ambari/server/state/Clusters.java | 5 +-
.../ambari/server/state/cluster/ClustersImpl.java | 4 +-
.../internal/HostResourceProviderTest.java | 3 +-
.../upgrade/HostVersionOutOfSyncListenerTest.java | 6 ++-
10 files changed, 35 insertions(+), 75 deletions(-)
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AgentHostDataHolder.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AgentHostDataHolder.java
index 4396be3..06fcc17 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AgentHostDataHolder.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AgentHostDataHolder.java
@@ -103,7 +103,7 @@ public abstract class AgentHostDataHolder<T extends STOMPHostEvent & Hashable> e
/**
* Remove data for the given host.
*/
- public final void onHostRemoved(String hostId) {
+ public final void onHostRemoved(Long hostId) {
data.remove(hostId);
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java
index 703cd82..1080905 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java
@@ -166,8 +166,8 @@ public class AlertDefinitionsHolder extends AgentHostDataHolder<AlertDefinitions
@Subscribe
public void onHostsRemoved(HostsRemovedEvent event) {
- for (String hostName : event.getHostNames()) {
- onHostRemoved(hostName);
+ for (Long hostId : event.getHostIds()) {
+ onHostRemoved(hostId);
}
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
index ac3d5d6..9831e80 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java
@@ -999,6 +999,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider {
private void processDeleteHostRequests(List<HostRequest> requests, Clusters clusters, DeleteStatusMetaData deleteStatusMetaData) throws AmbariException {
Set<String> hostsClusters = new HashSet<>();
Set<String> hostNames = new HashSet<>();
+ Set<Long> hostIds = new HashSet<>();
Set<Cluster> allClustersWithHosts = new HashSet<>();
TreeMap<String, TopologyCluster> topologyUpdates = new TreeMap<>();
for (HostRequest hostRequest : requests) {
@@ -1006,6 +1007,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider {
String hostname = hostRequest.getHostname();
Long hostId = clusters.getHost(hostname).getHostId();
hostNames.add(hostname);
+ hostIds.add(hostId);
if (hostRequest.getClusterName() != null) {
hostsClusters.add(hostRequest.getClusterName());
@@ -1066,7 +1068,7 @@ public class HostResourceProvider extends AbstractControllerResourceProvider {
logicalRequest.removeHostRequestByHostName(hostname);
}
}
- clusters.publishHostsDeletion(allClustersWithHosts, hostNames);
+ clusters.publishHostsDeletion(hostIds, hostNames);
TopologyUpdateEvent topologyUpdateEvent = new TopologyUpdateEvent(topologyUpdates,
UpdateEventType.DELETE);
topologyHolder.updateData(topologyUpdateEvent);
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/HostsRemovedEvent.java b/ambari-server/src/main/java/org/apache/ambari/server/events/HostsRemovedEvent.java
index e4ceebc..cf9e884 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/HostsRemovedEvent.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/HostsRemovedEvent.java
@@ -20,69 +20,37 @@ package org.apache.ambari.server.events;
import java.util.Collections;
import java.util.Set;
-import org.apache.ambari.server.state.Cluster;
-
/**
* The {@link HostsRemovedEvent} class is fired when the hosts are removed from the
* cluster.
*/
public class HostsRemovedEvent extends AmbariEvent {
- /**
- * The clusters that the removed hosts belonged to.
- */
- private final Set<Cluster> m_clusters;
+ private final Set<Long> hostIds;
+ private final Set<String> hosts;
- /**
- * Removed hosts.
- */
- private final Set<String> m_hosts;
-
- /**
- * Constructor.
- * @param hosts
- * @param clusters
- */
- public HostsRemovedEvent(Set<String> hosts, Set<Cluster> clusters) {
+ public HostsRemovedEvent(Set<String> hosts, Set<Long> hostIds) {
super(AmbariEventType.HOST_REMOVED);
- m_clusters = clusters;
- m_hosts = hosts;
+ this.hostIds = hostIds != null ? hostIds : Collections.emptySet();
+ this.hosts = hosts != null ? hosts : Collections.emptySet();
}
/**
- * The clusters that the hosts belonged to.
- *
- * @return the clusters, or an empty set.
+ * @return names of removed hosts
*/
- public Set<Cluster> getClusters() {
- if (null == m_clusters) {
- return Collections.emptySet();
- }
-
- return m_clusters;
+ public Set<String> getHostNames() {
+ return hosts;
}
/**
- * Removed hosts.
- * @return
+ * @return ids of removed hosts
*/
- public Set<String> getHostNames() {
- if (null == m_hosts) {
- return Collections.emptySet();
- }
-
- return m_hosts;
+ public Set<Long> getHostIds() {
+ return hostIds;
}
- /**
- * {@inheritDoc}
- */
@Override
public String toString() {
- final StringBuilder sb = new StringBuilder("HostsRemovedEvent{");
- sb.append("m_clusters=").append(m_clusters);
- sb.append(", m_hosts=").append(m_hosts);
- sb.append('}');
- return sb.toString();
+ return "HostsRemovedEvent{" + hosts + "}";
}
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/alerts/AlertGroupsUpdateListener.java b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/alerts/AlertGroupsUpdateListener.java
index 46747b2..fdd12e6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/alerts/AlertGroupsUpdateListener.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/alerts/AlertGroupsUpdateListener.java
@@ -19,8 +19,8 @@ package org.apache.ambari.server.events.listeners.alerts;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
-import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.EagerSingleton;
import org.apache.ambari.server.agent.stomp.dto.AlertGroupUpdate;
import org.apache.ambari.server.events.AlertDefinitionDeleteEvent;
@@ -29,9 +29,8 @@ import org.apache.ambari.server.events.UpdateEventType;
import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.events.publishers.STOMPUpdatePublisher;
import org.apache.ambari.server.orm.dao.AlertDispatchDAO;
+import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
import org.apache.ambari.server.orm.entities.AlertGroupEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
@@ -41,8 +40,6 @@ import com.google.inject.Singleton;
@EagerSingleton
public class AlertGroupsUpdateListener {
- private static final Logger LOG = LoggerFactory.getLogger(AlertGroupsUpdateListener.class);
-
@Inject
private STOMPUpdatePublisher STOMPUpdatePublisher;
@@ -55,10 +52,13 @@ public class AlertGroupsUpdateListener {
}
@Subscribe
- public void onAlertDefinitionDeleted(AlertDefinitionDeleteEvent event) throws AmbariException {
+ public void onAlertDefinitionDeleted(AlertDefinitionDeleteEvent event) {
List<AlertGroupUpdate> alertGroupUpdates = new ArrayList<>();
for (AlertGroupEntity alertGroupEntity : alertDispatchDAO.findAllGroups(event.getClusterId())) {
- if (alertGroupEntity.getAlertDefinitions().contains(event.getDefinition().getDefinitionId())) {
+ boolean eventAffectsGroup = alertGroupEntity.getAlertDefinitions().stream()
+ .map(AlertDefinitionEntity::getDefinitionId)
+ .anyMatch(each -> Objects.equals(each, event.getDefinition().getDefinitionId()));
+ if (eventAffectsGroup) {
AlertGroupUpdate alertGroupUpdate = new AlertGroupUpdate(alertGroupEntity);
alertGroupUpdate.getTargets().remove(event.getDefinition().getDefinitionId());
alertGroupUpdates.add(alertGroupUpdate);
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostConfigMappingDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostConfigMappingDAO.java
index 5e43473..3efc4f6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostConfigMappingDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostConfigMappingDAO.java
@@ -26,8 +26,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
@@ -59,7 +57,6 @@ public class HostConfigMappingDAO {
@Inject
private HostDAO hostDAO;
- private final ReadWriteLock gl = new ReentrantReadWriteLock();
private ConcurrentHashMap<Long, Set<HostConfigMapping>> hostConfigMappingByHost;
private volatile boolean cacheLoaded;
@@ -282,9 +279,6 @@ public class HostConfigMappingDAO {
return daoUtils.selectAll(entityManagerProvider.get(), HostConfigMappingEntity.class);
}
- /**
- * @param hostId
- */
@Transactional
public void removeByHostId(Long hostId) {
populateCache();
@@ -308,17 +302,13 @@ public class HostConfigMappingDAO {
}
}
- /**
- * @param clusterId
- * @param hostName
- */
@Transactional
public void removeByClusterAndHostName(final long clusterId, String hostName) {
populateCache();
HostEntity hostEntity = hostDAO.findByName(hostName);
if (hostEntity != null) {
- if (hostConfigMappingByHost.containsKey(hostName)) {
+ if (hostConfigMappingByHost.containsKey(hostEntity.getHostId())) {
// Delete from db
TypedQuery<HostConfigMappingEntity> query = entityManagerProvider.get().createQuery(
"SELECT entity FROM HostConfigMappingEntity entity " +
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java
index 180089f..0795098 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java
@@ -233,11 +233,8 @@ public interface Clusters {
/**
* Publish event set of hosts were removed
- * @param clusters
- * @param hostNames
- * @throws AmbariException
*/
- void publishHostsDeletion(Set<Cluster> clusters, Set<String> hostNames)
+ void publishHostsDeletion(Set<Long> hostIds, Set<String> hostNames)
throws AmbariException;
/**
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
index 50101a7..aa12d7f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
@@ -831,10 +831,10 @@ public class ClustersImpl implements Clusters {
}
@Override
- public void publishHostsDeletion(Set<Cluster> clusters, Set<String> hostNames) throws AmbariException {
+ public void publishHostsDeletion(Set<Long> hostIds, Set<String> hostNames) throws AmbariException {
// Publish the event, using the original list of clusters that the host
// belonged to
- HostsRemovedEvent event = new HostsRemovedEvent(hostNames, clusters);
+ HostsRemovedEvent event = new HostsRemovedEvent(hostNames, hostIds);
eventPublisher.publish(event);
}
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
index f961b68..10aa0f9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
@@ -1084,8 +1084,9 @@ public class HostResourceProviderTest extends EasyMockSupport {
expect(cluster.getClusterId()).andReturn(100L).anyTimes();
expect(cluster.getDesiredConfigs()).andReturn(new HashMap<>()).anyTimes();
clusters.deleteHost("Host100");
- clusters.publishHostsDeletion(Collections.EMPTY_SET, Collections.singleton("Host100"));
+ clusters.publishHostsDeletion(Collections.singleton(1L), Collections.singleton("Host100"));
expect(host1.getHostName()).andReturn("Host100").anyTimes();
+ expect(host1.getHostId()).andReturn(1L).anyTimes();
expect(healthStatus.getHealthStatus()).andReturn(HostHealthStatus.HealthStatus.HEALTHY).anyTimes();
expect(healthStatus.getHealthReport()).andReturn("HEALTHY").anyTimes();
expect(topologyManager.getRequests(Collections.emptyList())).andReturn(Collections.emptyList()).anyTimes();
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListenerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListenerTest.java
index 166076d..50fd87d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListenerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListenerTest.java
@@ -398,7 +398,9 @@ public class HostVersionOutOfSyncListenerTest {
// add the 2nd host
addHost("h2");
clusters.mapHostToCluster("h2", "c1");
- clusters.getHost("h2").setState(HostState.HEALTHY);
+ Host host = clusters.getHost("h2");
+ Long hostId = host.getHostId();
+ host.setState(HostState.HEALTHY);
StackId stackId = new StackId(this.stackId);
RepositoryVersionEntity repositoryVersionEntity = helper.getOrCreateRepositoryVersion(stackId,
@@ -432,7 +434,7 @@ public class HostVersionOutOfSyncListenerTest {
// event handle it
injector.getInstance(UnitOfWork.class).begin();
clusters.deleteHost("h2");
- clusters.publishHostsDeletion(Collections.singleton(c1), Collections.singleton("h2"));
+ clusters.publishHostsDeletion(Collections.singleton(hostId), Collections.singleton("h2"));
injector.getInstance(UnitOfWork.class).end();
assertRepoVersionState("2.2.0", RepositoryVersionState.CURRENT);
assertRepoVersionState("2.2.9-9999", RepositoryVersionState.INSTALLED);
--
To stop receiving notification emails like this one, please contact
adoroszlai@apache.org.