Repository: ambari Updated Branches: refs/heads/branch-feature-AMBARI-14714 289c31f4c -> f3520c09e
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/controllers/wizard/step8_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js index cc06b5b..8a704a1 100644 --- a/ambari-web/app/controllers/wizard/step8_controller.js +++ b/ambari-web/app/controllers/wizard/step8_controller.js @@ -933,6 +933,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz */ _startDeploy: function () { this.createCluster(); + this.createServiceGroup(); this.createSelectedServices(); if (!this.get('isAddHost')) { if (this.get('isAddService')) { @@ -991,6 +992,21 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz }, /** + * Creates the servcegroup + * Queued request + * @method createServiceGroup + */ + createServiceGroup: function () { + if (!this.get('isInstaller')) return; + this.addRequestToAjaxQueue({ + name: 'wizard.step8.create_service_group', + data: { + data: JSON.stringify({ "ServiceGroupInfo": { "cluster_name": App.get('clusterName') || App.clusterStatus.get('clusterName'), "service_group_name": App.get('defaultServiceGroupName') }}) + } + }); + }, + + /** * Create selected to install services * Queued request * Skipped if no services where selected! @@ -1018,8 +1034,8 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz selectedStack = App.Stack.find().findProperty('isSelected', true); } return this.get('selectedServices').map(service => selectedStack ? - {"ServiceInfo": { "service_name": service.get('serviceName'), "desired_repository_version_id": selectedStack.get('versionInfoId') }} : - {"ServiceInfo": { "service_name": service.get('serviceName') }}); + {"ServiceInfo": { "service_name": service.get('serviceName'), "service_display_name": service.get('serviceName'), "service_group_name": App.get('defaultServiceGroupName'), "desired_repository_version_id": selectedStack.get('versionInfoId') }} : + {"ServiceInfo": { "service_name": service.get('serviceName'), "service_display_name": service.get('serviceName'), "service_group_name": App.get('defaultServiceGroupName'), }}); }, /** @@ -1076,7 +1092,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz this.addRequestToAjaxQueue({ name: 'wizard.step8.create_components', data: { - data: JSON.stringify({"components": componentsData}), + data: JSON.stringify(componentsData), serviceName: serviceName } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/controllers/wizard/step9_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step9_controller.js b/ambari-web/app/controllers/wizard/step9_controller.js index 9f27f65..e096c4f 100644 --- a/ambari-web/app/controllers/wizard/step9_controller.js +++ b/ambari-web/app/controllers/wizard/step9_controller.js @@ -492,7 +492,7 @@ App.WizardStep9Controller = Em.Controller.extend(App.ReloadPopupMixin, { data = { "context": Em.I18n.t("requestInfo.startAddedServices"), "ServiceInfo": { "state": "STARTED" }, - "urlParams": "ServiceInfo/state=INSTALLED&ServiceInfo/service_name.in(" + servicesList.join(",") + ")¶ms/run_smoke_test=true¶ms/reconfigure_client=false" + "urlParams": "ServiceInfo/state=INSTALLED&ServiceInfo/service_display_name.in(" + servicesList.join(",") + ")¶ms/run_smoke_test=true¶ms/reconfigure_client=false" }; break; default: http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/mappers/service_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js index 3523379..79036d0 100644 --- a/ambari-web/app/mappers/service_mapper.js +++ b/ambari-web/app/mappers/service_mapper.js @@ -21,8 +21,8 @@ var misc = require('utils/misc'); App.serviceMapper = App.QuickDataMapper.create({ model: App.Service, config: { - id: 'ServiceInfo.service_name', - service_name: 'ServiceInfo.service_name', + id: 'ServiceInfo.service_display_name', + service_name: 'ServiceInfo.service_display_name', work_status: 'ServiceInfo.state' }, initialAppLoad: false, @@ -32,15 +32,15 @@ App.serviceMapper = App.QuickDataMapper.create({ var self = this; var passiveStateMap = this.get('passiveStateMap'); json.items.forEach(function (service) { - var cachedService = App.cache['services'].findProperty('ServiceInfo.service_name', service.ServiceInfo.service_name); + var cachedService = App.cache['services'].findProperty('ServiceInfo.service_display_name', service.ServiceInfo.service_display_name); if (cachedService) { // restore service workStatus - App.Service.find(cachedService.ServiceInfo.service_name).set('workStatus', service.ServiceInfo.state); + App.Service.find(cachedService.ServiceInfo.service_display_name).set('workStatus', service.ServiceInfo.state); cachedService.ServiceInfo.state = service.ServiceInfo.state; } else { var serviceData = { ServiceInfo: { - service_name: service.ServiceInfo.service_name, + service_display_name: service.ServiceInfo.service_display_name, state: service.ServiceInfo.state }, host_components: [], @@ -48,7 +48,7 @@ App.serviceMapper = App.QuickDataMapper.create({ }; App.cache['services'].push(serviceData); } - passiveStateMap[service.ServiceInfo.service_name] = service.ServiceInfo.maintenance_state; + passiveStateMap[service.ServiceInfo.service_display_name] = service.ServiceInfo.maintenance_state; }); if (!this.get('initialAppLoad')) { http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/mappers/service_metrics_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/service_metrics_mapper.js b/ambari-web/app/mappers/service_metrics_mapper.js index 87b6149..acdf8a5 100644 --- a/ambari-web/app/mappers/service_metrics_mapper.js +++ b/ambari-web/app/mappers/service_metrics_mapper.js @@ -25,8 +25,8 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ model: App.Service, config: { - id: 'ServiceInfo.service_name', - service_name: 'ServiceInfo.service_name', + id: 'ServiceInfo.service_display_name', + service_name: 'ServiceInfo.service_display_name', work_status: 'ServiceInfo.state', passive_state: 'ServiceInfo.passive_state', $rand: Math.random(), @@ -194,7 +194,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ json.items.forEach(function (component) { var serviceName = component.ServiceComponentInfo.service_name; - var service = services.findProperty('ServiceInfo.service_name', serviceName); + var service = services.findProperty('ServiceInfo.service_display_name', serviceName); if (service) { service.components.push(component); } @@ -223,7 +223,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ if (hostComponent.get('isLoaded')) { this.deleteRecord(hostComponent); } - var serviceCache = services.findProperty('ServiceInfo.service_name', hostComponent.get('service.serviceName')); + var serviceCache = services.findProperty('ServiceInfo.service_display_name', hostComponent.get('service.serviceName')); if (serviceCache) { serviceCache.host_components = serviceCache.host_components.without(hostComponent.get('id')); } @@ -235,7 +235,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ //parse service metrics from components services.forEach(function (item) { - hostComponents.filterProperty('service_id', item.ServiceInfo.service_name).mapProperty('id').forEach(function (hostComponent) { + hostComponents.filterProperty('service_id', item.ServiceInfo.service_display_name).mapProperty('id').forEach(function (hostComponent) { if (!item.host_components.contains(hostComponent)) { item.host_components.push(hostComponent); } @@ -244,7 +244,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ var extendedModelInfo = this.mapExtendedModel(item); if (extendedModelInfo) { - extendedModelInfo.passive_state = App.Service.find(item.ServiceInfo.service_name).get('passiveState'); + extendedModelInfo.passive_state = App.Service.find(item.ServiceInfo.service_display_name).get('passiveState'); result.push(extendedModelInfo); } }, this); @@ -287,33 +287,33 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ */ mapExtendedModel: function(item) { var finalJson = false; - if (item && item.ServiceInfo && item.ServiceInfo.service_name == "HDFS") { + if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "HDFS") { finalJson = this.hdfsMapper(item); finalJson.rand = Math.random(); App.store.safeLoad(App.HDFSService, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "HBASE") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "HBASE") { finalJson = this.hbaseMapper(item); finalJson.rand = Math.random(); App.store.safeLoad(App.HBaseService, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "FLUME") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "FLUME") { finalJson = this.flumeMapper(item); finalJson.rand = Math.random(); App.store.safeLoadMany(App.FlumeAgent, finalJson.agentJsons); App.store.safeLoad(App.FlumeService, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "YARN") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "YARN") { finalJson = this.yarnMapper(item); finalJson.rand = Math.random(); App.store.safeLoad(App.YARNService, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "MAPREDUCE2") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "MAPREDUCE2") { finalJson = this.mapreduce2Mapper(item); finalJson.rand = Math.random(); App.store.safeLoad(App.MapReduce2Service, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "STORM") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "STORM") { finalJson = this.stormMapper(item); finalJson.rand = Math.random(); this.mapQuickLinks(finalJson, item); App.store.safeLoad(App.StormService, finalJson); - } else if (item && item.ServiceInfo && item.ServiceInfo.service_name == "RANGER") { + } else if (item && item.ServiceInfo && item.ServiceInfo.service_display_name == "RANGER") { finalJson = this.rangerMapper(item); finalJson.rand = Math.random(); App.store.safeLoad(App.RangerService, finalJson); @@ -338,13 +338,13 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ // set tooltip for client-only services var clientOnlyServiceNames = App.get('services.clientOnly'); clientOnlyServiceNames.forEach(function (serviceName) { - var service = services.findProperty('ServiceInfo.service_name', serviceName); + var service = services.findProperty('ServiceInfo.service_display_name', serviceName); if (service) { service.tool_tip_content = Em.I18n.t('services.service.summary.clientOnlyService.ToolTip'); } }); hostComponents.forEach(function (hostComponent) { - var service = services.findProperty('ServiceInfo.service_name', hostComponent.service_id); + var service = services.findProperty('ServiceInfo.service_display_name', hostComponent.service_id); if (hostComponent) { // set advanced nameNode display name for HA, Active NameNode or Standby NameNode // this is useful on three places: 1) HDFS health status hover tooltip, 2) HDFS service summary 3) NameNode component on host detail page @@ -410,8 +410,8 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({ AMBARI_METRICS: [37], LOGSEARCH: [38] }; - if (quickLinks[item.ServiceInfo.service_name]) - finalJson.quick_links = quickLinks[item.ServiceInfo.service_name]; + if (quickLinks[item.ServiceInfo.service_display_name]) + finalJson.quick_links = quickLinks[item.ServiceInfo.service_display_name]; }, hdfsMapper: function (item) { http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/mixins/common/configs/configs_saver.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/configs_saver.js b/ambari-web/app/mixins/common/configs/configs_saver.js index dafee79..75631c2 100644 --- a/ambari-web/app/mixins/common/configs/configs_saver.js +++ b/ambari-web/app/mixins/common/configs/configs_saver.js @@ -745,7 +745,7 @@ App.ConfigsSaverMixin = Em.Mixin.create({ }; if (this.get('content.serviceName') === 'HDFS') { - options.urlParams += '&ServiceComponentInfo/service_name.in(HDFS)' + options.urlParams += '&ServiceComponentInfo/service_display_name.in(HDFS)' } } else { options = { http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/mixins/wizard/wizardProgressPageController.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageController.js b/ambari-web/app/mixins/wizard/wizardProgressPageController.js index 9d9d000..0a91c58 100644 --- a/ambari-web/app/mixins/wizard/wizardProgressPageController.js +++ b/ambari-web/app/mixins/wizard/wizardProgressPageController.js @@ -449,7 +449,7 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create(App.InstallComponent, { }).join(','); } data.context = "Stop required services"; - data.urlParams = "ServiceInfo/service_name.in(" + servicesList + ")"; + data.urlParams = "ServiceInfo/service_display_name.in(" + servicesList + ")"; } else { data.context = "Stop all services"; } @@ -491,7 +491,7 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create(App.InstallComponent, { }).join(','); } data.context = "Start required services"; - data.urlParams = "ServiceInfo/service_name.in(" + servicesList + ")"; + data.urlParams = "ServiceInfo/service_display_name.in(" + servicesList + ")"; } else { data.context = "Start all services"; } http://git-wip-us.apache.org/repos/asf/ambari/blob/f3520c09/ambari-web/app/utils/ajax/ajax.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js index 4a1f9ef..2abc8ee 100644 --- a/ambari-web/app/utils/ajax/ajax.js +++ b/ambari-web/app/utils/ajax/ajax.js @@ -43,7 +43,7 @@ var urls = { }, 'common.services.update' : { - 'real': '/clusters/{clusterName}/services?{urlParams}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services?{urlParams}', 'mock': '/data/wizard/deploy/poll_1.json', 'format': function (data) { return { @@ -65,7 +65,7 @@ var urls = { }, 'common.service.update' : { - 'real': '/clusters/{clusterName}/services/{serviceName}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}', 'mock': '/data/wizard/deploy/poll_1.json', 'format': function (data) { return { @@ -88,12 +88,12 @@ var urls = { }, 'common.service_component.info' : { - 'real': '/clusters/{clusterName}/services/{serviceName}/components/{componentName}?{urlParams}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}/components/{componentName}?{urlParams}', 'mock': '/data/wizard/deploy/poll_1.json' }, 'common.service.hdfs.getNnCheckPointTime': { - 'real': '/clusters/{clusterName}/services/HDFS/components/NAMENODE?fields=host_components/metrics/dfs/FSNamesystem/HAState,host_components/metrics/dfs/FSNamesystem/LastCheckpointTime', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HDFS/components/NAMENODE?fields=host_components/metrics/dfs/FSNamesystem/HAState,host_components/metrics/dfs/FSNamesystem/LastCheckpointTime', 'mock': '' }, @@ -312,7 +312,7 @@ var urls = { }, 'common.service.passive': { - 'real': '/clusters/{clusterName}/services/{serviceName}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}', 'mock': '', 'format': function (data) { return { @@ -399,7 +399,7 @@ var urls = { 'type': 'DELETE' }, 'common.delete.service': { - 'real': '/clusters/{clusterName}/services/{serviceName}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}', 'mock': '/data/services/ambari.json', 'type': 'DELETE' }, @@ -953,7 +953,7 @@ var urls = { 'mock': '/data/hosts/HDP2/decommission_state.json' }, 'host.host_component.decommission_status': { - 'real': '/clusters/{clusterName}/services/{serviceName}/components/{componentName}/?fields=ServiceComponentInfo,host_components/HostRoles/state', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}/components/{componentName}/?fields=ServiceComponentInfo,host_components/HostRoles/state', 'mock': '' }, 'host_components.hbase_regionserver.active': { @@ -1017,143 +1017,143 @@ var urls = { 'mock': '/data/cluster_metrics/cpu_1hr.json' }, 'hosts.metrics.host_component': { - 'real': '/clusters/{clusterName}/services/{serviceName}/components/{componentName}?fields=host_components/{metricName}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}/components/{componentName}?fields=host_components/{metricName}', 'mock': '/data/cluster_metrics/cpu_1hr.json' }, 'service.metrics.flume.channel_fill_percent': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/CHANNEL/ChannelFillPercentage[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/CHANNEL/ChannelFillPercentage[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/channelFillPct.json', 'testInProduction': true }, 'service.metrics.flume.channel_size': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/CHANNEL/ChannelSize[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/CHANNEL/ChannelSize[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/channelSize.json', 'testInProduction': true }, 'service.metrics.flume.sink_drain_success': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SINK/EventDrainSuccessCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SINK/EventDrainSuccessCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/sinkDrainSuccessCount.json', 'testInProduction': true }, 'service.metrics.flume.sink_connection_failed': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SINK/ConnectionFailedCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SINK/ConnectionFailedCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/sinkConnectionFailedCount.json', 'testInProduction': true }, 'service.metrics.flume.source_accepted': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SOURCE/EventAcceptedCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/flume/flume/SOURCE/EventAcceptedCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/sourceEventAccepted.json', 'testInProduction': true }, 'service.metrics.flume.channel_size_for_all': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.channel_size_for_all.mma': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/ChannelSize/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.channel_size_for_all.sum': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/ChannelSize/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.gc': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/gcTimeMillis[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/gcTimeMillis[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/jvmGcTime.json', 'testInProduction': true }, 'service.metrics.flume.jvm_heap_used': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/memHeapUsedM[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/memHeapUsedM[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/jvmMemHeapUsedM.json', 'testInProduction': true }, 'service.metrics.flume.jvm_threads_runnable': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/threadsRunnable[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/jvm/threadsRunnable[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/flume/jvmThreadsRunnable.json', 'testInProduction': true }, 'service.metrics.flume.cpu_user': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/cpu/cpu_user[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=host_components/metrics/cpu/cpu_user[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '', 'testInProduction': true }, 'service.metrics.flume.incoming_event_put_successCount': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.incoming_event_put_successCount.mma': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.incoming_event_put_successCount.sum': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventPutSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.outgoing_event_take_success_count': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.outgoing_event_take_success_count.mma': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/avg[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/max[{fromSeconds},{toSeconds},{stepSeconds}],metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/min[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.flume.outgoing_event_take_success_count.sum': { - 'real': '/clusters/{clusterName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/FLUME/components/FLUME_HANDLER?fields=metrics/flume/flume/CHANNEL/EventTakeSuccessCount/rate/sum[{fromSeconds},{toSeconds},{stepSeconds}]' }, 'service.metrics.hbase.cluster_requests': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/cluster_requests[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/cluster_requests[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/cluster_requests.json', 'testInProduction': true }, 'service.metrics.hbase.hlog_split_size': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/splitSize_avg_time[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/splitSize_avg_time[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/hlog_split_size.json', 'testInProduction': true }, 'service.metrics.hbase.hlog_split_time': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/splitTime_avg_time[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_MASTER?fields=metrics/hbase/master/splitTime_avg_time[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/hlog_split_time.json', 'testInProduction': true }, 'service.metrics.hbase.regionserver_queuesize': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/flushQueueSize[{fromSeconds},{toSeconds},{stepSeconds}],metrics/hbase/regionserver/compactionQueueSize[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/flushQueueSize[{fromSeconds},{toSeconds},{stepSeconds}],metrics/hbase/regionserver/compactionQueueSize[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/regionserver_queuesize.json', 'testInProduction': true }, 'service.metrics.hbase.regionserver_regions': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/regions[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/regions[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/regionserver_regions.json', 'testInProduction': true }, 'service.metrics.hbase.regionserver_rw_requests': { - 'real': '/clusters/{clusterName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/readRequestsCount[{fromSeconds},{toSeconds},{stepSeconds}],metrics/hbase/regionserver/writeRequestsCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HBASE/components/HBASE_REGIONSERVER?fields=metrics/hbase/regionserver/readRequestsCount[{fromSeconds},{toSeconds},{stepSeconds}],metrics/hbase/regionserver/writeRequestsCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hbase/regionserver_rw_requests.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.master.average_load': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/master/AverageLoad[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/master/AverageLoad[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/master_average_load.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.region_server.store_files': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/storefiles[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/storefiles[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/regionserver_store_files.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.region_server.regions': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/regions[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/regions[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/regionserver_regions.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.region_server.request': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/requests._rate[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/requests._rate[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/regionserver_requests.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.region_server.block_cache_hit_percent': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/blockCacheHitPercent[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/blockCacheHitPercent[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/regionserver_blockcache_hitpercent.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.region_server.compaction_queue_size': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/compactionQueueSize[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields=metrics/hbase/regionserver/compactionQueueSize[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/ambari_metrics/regionserver_compaction_queue_size.json', 'testInProduction': true }, 'service.metrics.ambari_metrics.aggregated': { - 'real': '/clusters/{clusterName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields={fields}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/AMBARI_METRICS/components/METRICS_COLLECTOR?fields={fields}', 'mock': '/data/services/metrics/ambari_metrics/master_average_load.json', 'testInProduction': true }, @@ -1173,7 +1173,7 @@ var urls = { 'testInProduction': true }, 'service.metrics.hdfs.io': { - 'real': '/clusters/{clusterName}/services/HDFS/components/DATANODE?fields=metrics/dfs/datanode/bytes_written[{fromSeconds},{toSeconds},{stepSeconds}],metrics/dfs/datanode/bytes_read[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/HDFS/components/DATANODE?fields=metrics/dfs/datanode/bytes_written[{fromSeconds},{toSeconds},{stepSeconds}],metrics/dfs/datanode/bytes_read[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '/data/services/metrics/hdfs/io.json', 'testInProduction': true }, @@ -1262,31 +1262,31 @@ var urls = { 'testInProduction': true }, 'service.metrics.kafka.broker.topic': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesInPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/AllTopicsBytesOutPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/AllTopicsMessagesInPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.kafka.controller.KafkaController': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/controller/KafkaController/ActiveControllerCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/controller/KafkaController/ActiveControllerCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.kafka.controller.ControllerStats': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/controller/ControllerStats/LeaderElectionRateAndTimeMs/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/controller/ControllerStats/UncleanLeaderElectionsPerSec/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.kafka.log.LogFlushStats': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/log/LogFlushStats/LogFlushRateAndTimeMs/1MinuteRate[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.kafka.server.ReplicaManager': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/ReplicaManager/PartitionCount[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/ReplicaManager/UnderReplicatedPartitions[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/ReplicaManager/LeaderCount[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/ReplicaManager/PartitionCount[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/ReplicaManager/UnderReplicatedPartitions[{fromSeconds},{toSeconds},{stepSeconds}],metrics/kafka/server/BrokerTopicMetrics/ReplicaManager/LeaderCount[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.kafka.server.ReplicaFetcherManager': { - 'real': '/clusters/{clusterName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/ReplicaFetcherManager/Replica-MaxLag[{fromSeconds},{toSeconds},{stepSeconds}]', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KAFKA/components/KAFKA_BROKER?fields=metrics/kafka/server/ReplicaFetcherManager/Replica-MaxLag[{fromSeconds},{toSeconds},{stepSeconds}]', 'mock': '' }, 'service.metrics.storm.nimbus': { - 'real': '/clusters/{clusterName}/services/STORM/components/NIMBUS?fields={metricsTemplate}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/STORM/components/NIMBUS?fields={metricsTemplate}', 'mock': '' }, 'dashboard.cluster_metrics.cpu': { @@ -1425,7 +1425,7 @@ var urls = { 'mock': '' }, 'common.create_component': { - 'real': '/clusters/{clusterName}/services?ServiceInfo/service_name={serviceName}', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services?ServiceInfo/service_display_name={serviceName}', 'mock': '', 'type': 'POST', 'format': function (data) { @@ -1506,7 +1506,7 @@ var urls = { }, 'kerberos.session.state': { - 'real': '/clusters/{clusterName}/services/KERBEROS?fields=Services/attributes/kdc_validation_result,Services/attributes/kdc_validation_failure_details', + 'real': '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/KERBEROS?fields=Services/attributes/kdc_validation_result,Services/attributes/kdc_validation_failure_details', 'mock': '' }, @@ -1995,9 +1995,21 @@ var urls = { } }, + 'wizard.step8.create_service_group': { + 'real': '/clusters/{cluster}/servicegroups', + 'mock': '', + 'format': function (data) { + return { + type: 'POST', + dataType: 'text', + data: data.data + } + } + }, + 'wizard.step8.create_selected_services': { 'type': 'POST', - 'real': '/clusters/{cluster}/services', + 'real': '/clusters/{cluster}/servicegroups/{defaultServiceGroupName}/services', 'mock': '/data/stacks/HDP-2.1/recommendations.json', 'format': function (data) { return { @@ -2008,7 +2020,7 @@ var urls = { }, 'wizard.step8.create_components': { - 'real': '/clusters/{cluster}/services?ServiceInfo/service_name={serviceName}', + 'real': '/clusters/{cluster}/servicegroups/{defaultServiceGroupName}/services/{serviceName}/components', 'mock': '', 'format': function (data) { return { @@ -2554,7 +2566,7 @@ var urls = { 'mock': '' }, 'components.get_category': { - 'real': '/clusters/{clusterName}/components?fields=ServiceComponentInfo/component_name,ServiceComponentInfo/service_name,ServiceComponentInfo/category,ServiceComponentInfo/recovery_enabled,ServiceComponentInfo/total_count&minimal_response=true', + 'real': '/clusters/{clusterName}/components?fields=ServiceComponentInfo/component_name,ServiceComponentInfo/service_name,ServiceComponentInfo/service_display_name,ServiceComponentInfo/category,ServiceComponentInfo/recovery_enabled,ServiceComponentInfo/total_count&minimal_response=true', 'mock': '' }, 'components.update': { @@ -2624,7 +2636,7 @@ var urls = { 'mock': '' }, 'host_components.with_services_names': { - 'real': '/clusters/{clusterName}/host_components?fields=component/ServiceComponentInfo/service_name,HostRoles/host_name&minimal_response=true', + 'real': '/clusters/{clusterName}/host_components?fields=component/ServiceComponentInfo/service_name,ServiceComponentInfo/service_display_name,HostRoles/host_name&minimal_response=true', 'mock': '' }, 'components.get_installed': { @@ -2978,7 +2990,7 @@ var urls = { }, 'widgets.serviceComponent.metrics.get': { - real: '/clusters/{clusterName}/services/{serviceName}/components/{componentName}?fields={metricPaths}&format=null_padding', + real: '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services/{serviceName}/components/{componentName}?fields={metricPaths}&format=null_padding', mock: '/data/metrics/{serviceName}/Append_num_ops_&_Delete_num_ops.json' }, @@ -3020,7 +3032,7 @@ var urls = { }, 'service.components.load': { - real: '/clusters/{clusterName}/services?fields=components&minimal_response=true', + real: '/clusters/{clusterName}/servicegroups/{defaultServiceGroupName}/services?fields=components&minimal_response=true', mock: '/data/services/components.json' } }; @@ -3166,7 +3178,8 @@ var ajax = Em.Object.extend({ // default parameters var params = { - clusterName: (App.get('clusterName') || App.clusterStatus.get('clusterName')) + clusterName: (App.get('clusterName') || App.clusterStatus.get('clusterName')), + defaultServiceGroupName: (App.get('defaultServiceGroupName')) }; // extend default parameters with provided