payert commented on a change in pull request #3279:
URL: https://github.com/apache/ambari/pull/3279#discussion_r561909402



##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -17,16 +17,27 @@
  */
 package org.apache.ambari.server.upgrade;
 
+import static org.apache.ambari.server.utils.CustomStringUtils.deleteSubstring;

Review comment:
       The same configuration come with the previous Grafana version included 
2.7.5, but then - as a bug the config file updating was not done. This caused 
problem if one upgraded from 2.6.x. Now, that is the reason that code part is 
placed here, because it should have been added here at the previous Grafana 
upgrade.

##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -122,4 +134,169 @@ protected void removeDfsHAInitial() {
       blueprintDAO.merge(blueprintEntity);
     }
   }
+
+  protected void updateAmsGrafanaIniConfig() throws AmbariException {
+    AmbariManagementController ambariManagementController = 
injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters != null) {
+      Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters);
+      if (clusterMap != null && !clusterMap.isEmpty()) {

Review comment:
       Done

##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -122,4 +134,169 @@ protected void removeDfsHAInitial() {
       blueprintDAO.merge(blueprintEntity);
     }
   }
+
+  protected void updateAmsGrafanaIniConfig() throws AmbariException {
+    AmbariManagementController ambariManagementController = 
injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters != null) {
+      Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters);
+      if (clusterMap != null && !clusterMap.isEmpty()) {
+        for (Cluster cluster : clusterMap.values()) {
+          Set<String> installedServices = cluster.getServices().keySet();
+          if (installedServices.contains("AMBARI_METRICS")) {
+            String contentText = 
cluster.getDesiredConfigByType("ams-grafana-ini").getProperties().get("content");

Review comment:
       Very unlikely but still possible. Fixed.

##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -122,4 +134,169 @@ protected void removeDfsHAInitial() {
       blueprintDAO.merge(blueprintEntity);
     }
   }
+
+  protected void updateAmsGrafanaIniConfig() throws AmbariException {
+    AmbariManagementController ambariManagementController = 
injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters != null) {
+      Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters);
+      if (clusterMap != null && !clusterMap.isEmpty()) {
+        for (Cluster cluster : clusterMap.values()) {
+          Set<String> installedServices = cluster.getServices().keySet();
+          if (installedServices.contains("AMBARI_METRICS")) {
+            String contentText = 
cluster.getDesiredConfigByType("ams-grafana-ini").getProperties().get("content");
+            if (contentText != null) {
+              String addAfter;
+              String toInsert;
+              String toFind;
+              String toReplace;
+              StringBuilder content = new StringBuilder(contentText);
+
+              addAfter = "; app_mode = production";
+              toInsert = "\n" +
+                  "\n# instance name, defaults to HOSTNAME environment 
variable value or hostname if HOSTNAME var is empty" +
+                  "\n; instance_name = ${HOSTNAME}";
+              insertAfterIfNotThere(content, addAfter, toInsert);
+
+              addAfter = "logs = {{ams_grafana_log_dir}}";
+              String pluginsConfLine = "plugins = 
/var/lib/ambari-metrics-grafana/plugins";
+              toInsert = "\n" +
+                  "\n# Directory where grafana will automatically scan and 
look for plugins" +
+                  "\n" + pluginsConfLine;
+              insertAfterIfNotThere(content, addAfter, toInsert, 
pluginsConfLine);
+
+              deleteSubstring(content, ";protocol = http\n");
+              deleteSubstring(content, ";http_port = 3000\n");
+              deleteSubstring(content, ";static_root_path = public\n");
+              deleteSubstring(content, ";cert_file =\n");
+              deleteSubstring(content, ";cert_key =\n");
+
+              addAfter = "cert_key = {{ams_grafana_cert_key}}";
+              toInsert = "\n" +
+                  "\n# Unix socket path" +
+                  "\n;socket =";
+              insertAfterIfNotThere(content, addAfter, toInsert);
+
+              toFind = ";password =";
+              toReplace = "# If the password contains # or ; you have to wrap 
it with triple quotes. Ex \"\"\"#password;\"\"\"" +
+                  "\n;password =" +
+                  "\n" +
+                  "\n# Use either URL or the previous fields to configure the 
database" +
+                  "\n# Example: mysql://user:secret@host:port/database" +
+                  "\n;url =";
+              replaceIfNotThere(content, toFind, toReplace);
+
+              addAfter = ";session_life_time = 86400";
+              toInsert = "\n" +

Review comment:
       Right.

##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -122,4 +134,169 @@ protected void removeDfsHAInitial() {
       blueprintDAO.merge(blueprintEntity);
     }
   }
+
+  protected void updateAmsGrafanaIniConfig() throws AmbariException {
+    AmbariManagementController ambariManagementController = 
injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters != null) {
+      Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters);
+      if (clusterMap != null && !clusterMap.isEmpty()) {
+        for (Cluster cluster : clusterMap.values()) {
+          Set<String> installedServices = cluster.getServices().keySet();
+          if (installedServices.contains("AMBARI_METRICS")) {
+            String contentText = 
cluster.getDesiredConfigByType("ams-grafana-ini").getProperties().get("content");
+            if (contentText != null) {
+              String addAfter;
+              String toInsert;
+              String toFind;
+              String toReplace;
+              StringBuilder content = new StringBuilder(contentText);
+
+              addAfter = "; app_mode = production";
+              toInsert = "\n" +

Review comment:
       Right.

##########
File path: 
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog275.java
##########
@@ -122,4 +134,169 @@ protected void removeDfsHAInitial() {
       blueprintDAO.merge(blueprintEntity);
     }
   }
+
+  protected void updateAmsGrafanaIniConfig() throws AmbariException {
+    AmbariManagementController ambariManagementController = 
injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters != null) {
+      Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters);
+      if (clusterMap != null && !clusterMap.isEmpty()) {
+        for (Cluster cluster : clusterMap.values()) {
+          Set<String> installedServices = cluster.getServices().keySet();
+          if (installedServices.contains("AMBARI_METRICS")) {
+            String contentText = 
cluster.getDesiredConfigByType("ams-grafana-ini").getProperties().get("content");
+            if (contentText != null) {
+              String addAfter;
+              String toInsert;
+              String toFind;
+              String toReplace;
+              StringBuilder content = new StringBuilder(contentText);
+
+              addAfter = "; app_mode = production";
+              toInsert = "\n" +
+                  "\n# instance name, defaults to HOSTNAME environment 
variable value or hostname if HOSTNAME var is empty" +
+                  "\n; instance_name = ${HOSTNAME}";
+              insertAfterIfNotThere(content, addAfter, toInsert);
+
+              addAfter = "logs = {{ams_grafana_log_dir}}";
+              String pluginsConfLine = "plugins = 
/var/lib/ambari-metrics-grafana/plugins";

Review comment:
       Right again.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to