You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2018/06/20 19:33:48 UTC
[ambari] 01/02: AMBARI-24154. DB Connectivity Warnings for oozie &
hive show up even after tests are passed
This is an automated email from the ASF dual-hosted git repository.
yusaku pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
commit 7aba3bfb3ad67a85a6b35a8145fb437d0f8cebbd
Author: Alex Antonenko <aa...@hortonworks.com>
AuthorDate: Wed Jun 20 16:22:56 2018 +0300
AMBARI-24154. DB Connectivity Warnings for oozie & hive show up even after tests are passed
---
.../widgets/test_db_connection_widget_view.js | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/ambari-web/app/views/common/configs/widgets/test_db_connection_widget_view.js b/ambari-web/app/views/common/configs/widgets/test_db_connection_widget_view.js
index 98516ff..987e069 100644
--- a/ambari-web/app/views/common/configs/widgets/test_db_connection_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/test_db_connection_widget_view.js
@@ -187,6 +187,7 @@ App.TestDbConnectionWidgetView = App.ConfigWidgetView.extend({
connectToDatabase: function () {
if (this.get('isBtnDisabled')) return;
this.set('isRequestResolved', false);
+ App.db.set('tmp', this.get('parentView.service.serviceName') + '_connection', {});
this.setConnectingStatus(true);
if (App.get('testMode')) {
this.startPolling();
@@ -274,6 +275,51 @@ App.TestDbConnectionWidgetView = App.ConfigWidgetView.extend({
this.set('request', request);
},
+ preparedDBProperties: function() {
+ var propObj = {};
+ var serviceName = this.get('config.serviceName');
+ var serviceConfigs = this.get('controller.stepConfigs').findProperty('serviceName',serviceName).get('configs');
+ for (var key in this.get('propertiesPattern')) {
+ var propName = this.getConnectionProperty(this.get('propertiesPattern')[key], true);
+ propObj[propName] = serviceConfigs.findProperty('name', propName).get('value');
+ }
+ return propObj;
+ }.property(),
+
+ requiredProps: function() {
+ var ranger = App.StackService.find().findProperty('serviceName', 'RANGER');
+ var propertiesMap = {
+ OOZIE: ['oozie.db.schema.name', 'oozie.service.JPAService.jdbc.username', 'oozie.service.JPAService.jdbc.password', 'oozie.service.JPAService.jdbc.driver', 'oozie.service.JPAService.jdbc.url'],
+ HIVE: ['ambari.hive.db.schema.name', 'javax.jdo.option.ConnectionUserName', 'javax.jdo.option.ConnectionPassword', 'javax.jdo.option.ConnectionDriverName', 'javax.jdo.option.ConnectionURL'],
+ KERBEROS: ['kdc_hosts'],
+ RANGER: ranger && App.StackService.find().findProperty('serviceName', 'RANGER').compareCurrentVersion('0.5') > -1 ?
+ ['db_user', 'db_password', 'db_name', 'ranger.jpa.jdbc.url', 'ranger.jpa.jdbc.driver'] :
+ ['db_user', 'db_password', 'db_name', 'ranger_jdbc_connection_url', 'ranger_jdbc_driver']
+ };
+ return propertiesMap[this.get('parentView.service.serviceName')];
+ }.property(),
+
+ getConnectionProperty: function (regexp, isGetName) {
+ var _this = this;
+ var serviceName = this.get('config.serviceName');
+ var serviceConfigs = this.get('controller.stepConfigs').findProperty('serviceName',serviceName).get('configs');
+ var propertyName = _this.get('requiredProps').filter(function (item) {
+ return regexp.test(item);
+ })[0];
+ return (isGetName) ? propertyName : serviceConfigs.findProperty('name', propertyName).get('value');
+ },
+
+ propertiesPattern: function() {
+ var patterns = {
+ db_connection_url: /jdbc\.url|connection_url|connectionurl|kdc_hosts/ig
+ };
+ if (this.get('parentView.service.serviceName') != "KERBEROS") {
+ patterns.user_name = /(username|dblogin|db_user)$/ig;
+ patterns.user_passwd = /(dbpassword|password|db_password)$/ig;
+ }
+ return patterns;
+ }.property('parentView.service.serviceName'),
+
getTaskInfoSuccess: function (data) {
var task = data.Tasks;
this.set('responseFromServer', {
@@ -290,6 +336,7 @@ App.TestDbConnectionWidgetView = App.ConfigWidgetView.extend({
});
this.setResponseStatus('failed');
} else {
+ App.db.set('tmp', this.get('parentView.service.serviceName') + '_connection', this.get('preparedDBProperties'));
this.setResponseStatus('success');
}
}