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]