KNOX-1141
Project: http://git-wip-us.apache.org/repos/asf/knox/repo Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/7d42ffd0 Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/7d42ffd0 Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/7d42ffd0 Branch: refs/heads/KNOX-998-Package_Restructuring Commit: 7d42ffd065c66d810a52a90f8c2dace55f3aceed Parents: 2b77fe1 Author: Phil Zampino <pzamp...@apache.org> Authored: Thu Dec 7 09:36:55 2017 -0500 Committer: Phil Zampino <pzamp...@apache.org> Committed: Wed Jan 3 11:46:14 2018 -0500 ---------------------------------------------------------------------- .../discovery/ambari/AmbariClientCommon.java | 14 ++++-- .../ambari/AmbariConfigurationMonitor.java | 52 ++++++++++++++++---- 2 files changed, 53 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/knox/blob/7d42ffd0/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariClientCommon.java ---------------------------------------------------------------------- diff --git a/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariClientCommon.java b/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariClientCommon.java index a2bf4ea..8e9dd26 100644 --- a/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariClientCommon.java +++ b/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariClientCommon.java @@ -53,10 +53,16 @@ class AmbariClientCommon { Map<String, Map<String, AmbariCluster.ServiceConfiguration>> getActiveServiceConfigurations(String clusterName, ServiceDiscoveryConfig config) { - return getActiveServiceConfigurations(config.getAddress(), - clusterName, - config.getUser(), - config.getPasswordAlias()); + Map<String, Map<String, AmbariCluster.ServiceConfiguration>> activeConfigs = null; + + if (config != null) { + activeConfigs = getActiveServiceConfigurations(config.getAddress(), + clusterName, + config.getUser(), + config.getPasswordAlias()); + } + + return activeConfigs; } http://git-wip-us.apache.org/repos/asf/knox/blob/7d42ffd0/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariConfigurationMonitor.java ---------------------------------------------------------------------- diff --git a/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariConfigurationMonitor.java b/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariConfigurationMonitor.java index e4b5e43..8a6d95b 100644 --- a/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariConfigurationMonitor.java +++ b/gateway-discovery-ambari/src/main/java/org/apache/hadoop/gateway/topology/discovery/ambari/AmbariConfigurationMonitor.java @@ -115,8 +115,10 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { Collection<File> persistedConfigs = FileUtils.listFiles(persistenceDir, new String[]{"conf"}, false); for (File persisted : persistedConfigs) { Properties props = new Properties(); + FileInputStream in = null; try { - props.load(new FileInputStream(persisted)); + in = new FileInputStream(persisted); + props.load(in); addDiscoveryConfig(props.getProperty(PROP_CLUSTER_NAME), new ServiceDiscoveryConfig() { public String getAddress() { @@ -133,6 +135,14 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { }); } catch (IOException e) { log.failedToLoadClusterMonitorServiceDiscoveryConfig(getType(), e); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + // + } + } } } } @@ -145,11 +155,13 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { private void loadClusterVersionData() { File persistenceDir = getPersistenceDir(); if (persistenceDir != null) { - Collection<File> persistedConfigs = FileUtils.listFiles(getPersistenceDir(), new String[]{"ver"}, false); + Collection<File> persistedConfigs = FileUtils.listFiles(persistenceDir, new String[]{"ver"}, false); for (File persisted : persistedConfigs) { Properties props = new Properties(); + FileInputStream in = null; try { - props.load(new FileInputStream(persisted)); + in = new FileInputStream(persisted); + props.load(in); String source = props.getProperty(PROP_CLUSTER_SOURCE); String clusterName = props.getProperty(PROP_CLUSTER_NAME); @@ -166,6 +178,14 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { } catch (IOException e) { log.failedToLoadClusterMonitorConfigVersions(getType(), e); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + // + } + } } } } @@ -207,10 +227,21 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { } private void persist(Properties props, File dest) { + FileOutputStream out = null; try { - props.store(new FileOutputStream(dest), PERSISTED_FILE_COMMENT); + out = new FileOutputStream(dest); + props.store(out, PERSISTED_FILE_COMMENT); + out.flush(); } catch (Exception e) { log.failedToPersistClusterMonitorData(getType(), dest.getAbsolutePath(), e); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + // + } + } } } @@ -433,12 +464,15 @@ class AmbariConfigurationMonitor implements ClusterConfigurationMonitor { Map<String, String> getUpdatedConfigVersions(String address, String clusterName) { Map<String, String> configVersions = new HashMap<>(); - Map<String, Map<String, AmbariCluster.ServiceConfiguration>> serviceConfigs = - ambariClient.getActiveServiceConfigurations(clusterName, getDiscoveryConfig(address, clusterName)); + ServiceDiscoveryConfig sdc = getDiscoveryConfig(address, clusterName); + if (sdc != null) { + Map<String, Map<String, AmbariCluster.ServiceConfiguration>> serviceConfigs = + ambariClient.getActiveServiceConfigurations(clusterName, sdc); - for (Map<String, AmbariCluster.ServiceConfiguration> serviceConfig : serviceConfigs.values()) { - for (AmbariCluster.ServiceConfiguration config : serviceConfig.values()) { - configVersions.put(config.getType(), config.getVersion()); + for (Map<String, AmbariCluster.ServiceConfiguration> serviceConfig : serviceConfigs.values()) { + for (AmbariCluster.ServiceConfiguration config : serviceConfig.values()) { + configVersions.put(config.getType(), config.getVersion()); + } } }