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(",") + 
")&params/run_smoke_test=true&params/reconfigure_client=false"
+          "urlParams": 
"ServiceInfo/state=INSTALLED&ServiceInfo/service_display_name.in(" + 
servicesList.join(",") + 
")&params/run_smoke_test=true&params/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

Reply via email to