You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by am...@apache.org on 2018/05/18 15:32:26 UTC
[ambari] branch trunk updated: AMBARI-23892. OneFS Mpack to support
HDP-3.0 (amagyar) (#1313)
This is an automated email from the ASF dual-hosted git repository.
amagyar 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 0d9fb4d AMBARI-23892. OneFS Mpack to support HDP-3.0 (amagyar) (#1313)
0d9fb4d is described below
commit 0d9fb4dad7c3ced0129fd08579e2a57818cc04bc
Author: Attila Magyar <m....@gmail.com>
AuthorDate: Fri May 18 17:32:21 2018 +0200
AMBARI-23892. OneFS Mpack to support HDP-3.0 (amagyar) (#1313)
---
.../app/controllers/global/update_controller.js | 2 +-
.../app/mixins/common/widgets/widget_section.js | 4 +-
.../app/templates/main/service/services/onefs.hbs | 187 ++++++++++++++++++++
ambari-web/app/views.js | 1 +
ambari-web/app/views/main/service/info/summary.js | 2 +-
.../app/views/main/service/services/onefs.js | 189 +++++++++++++++++++++
.../management-packs/isilon-onefs-mpack/pom.xml | 2 +-
.../ONEFS/1.0.0/package/scripts/params_linux.py | 4 -
.../addon-services/ONEFS/1.0.0/service_advisor.py | 5 +-
.../src/main/resources/mpack.json | 5 +-
10 files changed, 386 insertions(+), 15 deletions(-)
diff --git a/ambari-web/app/controllers/global/update_controller.js b/ambari-web/app/controllers/global/update_controller.js
index 9068117..ec2e3c3 100644
--- a/ambari-web/app/controllers/global/update_controller.js
+++ b/ambari-web/app/controllers/global/update_controller.js
@@ -590,7 +590,7 @@ App.UpdateController = Em.Controller.extend({
} else if (/^2.2/.test(App.get('currentStackVersionNumber'))) {
serviceSpecificParams.STORM = 'metrics/api/v1/cluster/summary,metrics/api/v1/topology/summary';
}
- serviceSpecificParams.ONEFS = 'metrics/dfs/*,';
+ serviceSpecificParams.ONEFS = 'metrics/*,';
App.cache.services.forEach(function (service) {
var urlParams = serviceSpecificParams[service.ServiceInfo.service_name];
diff --git a/ambari-web/app/mixins/common/widgets/widget_section.js b/ambari-web/app/mixins/common/widgets/widget_section.js
index 4eabf62..173ee2c 100644
--- a/ambari-web/app/mixins/common/widgets/widget_section.js
+++ b/ambari-web/app/mixins/common/widgets/widget_section.js
@@ -205,9 +205,9 @@ App.WidgetSectionMixin = Ember.Mixin.create({
createLayouts: function (data) {
var self = this;
- var namespaces = App.HDFSService.find().objectAt(0).get('masterComponentGroups');
if (data.items[0]) {
- if (this.get('isHDFSFederatedSummary') && namespaces.length + 2 !== data.items.length) {
+ var hdfs = App.HDFSService.find().objectAt(0);
+ if (hdfs && this.get('isHDFSFederatedSummary') && hdfs.get('masterComponentGroups').length + 2 !== data.items.length) {
this.createFederationWidgetLayouts(data);
} else {
self.getWidgetLayoutSuccessCallback(data);
diff --git a/ambari-web/app/templates/main/service/services/onefs.hbs b/ambari-web/app/templates/main/service/services/onefs.hbs
new file mode 100644
index 0000000..e4d6d27
--- /dev/null
+++ b/ambari-web/app/templates/main/service/services/onefs.hbs
@@ -0,0 +1,187 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+
+<div class="row">
+ {{! Component Section }}
+ <div class="component-summary">
+ {{view view.dashboardMasterComponentView}}
+ <div class="col-md-12">
+ <div class="col-md-10 col-md-offset-2">
+ {{! NameNode Uptime }}
+ <div class="row namenode-uptime col-md-3">
+ <div class="summary-value main-info">{{view.nodeUptime}}</div>
+ <div class="summary-label">{{t dashboard.services.hdfs.nodes.uptime}}</div>
+ </div>
+ {{! NameNode Heap }}
+ <div class="row namenode-heap col-md-3">
+ <div class="summary-value">
+ <div class="main-info"> {{view.nodeHeapPercent}} </div>
+ <div class="info-desc"> {{view.nodeHeap}} </div>
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.nodes.heap}}</div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-12">
+ <div class="col-md-2">
+ {{#if view.hasMultipleMasterGroups}}
+ {{t dashboard.services.hdfs.summary.components}}
+ {{/if}}
+ </div>
+ <div class="col-md-10">
+ {{! Data Nodes }}
+ {{#if view.isDataNodeCreated}}
+ <div {{bindAttr class=":row :component :col-md-3 view.dataNodeComponent.componentName"}}>
+ <div class="summary-value main-info">
+ {{#if App.router.clusterController.isServiceContentFullyLoaded}}
+ <span>
+ {{#view App.ComponentLiveTextView liveComponentsBinding="view.service.dataNodesStarted" totalComponentsBinding="view.service.dataNodesTotal"}}
+ {{view.liveComponents}}/{{view.totalComponents}}
+ {{/view}}
+ </span>
+ {{t common.started}}
+ {{else}}
+ {{t common.loading.eclipses}}
+ {{/if}}
+ </div>
+ <div class="summary-label">
+ <a href="#" {{action filterHosts view.dataNodeComponent}}>{{t dashboard.services.hdfs.datanodes}}</a>
+ </div>
+ </div>
+ {{/if}}
+ {{! indent next row}}
+ <div class="row"></div>
+ {{! Data Node Counts live }}
+ <div class="row datanode-count-live col-md-3">
+ <div class="summary-value">
+ {{#if view.service.metricsNotAvailable}}
+ <div class="main-info">
+ {{t services.service.summary.notAvailable}}
+ </div>
+ {{else}}
+ <span class="main-info" rel="tooltip"
+ {{translateAttr data-original-title="dashboard.services.hdfs.datanode.status.tooltip.live" }}>
+ {{view.service.liveDataNodes.length}}
+ </span>
+ <div class="info-desc">{{t dashboard.services.hdfs.nodes.live}}</div>
+ {{/if}}
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.datanodecounts}}</div>
+ </div>
+ {{! Data Node Counts dead }}
+ <div class="row datanode-count-dead col-md-3">
+ <div class="summary-value">
+ {{#if view.service.metricsNotAvailable}}
+ <div class="main-info">
+ {{t services.service.summary.notAvailable}}
+ </div>
+ {{else}}
+ <span class="main-info" rel="tooltip"
+ {{translateAttr data-original-title="dashboard.services.hdfs.datanode.status.tooltip.dead" }}>
+ {{view.service.deadDataNodes.length}}
+ </span>
+ <div class="info-desc">{{t dashboard.services.hdfs.nodes.dead}}</div>
+ {{/if}}
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.datanodecounts}}</div>
+ </div>
+ {{! Data Node Counts decommission }}
+ <div class="row datanode-count-decommission col-md-3">
+ <div class="summary-value">
+ {{#if view.service.metricsNotAvailable}}
+ <div class="main-info">
+ {{t services.service.summary.notAvailable}}
+ </div>
+ {{else}}
+ <span class="main-info" rel="tooltip"
+ {{translateAttr data-original-title="dashboard.services.hdfs.datanode.status.tooltip.decommission" }}>
+ {{view.service.decommissionDataNodes.length}}
+ </span>
+ <div class="info-desc">{{t dashboard.services.hdfs.nodes.decom}}</div>
+ {{/if}}
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.datanodecounts}}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ {{! left column end }}
+
+ {{! Service Metrics Section }}
+ <div class="col-md-12 metrics-summary">
+ <div class="col-md-2">{{t dashboard.services.hdfs.summary.service-metrics}}</div>
+ <div class="col-md-10">
+ {{! HDFS Capacity (Disk Usage)}}
+ <div class="row dfs-usage col-md-3">
+ <div class="summary-value">
+ <div class="main-info">{{view.dfsUsedDiskPercent}}</div>
+ <div class="info-desc">{{view.dfsUsedDisk}}</div>
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.capacity.dfsUsed}}</div>
+ </div>
+ <div class="row non-dfs-used col-md-3">
+ <div class="summary-value main-info">
+ <div class="main-info">{{view.nonDfsUsedDiskPercent}}</div>
+ <div class="info-desc">{{view.nonDfsUsedDisk}}</div>
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.capacity.nonDfsUsed}}</div>
+ </div>
+ <div class="row capacity-remaining col-md-3">
+ <div class="summary-value">
+ <div class="main-info">{{view.remainingDiskPercent}}</div>
+ <div class="info-desc">{{view.remainingDisk}}</div>
+ </div>
+ <div class="summary-label">{{t dashboard.services.hdfs.capacity.remaining}}</div>
+ </div>
+ {{! indent next row}}
+ <div class="row"></div>
+ {{! Block Errors corrupt }}
+ <div class="row block-errors-corrupt col-md-3">
+ <div class="summary-value main-info">
+ <div class="main-info">{{view.dfsCorruptBlocks}}</div>
+ <div class="info-desc">{{t dashboard.services.hdfs.blockErrors.corrupt}}</div>
+ </div>
+ <div class="summary-label">{{t services.service.summary.blockErrors}}</div>
+ </div>
+ {{! Block Errors missing }}
+ <div class="row block-errors-missing col-md-3">
+ <div class="summary-value main-info">
+ <div class="main-info">{{view.dfsMissingBlocks}}</div>
+ <div class="info-desc">{{t dashboard.services.hdfs.blockErrors.missing}}</div>
+ </div>
+ <div class="summary-label">{{t services.service.summary.blockErrors}}</div>
+ </div>
+ {{! Block Errors replicated }}
+ <div class="row block-errors-replicated col-md-3">
+ <div class="summary-value main-info">
+ <div class="main-info">{{view.dfsUnderReplicatedBlocks}}</div>
+ <div class="info-desc">{{t dashboard.services.hdfs.blockErrors.replicated}}</div>
+ </div>
+ <div class="summary-label">{{t services.service.summary.blockErrors}}</div>
+ </div>
+ {{! indent next row}}
+ <div class="row"></div>
+ {{! Total Files And Directories }}
+ <div class="row total-files-dirs col-md-3">
+ <div class="summary-value main-info">{{view.dfsTotalFiles}}</div>
+ <div class="summary-label">{{t dashboard.services.hdfs.totalFilesAndDirs}}</div>
+ </div>
+ </div>
+ </div>
+ {{! right column end }}
+</div>
\ No newline at end of file
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 44301c4..da64f1d 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -296,6 +296,7 @@ require('views/main/dashboard/config_history_search_box');
require('views/main/service');
require('views/main/service/service');
require('views/main/service/services/hdfs');
+require('views/main/service/services/onefs');
require('views/main/service/services/yarn');
require('views/main/service/services/mapreduce2');
require('views/main/service/services/hbase');
diff --git a/ambari-web/app/views/main/service/info/summary.js b/ambari-web/app/views/main/service/info/summary.js
index 8ebfb92..d7c7a9f 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -80,7 +80,7 @@ App.MainServiceInfoSummaryView = Em.View.extend({
return {
HBASE: App.MainDashboardServiceHbaseView,
HDFS: App.MainDashboardServiceHdfsView,
- ONEFS: App.MainDashboardServiceHdfsView,
+ ONEFS: App.MainDashboardServiceOnefsView,
STORM: App.MainDashboardServiceStormView,
YARN: App.MainDashboardServiceYARNView,
RANGER: App.MainDashboardServiceRangerView,
diff --git a/ambari-web/app/views/main/service/services/onefs.js b/ambari-web/app/views/main/service/services/onefs.js
new file mode 100644
index 0000000..8f7bec4
--- /dev/null
+++ b/ambari-web/app/views/main/service/services/onefs.js
@@ -0,0 +1,189 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+var date = require('utils/date/date');
+var numberUtils = require('utils/number_utils');
+
+function diskPart(i18nKey, totalKey, usedKey) {
+ return Em.computed(totalKey, usedKey, function () {
+ var text = Em.I18n.t(i18nKey);
+ var total = this.get(totalKey);
+ var used = this.get(usedKey);
+ var percent = total > 0 ? ((used * 100) / total).toFixed(2) : 0;
+ if (percent == "NaN" || percent < 0) {
+ percent = Em.I18n.t('services.service.summary.notAvailable') + " ";
+ }
+ return text.format(numberUtils.bytesToSize(used, 1, 'parseFloat'), numberUtils.bytesToSize(total, 1, 'parseFloat'));
+ });
+}
+
+function diskPartPercent(i18nKey, totalKey, usedKey) {
+ return Em.computed(totalKey, usedKey, function () {
+ var text = Em.I18n.t(i18nKey);
+ var total = this.get(totalKey);
+ var used = this.get(usedKey);
+ var percent = total > 0 ? ((used * 100) / total).toFixed(2) : 0;
+ if (percent == "NaN" || percent < 0) {
+ percent = Em.I18n.t('services.service.summary.notAvailable') + " ";
+ }
+ return text.format(percent);
+ });
+}
+
+App.MainDashboardServiceOnefsView = App.MainDashboardServiceView.extend({
+ templateName: require('templates/main/service/services/onefs'),
+ serviceName: 'ONEFS',
+ Chart: App.ChartPieView.extend({
+ service: null,
+ color: '#0066B3',
+ stroke: '#0066B3',
+ palette: new Rickshaw.Color.Palette({
+ scheme: ['rgba(0,102,179,1)', 'rgba(0,102,179,0)']
+ }),
+ data: function () {
+ var remaining = Number(this.get('service.capacityRemaining'));
+ var used = Number(this.get('service.capacityTotal')) - remaining;
+ return [ used, remaining ];
+ }.property('service.capacityUsed', 'service.capacityTotal')
+ }),
+
+ metricsNotAvailableObserver: function () {
+ if(!this.get("service.metricsNotAvailable")) {
+ App.tooltip($("[rel='tooltip']"));
+ }
+ }.observes("service.metricsNotAvailable"),
+
+ willDestroyElement: function() {
+ $("[rel='tooltip']").tooltip('destroy');
+ },
+
+ dataNodesDead: Em.computed.alias('service.dataNodesInstalled'),
+
+ journalNodesLive: function () {
+ return this.get('service.journalNodes').filterProperty("workStatus", "STARTED").get("length");
+ }.property("service.journalNodes.@each.workStatus"),
+
+ journalNodesTotal: Em.computed.alias('service.journalNodes.length'),
+
+ dfsTotalBlocks: Em.computed.formatUnavailable('service.dfsTotalBlocks'),
+
+ dfsTotalFiles: Em.computed.formatUnavailable('service.dfsTotalFiles'),
+
+ dfsCorruptBlocks: Em.computed.formatUnavailable('service.dfsCorruptBlocks'),
+
+ dfsMissingBlocks: Em.computed.formatUnavailable('service.dfsMissingBlocks'),
+
+ dfsUnderReplicatedBlocks: Em.computed.formatUnavailable('service.dfsUnderReplicatedBlocks'),
+
+ nodeUptime: function () {
+ var uptime = this.get('service.nameNodeStartTime');
+ if (uptime && uptime > 0){
+ var diff = App.dateTime() - uptime;
+ if (diff < 0) {
+ diff = 0;
+ }
+ var formatted = date.timingFormat(diff);
+ return this.t('dashboard.services.uptime').format(formatted);
+ }
+ return this.t('services.service.summary.notRunning');
+ }.property("service.nameNodeStartTime"),
+
+ nodeHeapPercent: App.MainDashboardServiceView.formattedHeapPercent('dashboard.services.hdfs.nodes.heapUsedPercent', 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
+ nodeHeap: App.MainDashboardServiceView.formattedHeap('dashboard.services.hdfs.nodes.heapUsed', 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
+
+ dfsUsedDisk: diskPart('dashboard.services.hdfs.capacityUsed', 'service.capacityTotal', 'service.capacityUsed'),
+ dfsUsedDiskPercent: diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 'service.capacityTotal', 'service.capacityUsed'),
+
+ nonDfsUsed: function () {
+ var total = this.get('service.capacityTotal');
+ var remaining = this.get('service.capacityRemaining');
+ var dfsUsed = this.get('service.capacityUsed');
+ return (Em.isNone(total) || Em.isNone(remaining) || Em.isNone(dfsUsed)) ? null : total - remaining - dfsUsed;
+ }.property('service.capacityTotal', 'service.capacityRemaining', 'service.capacityUsed'),
+
+ nonDfsUsedDisk: diskPart('dashboard.services.hdfs.capacityUsed', 'service.capacityTotal', 'nonDfsUsed'),
+ nonDfsUsedDiskPercent: diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 'service.capacityTotal', 'nonDfsUsed'),
+
+ remainingDisk: diskPart('dashboard.services.hdfs.capacityUsed', 'service.capacityTotal', 'service.capacityRemaining'),
+ remainingDiskPercent: diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 'service.capacityTotal', 'service.capacityRemaining'),
+
+ dataNodeComponent: Em.Object.create({
+ componentName: 'DATANODE'
+ }),
+
+ nfsGatewayComponent: Em.Object.create({
+ componentName: 'NFS_GATEWAY'
+ }),
+
+ /**
+ * Define if NFS_GATEWAY is present in the installed stack
+ * @type {Boolean}
+ */
+ isNfsInStack: function () {
+ return App.StackServiceComponent.find().someProperty('componentName', 'NFS_GATEWAY');
+ }.property(),
+
+ journalNodeComponent: Em.Object.create({
+ componentName: 'JOURNALNODE'
+ }),
+
+ /**
+ * @type {string}
+ */
+ safeModeStatus: function () {
+ var safeMode = this.get('service.safeModeStatus');
+ if (Em.isNone(safeMode)) {
+ return Em.I18n.t("services.service.summary.notAvailable");
+ } else if (safeMode.length === 0) {
+ return Em.I18n.t("services.service.summary.safeModeStatus.notInSafeMode");
+ } else {
+ return Em.I18n.t("services.service.summary.safeModeStatus.inSafeMode");
+ }
+ }.property('service.safeModeStatus'),
+
+ /**
+ * @type {string}
+ */
+ upgradeStatus: function () {
+ var upgradeStatus = this.get('service.upgradeStatus');
+ var healthStatus = this.get('service.healthStatus');
+ if (upgradeStatus == 'true') {
+ return Em.I18n.t('services.service.summary.pendingUpgradeStatus.notPending');
+ } else if (upgradeStatus == 'false' && healthStatus == 'green') {
+ return Em.I18n.t('services.service.summary.pendingUpgradeStatus.notFinalized');
+ } else {
+ // upgrade status == null
+ return Em.I18n.t("services.service.summary.notAvailable");
+ }
+ }.property('service.upgradeStatus', 'service.healthStatus'),
+
+ /**
+ * @type {boolean}
+ */
+ isUpgradeStatusWarning: function () {
+ return this.get('service.upgradeStatus') == 'false' && this.get('service.healthStatus') == 'green';
+ }.property('service.upgradeStatus', 'service.healthStatus'),
+
+ isDataNodeCreated: function () {
+ return this.isServiceComponentCreated('DATANODE');
+ }.property('App.router.clusterController.isComponentsStateLoaded'),
+
+ isJournalNodeCreated: function () {
+ return this.isServiceComponentCreated('JOURNALNODE');
+ }.property('App.router.clusterController.isComponentsStateLoaded')
+});
diff --git a/contrib/management-packs/isilon-onefs-mpack/pom.xml b/contrib/management-packs/isilon-onefs-mpack/pom.xml
index 6d5411c..8ca0965 100644
--- a/contrib/management-packs/isilon-onefs-mpack/pom.xml
+++ b/contrib/management-packs/isilon-onefs-mpack/pom.xml
@@ -24,7 +24,7 @@
<name>Isilon OneFS Ambari Management Pack</name>
<url>http://ambari.apache.org/</url>
<properties>
- <minAmbariVersion>3.0.0.0</minAmbariVersion>
+ <minAmbariVersion>2.7.0.0</minAmbariVersion>
<maxAmbariVersion></maxAmbariVersion>
<nifiversion>1.0.0</nifiversion>
<custom.tests>false</custom.tests>
diff --git a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/package/scripts/params_linux.py b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/package/scripts/params_linux.py
index bfa4aae..86642c6 100644
--- a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/package/scripts/params_linux.py
+++ b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/package/scripts/params_linux.py
@@ -24,7 +24,6 @@ from resource_management.libraries.functions.default import default
from resource_management.libraries.functions.get_not_managed_resources import get_not_managed_resources
from resource_management.libraries.resources.hdfs_resource import HdfsResource
from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import format
config = Script.get_config()
@@ -44,9 +43,6 @@ hadoop_conf_dir = conf_select.get_hadoop_conf_dir()
hdfs_site = config['configurations']['hdfs-site']
default_fs = config['configurations']['core-site']['fs.defaultFS']
-java64_home = config['hostLevelParams']['java_home']
-java_exec = format("{java64_home}/bin/java")
-
ambari_libs_dir = "/var/lib/ambari-agent/lib"
import functools
diff --git a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/service_advisor.py b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/service_advisor.py
index 8d4f824..d3997f7 100644
--- a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/service_advisor.py
+++ b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/addon-services/ONEFS/1.0.0/service_advisor.py
@@ -105,7 +105,7 @@ except Exception as e:
traceback.print_exc()
print "Failed to load parent"
else:
- class HDP26ONEFSServiceAdvisor(service_advisor.ServiceAdvisor):
+ class ONEFSServiceAdvisor(service_advisor.ServiceAdvisor):
def getServiceConfigurationRecommendations(self, configs, clusterData, services, hosts):
try:
putCoreSiteProperty = self.putProperty(configs, "core-site", services)
@@ -139,5 +139,4 @@ else:
validation_errors = []
validation_errors.extend(self.toConfigurationValidationProblems(CoreSite(services).validate(), 'core-site'))
validation_errors.extend(self.toConfigurationValidationProblems(HdfsSite(services).validate(), 'hdfs-site'))
- return validation_errors
-
+ return validation_errors
\ No newline at end of file
diff --git a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/mpack.json b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/mpack.json
index f15fcb6..ad8389f 100644
--- a/contrib/management-packs/isilon-onefs-mpack/src/main/resources/mpack.json
+++ b/contrib/management-packs/isilon-onefs-mpack/src/main/resources/mpack.json
@@ -16,9 +16,8 @@
"service_name" : "ONEFS",
"service_version" : "1.0.0",
"applicable_stacks" : [
- {
- "stack_name" : "HDP", "stack_version" : "2.6"
- }
+ { "stack_name" : "HDP", "stack_version" : "2.6" },
+ { "stack_name" : "HDP", "stack_version" : "3.0" }
]
}
]
--
To stop receiving notification emails like this one, please contact
amagyar@apache.org.