This is an automated email from the ASF dual-hosted git repository.

ishanbha pushed a commit to branch branch-feature-AMBARI-14714
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by 
this push:
     new 858fd45  Load stack mapper data from mpacks API after registering 
mpacks. (#887)
858fd45 is described below

commit 858fd45f24bd7c05687df851b8842c4832340b69
Author: Jason Golieb <j...@golieb.net>
AuthorDate: Thu Apr 5 14:34:11 2018 -0400

    Load stack mapper data from mpacks API after registering mpacks. (#887)
---
 ambari-web/app/controllers/installer.js            | 198 +----
 ambari-web/app/controllers/wizard.js               |   8 +
 .../wizard/downloadMpacks_controller.js            |  18 +-
 ambari-web/app/mappers/stack_mapper.js             |  37 +-
 ambari-web/app/routes/installer.js                 |   1 +
 ambari-web/app/utils/ajax/ajax.js                  |   4 +
 ambari-web/test/controllers/installer_test.js      |  14 +-
 ambari-web/test/mappers/stack_mapper_test.js       | 939 +++++++++------------
 8 files changed, 454 insertions(+), 765 deletions(-)

diff --git a/ambari-web/app/controllers/installer.js 
b/ambari-web/app/controllers/installer.js
index 15a1f82..c809733 100644
--- a/ambari-web/app/controllers/installer.js
+++ b/ambari-web/app/controllers/installer.js
@@ -110,6 +110,7 @@ App.InstallerController = 
App.WizardController.extend(App.Persist, {
     recommendationsHostGroups: null,
     controllerName: 'installerController',
     mpacks: [],
+    registeredMpacks: [],
     mpackVersions: [],
     mpackServiceVersions: [],
     mpackServices: [],
@@ -316,104 +317,6 @@ App.InstallerController = 
App.WizardController.extend(App.Persist, {
 
   stacks: [],
 
-  /**
-   * stack names used as auxiliary data to query stacks by name
-   */
-  stackNames: [],
-
-  /**
-   * Load stacks data from server or take exist data from in memory variable 
{{content.stacks}}
-   * The series of API calls will be called  When landing first time on Select 
Stacks page
-   * or on hitting refresh post select stacks page in installer wizard
-   */
-  loadStacks: function () {
-    var stacks = this.get('content.stacks');
-    var dfd = $.Deferred();
-    if (stacks && stacks.get('length')) {
-      App.set('currentStackVersion', 
App.Stack.find().findProperty('isSelected').get('stackNameVersion'));
-      dfd.resolve(true);
-    } else {
-      App.ajax.send({
-        name: 'wizard.stacks',
-        sender: this,
-        success: 'loadStacksSuccessCallback',
-        error: 'loadStacksErrorCallback'
-      }).complete(function () {
-        dfd.resolve(false);
-      });
-    }
-    return dfd.promise();
-  },
-
-  /**
-   * Send queries to load versions for each stack
-   */
-  loadStacksSuccessCallback: function (data) {
-    this.get('stacks').clear();
-    this.set('stackNames', data.items.mapProperty('Stacks.stack_name'));
-  },
-
-  /**
-   * onError callback for loading stacks data
-   */
-  loadStacksErrorCallback: function () {
-  },
-
-  /**
-   * query every stack names from server
-   * @return {Array}
-   */
-  loadStacksVersions: function () {
-    var requests = [];
-    this.get('stackNames').forEach(function (stackName) {
-      requests.push(App.ajax.send({
-        name: 'wizard.stacks_versions_definitions',
-        sender: this,
-        data: {
-          stackName: stackName
-        },
-        success: 'loadStacksVersionsDefinitionsSuccessCallback',
-        error: 'loadStacksVersionsErrorCallback'
-      }));
-    }, this);
-    this.set('loadStacksRequestsCounter', requests.length);
-    return requests;
-  },
-
-  /**
-   * Counter for counting number of successful requests to load stack versions
-   */
-  loadStacksRequestsCounter: 0,
-
-  /**
-   * Parse loaded data and create array of stacks objects
-   */
-  loadStacksVersionsDefinitionsSuccessCallback: function (data) {
-    var stacks = App.db.getStacks();
-    var oses = App.db.getOses();
-    var repos = App.db.getRepos();
-    this.decrementProperty('loadStacksRequestsCounter');
-    var isStacksExistInDb = stacks && stacks.length;
-    if (isStacksExistInDb) {
-      stacks.forEach(function (_stack) {
-        var stack = data.items.findProperty('VersionDefinition.id', _stack.id);
-        if (stack) {
-          stack.VersionDefinition.is_selected = _stack.is_selected;
-        }
-      }, this);
-    }
-
-    
data.items.sortProperty('VersionDefinition.stack_version').reverse().forEach(function
 (versionDefinition) {
-      // to display repos panel, should map all available operating systems 
including empty ones
-      var stackInfo = {};
-      stackInfo.isStacksExistInDb = isStacksExistInDb;
-      stackInfo.stacks = stacks;
-      stackInfo.oses = oses;
-      stackInfo.repos = repos;
-      this.getSupportedOSList(versionDefinition, stackInfo);
-    }, this);
-  },
-
   mergeChanges: function (repos, oses, stacks) {
     var _repos = repos || [];
     var _oses = oses || [];
@@ -785,104 +688,6 @@ App.InstallerController = 
App.WizardController.extend(App.Persist, {
     App.showAlertPopup(header, body);
   },
 
-  getSupportedOSList: function (versionDefinition, stackInfo) {
-    this.incrementProperty('loadStacksRequestsCounter');
-    return App.ajax.send({
-      name: 'wizard.step1.get_supported_os_types',
-      sender: this,
-      data: {
-        stackName: versionDefinition.VersionDefinition.stack_name,
-        stackVersion: versionDefinition.VersionDefinition.stack_version,
-        versionDefinition: versionDefinition,
-        stackInfo: stackInfo
-      },
-      success: 'getSupportedOSListSuccessCallback',
-      error: 'getSupportedOSListErrorCallback'
-    });
-  },
-
-  /**
-   * onSuccess callback for getSupportedOSList.
-   */
-  getSupportedOSListSuccessCallback: function (response, request, data) {
-    var self = this;
-    var stack_default = data.versionDefinition.VersionDefinition.stack_default;
-    var existedOS = data.versionDefinition.operating_systems;
-    var existedMap = {};
-    existedOS.map(function (existedOS) {
-      existedOS.isSelected = true;
-      existedMap[existedOS.OperatingSystems.os_type] = existedOS;
-    });
-    response.operating_systems.forEach(function(supportedOS) {
-      if(!existedMap[supportedOS.OperatingSystems.os_type]) {
-        supportedOS.isSelected = false;
-        existedOS.push(supportedOS);
-      } else {
-        if (stack_default) { // only overwrite if it is stack default, 
otherwise use url from /version_definition
-          
existedMap[supportedOS.OperatingSystems.os_type].repositories.forEach(function 
(repo) {
-            supportedOS.repositories.forEach(function (supportedRepo) {
-              if (supportedRepo.Repositories.repo_id == 
repo.Repositories.repo_id) {
-                repo.Repositories.base_url = 
supportedRepo.Repositories.base_url;
-                repo.Repositories.default_base_url = 
supportedRepo.Repositories.default_base_url;
-                repo.Repositories.latest_base_url = 
supportedRepo.Repositories.latest_base_url;
-                repo.Repositories.components = 
supportedRepo.Repositories.components;
-                repo.Repositories.distribution = 
supportedRepo.Repositories.distribution;
-              }
-            });
-          });
-        }
-        else{
-          
existedMap[supportedOS.OperatingSystems.os_type].repositories.forEach(function 
(repo) {
-            supportedOS.repositories.forEach(function (supportedRepo) {
-              if (supportedRepo.Repositories.repo_id == 
repo.Repositories.repo_id) {
-                repo.Repositories.components = 
supportedRepo.Repositories.components;
-                repo.Repositories.distribution = 
supportedRepo.Repositories.distribution;
-              }
-            });
-          });
-        }
-      }
-    });
-
-    App.stackMapper.map(data.versionDefinition);
-
-    if (!this.decrementProperty('loadStacksRequestsCounter')) {
-      if (data.stackInfo.dfd) {
-        data.stackInfo.dfd.resolve(data.stackInfo.response);
-      } else {
-        var versionData = this.getSelectedRepoVersionData();
-        if (versionData) {
-          this.postVersionDefinitionFile(versionData.isXMLdata, 
versionData.data).done(function (versionInfo) {
-            self.mergeChanges(data.stackInfo.repos, data.stackInfo.oses, 
data.stackInfo.stacks);
-            App.Stack.find().setEach('isSelected', false);
-            var stackId = Em.get(versionData, 
'data.VersionDefinition.available') || versionInfo.stackNameVersion + "-" + 
versionInfo.actualVersion;
-            App.Stack.find().findProperty('id', stackId).set('isSelected', 
true);
-            self.setSelected(data.stackInfo.isStacksExistInDb);
-          }).fail(function () {
-            self.setSelected(data.stackInfo.isStacksExistInDb);
-          });
-        } else {
-          this.setSelected(data.stackInfo.isStacksExistInDb);
-        }
-      }
-    }
-  },
-
-  /**
-   * onError callback for getSupportedOSList
-   */
-  getSupportedOSListErrorCallback: function (request, ajaxOptions, error, 
data, params) {
-    var header = 
Em.I18n.t('installer.step1.useLocalRepo.getSurpottedOs.error.title');
-    var body = "";
-    if(request && request.responseText){
-      try {
-        var json = $.parseJSON(request.responseText);
-        body = json.message;
-      } catch (err) {}
-    }
-    App.showAlertPopup(header, body);
-  },
-
   /**
    * Check validation of the customized local urls
    */
@@ -1029,6 +834,7 @@ App.InstallerController = 
App.WizardController.extend(App.Persist, {
         type: 'sync',
         callback: function () {
           this.loadConfirmedHosts();
+          this.loadRegisteredMpacks();
         }
       }
     ],
diff --git a/ambari-web/app/controllers/wizard.js 
b/ambari-web/app/controllers/wizard.js
index 06c2034..b1ce5d0 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -1411,6 +1411,14 @@ App.WizardController = 
Em.Controller.extend(App.LocalStorage, App.ThemesMappingM
     App.ajax.defaultErrorHandler(jqXHR, opt.url, opt.type, jqXHR.status);
   },
 
+  loadRegisteredMpacks: function () {
+    this.set('content.registeredMpacks', 
this.getDBProperty('registeredMpacks') || []);
+    const registeredMpacks = this.get('content.registeredMpacks');
+    registeredMpacks.forEach(rmp => {
+      App.stackMapper.map(rmp);
+    });
+  },
+
   /**
    * Determine if <code>Assign Slaves and Clients</code> step ("step7") should 
be skipped
    * @method setSkipSlavesStep
diff --git a/ambari-web/app/controllers/wizard/downloadMpacks_controller.js 
b/ambari-web/app/controllers/wizard/downloadMpacks_controller.js
index 915bb73..471080e 100644
--- a/ambari-web/app/controllers/wizard/downloadMpacks_controller.js
+++ b/ambari-web/app/controllers/wizard/downloadMpacks_controller.js
@@ -44,16 +44,16 @@ App.WizardDownloadMpacksController = 
App.WizardStepController.extend({
   },
 
   registerMpacks: function () {
-    var mpacks = this.get('mpacks');
-    var self = this;
+    const mpacks = this.get('mpacks');
+    const self = this;
     mpacks.forEach(function (mpack) {
-      self.downloadMpack(mpack);
+     self.downloadMpack(mpack).then(self.loadMpackInfo.bind(self));
     });
   },
 
   downloadMpack: function (mpack) {
     console.log("downloading mpacks");
-    App.ajax.send({
+    return App.ajax.send({
       name: 'mpack.download_by_url',
       sender: this,
       data: {
@@ -93,6 +93,16 @@ App.WizardDownloadMpacksController = 
App.WizardStepController.extend({
     }
   },
 
+  loadMpackInfo(data) {
+    App.ajax.send({
+      name: 'mpack.get_registered_mpack',
+      sender: this,
+      data: {
+        id: data.resources[0].MpackInfo.id
+      }
+    }).then(mpackInfo => this.get('content.registeredMpacks').push(mpackInfo));
+  },
+
   retryDownload: function (event) {
     const mpack = event.context;
     
diff --git a/ambari-web/app/mappers/stack_mapper.js 
b/ambari-web/app/mappers/stack_mapper.js
index 18eaf1dc..162d24e 100644
--- a/ambari-web/app/mappers/stack_mapper.js
+++ b/ambari-web/app/mappers/stack_mapper.js
@@ -25,13 +25,13 @@ App.stackMapper = App.QuickDataMapper.create({
 
   configStack: {
     id: 'id',
-    stack_name: 'stack_name',
-    stack_version: 'stack_version',
+    stack_name: 'mpack_name',
+    stack_version: 'mpack_version',
     stack_default: 'stack_default',
     stack_repo_update_link_exists: 'stack_repo_update_link_exists',
     show_available: 'show_available',
     type: 'type',
-    repository_version: 'repository_version',
+    repository_version: 'mpack_version',
     active: 'active',
     parent_stack_version: 'parent_stack_version',
     min_upgrade_version: 'min_upgrade_version',
@@ -102,11 +102,9 @@ App.stackMapper = App.QuickDataMapper.create({
     var resultServices = [];
 
     var item = json;
-    var stack = item.VersionDefinition;
-    if (!stack.id) {
-      stack.id = stack.stack_name + '-' + stack.stack_version + '-' + 
stack.repository_version; //HDP-2.5-2.5.0.0
-    }
-
+    var stack = item.MpackInfo;
+    stack.id = stack.mpack_name + '-' + stack.mpack_version; 
//HDPCORE-1.0.0-b100
+    
     var operatingSystemsArray = [];
     var servicesArray = [];
 
@@ -114,16 +112,16 @@ App.stackMapper = App.QuickDataMapper.create({
       var operatingSystems = ops.OperatingSystems;
 
       var repositoriesArray = [];
-      ops.repositories.forEach(function(repo) {
-        repo.Repositories.id = [stack.id, repo.Repositories.os_type, 
repo.Repositories.repo_id].join('-');
-        repo.Repositories.os_id = [stack.id, 
repo.Repositories.os_type].join('-');
-        if (!repo.Repositories.latest_base_url) 
repo.Repositories.latest_base_url = repo.Repositories.base_url;
-        resultRepo.push(this.parseIt(repo.Repositories, 
this.get('configRepository')));
-        repositoriesArray.pushObject(repo.Repositories);
+      operatingSystems.repositories.forEach(function(repo) {
+        repo.id = [stack.id, repo.os_type, repo.repo_id].join('-');
+        repo.os_id = [stack.id, repo.os_type].join('-');
+        if (!repo.latest_base_url) repo.latest_base_url = repo.base_url;
+        resultRepo.push(this.parseIt(repo, this.get('configRepository')));
+        repositoriesArray.pushObject(repo);
       }, this);
 
       operatingSystems.id = stack.id + "-" + operatingSystems.os_type;
-      operatingSystems.stack_id = operatingSystems.stack_name + "-" + 
operatingSystems.stack_version;
+      operatingSystems.stack_id = stack.id;
       operatingSystems.repositories = repositoriesArray;
       operatingSystems.is_selected = ops.isSelected == true || ops.isSelected 
== undefined;
       resultOS.push(this.parseIt(operatingSystems, this.get('configOS')));
@@ -131,19 +129,20 @@ App.stackMapper = App.QuickDataMapper.create({
 
     }, this);
 
-    stack.stack_services.forEach(function(service) {
+    stack.modules.forEach(function(service) {
       var serviceObj = {
         id: service.name + '-' + stack.id,
         name: service.name,
-        display_name: service.display_name,
-        latest_version: service.versions? service.versions[0] : ''
+        display_name: service.displayName,
+        latest_version: service.versions ? service.versions[0] : ''
       };
       resultServices.push(this.parseIt(serviceObj, this.get('configService')));
       servicesArray.pushObject(serviceObj);
     }, this);
 
     //In case ambari_managed_repositories is undefined, set 
use_redhat_satellite to be false
-    stack.use_redhat_satellite = 
item.operating_systems[0].OperatingSystems.ambari_managed_repositories === 
false;
+    stack.show_available = true;
+    stack.use_redhat_satellite = false;
     stack.stack_services = servicesArray;
     stack.operating_systems = operatingSystemsArray;
     App.store.safeLoadMany(modelRepo, resultRepo);
diff --git a/ambari-web/app/routes/installer.js 
b/ambari-web/app/routes/installer.js
index e58ebcb..89b136d 100644
--- a/ambari-web/app/routes/installer.js
+++ b/ambari-web/app/routes/installer.js
@@ -412,6 +412,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
       }
       App.set('router.nextBtnClickInProgress', true);
       const controller = router.get('installerController');
+      controller.save('registeredMpacks');
       controller.save('selectedStack');
       const downloadConfig = controller.get('content.downloadConfig');
       if (downloadConfig && downloadConfig.useCustomRepo) {
diff --git a/ambari-web/app/utils/ajax/ajax.js 
b/ambari-web/app/utils/ajax/ajax.js
index 4d70854..3f8bd8b 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -3162,6 +3162,10 @@ var urls = {
     }
   },
 
+  'mpack.get_registered_mpack': {
+    real: '/mpacks/{id}',
+  },
+
   'mpack.get_registered_mpacks': {
     real: '/mpacks?fields=*',
   },
diff --git a/ambari-web/test/controllers/installer_test.js 
b/ambari-web/test/controllers/installer_test.js
index 9cf017e..948579a 100644
--- a/ambari-web/test/controllers/installer_test.js
+++ b/ambari-web/test/controllers/installer_test.js
@@ -521,7 +521,8 @@ describe('App.InstallerController', function () {
       var checker = {
         loadConfirmedHosts: function() {
           loadConfirmedHosts = true;
-        }
+        },
+        loadRegisteredMpacks: sinon.stub()
       };
 
       beforeEach(function () {
@@ -533,6 +534,17 @@ describe('App.InstallerController', function () {
       });
     });
 
+    describe('Should load registered mpacks', function () {
+      it('maps registered mpacks', function () {
+        sinon.stub(installerController, 'getDBProperty').returns([{}, {}, {}]);
+        sinon.stub(App.stackMapper, 'map');
+        installerController.loadRegisteredMpacks();
+        expect(App.stackMapper.map.calledThrice).to.be.true;
+        installerController.getDBProperty.restore();
+        App.stackMapper.map.restore();
+      });  
+    });
+
     describe('Should load loadServices (2)', function() {
       var setSkipSlavesStep = false;
       var loadMasterComponentHosts = false;
diff --git a/ambari-web/test/mappers/stack_mapper_test.js 
b/ambari-web/test/mappers/stack_mapper_test.js
index 709c749..8fe9712 100644
--- a/ambari-web/test/mappers/stack_mapper_test.js
+++ b/ambari-web/test/mappers/stack_mapper_test.js
@@ -27,572 +27,421 @@ require('models/stack_version/service_simple');
 describe('App.stackMapper', function () {
        describe("#map", function() {
     var testData = {
-      "items" : [
-      {
-        "VersionDefinition" : {
-          "id" : "HDP-2.3",
-          "show_available": true,
-          "stack_name" : "HDP",
-          "stack_version" : "2.3",
-          "repository_version" : "2.3",
-          "version_url" : 
"file:/Users/ncole/src/hwx/ambari/contrib/version-builder/version_234-3396.xml",
-          "release" : {
-            "build" : "3396",
-            "compatible_with" : "2.3.[0-3].0",
-            "notes" : "http://example.com";,
-            "version" : "2.3.4.0"
-          },
-          "stack_services" : [
-            {
-              "name" : "HDFS",
-              "display_name" : "HDFS",
-              "comment" : "Data warehouse system for ad-hoc queries & analysis 
of large datasets and table & storage management service",
-              "versions" : [
-                "2.7.1.2.3396"
-              ]
-            },
-            {
-              "name" : "YARN",
-              "display_name" : "YARN",
-              "comment" : "",
-              "versions" : [
-                "1.7.3.3396"
-              ]
-            },
-            {
-              "name" : "ZOOKEEPER",
-              "display_name" : "ZooKeeper",
-              "comment" : "",
-              "versions" : [
-                "1.7.3.3396"
-              ]
-            }
-          ]
-        },
-        "operating_systems" : [
-          {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7";,
-            "OperatingSystems" : {
-              "os_type" : "debian7",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
+      "href": "http://172.22.91.73:8080/api/v1/mpacks/1";,
+      "MpackInfo": {
+          "id": 1,
+          "modules": [
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3396";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3396";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3396";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+                  "id": "zookeeper_clients",
+                  "displayName": "ZooKeeper Clients",
+                  "description": "Clients for ZooKeeper",
+                  "category": "CLIENT",
+                  "name": "ZOOKEEPER_CLIENTS",
+                  "version": "3.4.0.0-b34",
+                  "definition": 
"zookeeper_clients-3.4.0.0-b34-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "zookeeper",
+                          "name": "ZOOKEEPER",
+                          "dependencyType": "RUNTIME"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "zookeeper_client",
+                          "name": "ZOOKEEPER_CLIENT",
+                          "category": "CLIENT",
+                          "isExternal": false,
+                          "version": "3.4.0.0-b34"
+                      }
+                  ]
               },
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
-              }
-            ]
-          },
-          {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6";,
-            "OperatingSystems" : {
-              "os_type" : "redhat6",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3396";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3396";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3396";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+                  "id": "mapreduce2",
+                  "displayName": "MAPREDUCE2",
+                  "description": "Apache Hadoop Mapreduce2",
+                  "category": "SERVER",
+                  "name": "MAPREDUCE2",
+                  "version": "3.0.0.0-b95",
+                  "definition": "mapreduce2-3.0.0.0-b95-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "hadoop_clients",
+                          "name": "HADOOP_CLIENTS",
+                          "dependencyType": "INSTALL"
+                      },
+                      {
+                          "id": "yarn",
+                          "name": "YARN",
+                          "dependencyType": "RUNTIME"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "historyserver",
+                          "name": "HISTORYSERVER",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      }
+                  ]
               },
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
-              }
-            ]
-          }
-        ]
-      },
-
-      {
-        "VersionDefinition" : {
-          "id" : "HDP-2.3-2.3.4.0",
-          "stack_name" : "HDP",
-          "stack_version" : "2.3",
-          "show_available": true,
-          "repository_version" : "2.3.4.0",
-          "version_url" : 
"file:/Users/ncole/src/hwx/ambari/contrib/version-builder/version_234-3397.xml",
-          "release" : {
-            "build" : "3397",
-            "compatible_with" : "2.3.[0-3].0",
-            "notes" : "http://example.com";,
-            "version" : "2.3.4.0"
-          },
-          "stack_services" : [
-            {
-              "name" : "HDFS",
-              "display_name" : "HDFS",
-              "comment" : "Data warehouse system for ad-hoc queries & analysis 
of large datasets and table & storage management service",
-              "versions" : [
-                "2.7.1.2-3397"
-              ]
-            },
-            {
-              "name" : "YARN",
-              "display_name" : "YARN",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3397"
-              ]
-            },
-            {
-              "name" : "HBase",
-              "display_name" : "HBase",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3397"
-              ]
-            },
-            {
-              "name" : "ZOOKEEPER",
-              "display_name" : "ZooKeeper",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3397"
-              ]
-            },
-            {
-              "name" : "Hive",
-              "display_name" : "Hive",
-              "comment" : "",
-              "versions" : [
-                "1.1.0-3397"
-              ]
-            }
-          ]
-        },
-        "operating_systems" : [
-          {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7";,
-            "OperatingSystems" : {
-              "os_type" : "debian7",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3397";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3397";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.4.0-3397";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+                  "id": "hdfs",
+                  "displayName": "HDFS",
+                  "description": "Apache Hadoop Distributed File System",
+                  "category": "SERVER",
+                  "name": "HDFS",
+                  "version": "3.0.0.0-b95",
+                  "definition": "hdfs-3.0.0.0-b95-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "hadoop_clients",
+                          "name": "HADOOP_CLIENTS",
+                          "dependencyType": "INSTALL"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "namenode",
+                          "name": "NAMENODE",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "datanode",
+                          "name": "DATANODE",
+                          "category": "SLAVE",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "journalnode",
+                          "name": "JOURNALNODE",
+                          "category": "SLAVE",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "secondary_namenode",
+                          "name": "SECONDARY_NAMENODE",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "zkfc",
+                          "name": "ZKFC",
+                          "category": "SLAVE",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "nfs_gateway",
+                          "name": "NFS_GATEWAY",
+                          "category": "SLAVE",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      }
+                  ]
               },
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
-              }
-            ]
-          },
-          {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6";,
-            "OperatingSystems" : {
-              "os_type" : "redhat6",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
+                  "id": "hadoop_clients",
+                  "displayName": "Hadoop client",
+                  "description": "Clients for HDFS, YARN and MAPREDUCE 
services",
+                  "category": "CLIENT",
+                  "name": "HADOOP_CLIENTS",
+                  "version": "3.0.0.0-b95",
+                  "definition": "hadoop_clients-3.0.0.0-b95-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "hdfs",
+                          "name": "HDFS",
+                          "dependencyType": "RUNTIME"
+                      },
+                      {
+                          "id": "yarn",
+                          "name": "YARN",
+                          "dependencyType": "RUNTIME"
+                      },
+                      {
+                          "id": "mapreduce2",
+                          "name": "MAPREDUCE2",
+                          "dependencyType": "RUNTIME"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "hadoop_client",
+                          "name": "HADOOP_CLIENT",
+                          "category": "CLIENT",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      }
+                  ]
+              },
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3397";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3397";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.4.0-3397";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+                  "id": "zookeeper",
+                  "displayName": "ZooKeeper",
+                  "description": "Centralized service which provides highly 
reliable distributed coordination",
+                  "category": "SERVER",
+                  "name": "ZOOKEEPER",
+                  "version": "3.4.0.0-b34",
+                  "definition": "zookeeper-3.4.0.0-b34-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "zookeeper_clients",
+                          "name": "ZOOKEEPER_CLIENTS",
+                          "dependencyType": "INSTALL"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "zookeeper_server",
+                          "name": "ZOOKEEPER_SERVER",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.4.0.0-b34"
+                      }
+                  ]
               },
               {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+                  "id": "yarn",
+                  "displayName": "YARN",
+                  "description": "Apache Hadoop Yarn",
+                  "category": "SERVER",
+                  "name": "YARN",
+                  "version": "3.0.0.0-b95",
+                  "definition": "yarn-3.0.0.0-b95-definition.tar.gz",
+                  "dependencies": [
+                      {
+                          "id": "hadoop_clients",
+                          "name": "HADOOP_CLIENTS",
+                          "dependencyType": "INSTALL"
+                      },
+                      {
+                          "id": "hdfs",
+                          "name": "HDFS",
+                          "dependencyType": "RUNTIME"
+                      },
+                      {
+                          "id": "mapreduce2",
+                          "name": "MAPREDUCE2",
+                          "dependencyType": "RUNTIME"
+                      },
+                      {
+                          "id": "zookeeper",
+                          "name": "ZOOKEEPER",
+                          "dependencyType": "RUNTIME"
+                      }
+                  ],
+                  "components": [
+                      {
+                          "id": "resourcemanager",
+                          "name": "RESOURCEMANAGER",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "nodemanager",
+                          "name": "NODEMANAGER",
+                          "category": "SLAVE",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "app_timeline_server",
+                          "name": "APP_TIMELINE_SERVER",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "timeline_reader",
+                          "name": "TIMELINE_READER",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      },
+                      {
+                          "id": "yarn_registry_dns",
+                          "name": "YARN_REGISTRY_DNS",
+                          "category": "MASTER",
+                          "isExternal": false,
+                          "version": "3.0.0.0-b95"
+                      }
+                  ]
               }
-            ]
-          }
-        ]
+          ],
+          "mpack_description": "Hortonworks Data Platform Core",
+          "mpack_display_name": null,
+          "mpack_id": "hdpcore",
+          "mpack_name": "HDPCORE",
+          "mpack_uri": 
"http://dev.hortonworks.com.s3.amazonaws.com/HDPCORE/centos7/1.x/BUILDS/1.0.0-b201/mpack.json";,
+          "mpack_version": "1.0.0-b201",
+          "registry_id": null
       },
-
-      {
-        "VersionDefinition" : {
-          "id" : "HDP-2.3-2.3.6.0",
-          "stack_name" : "HDP",
-          "stack_version" : "2.3",
-          "show_available": true,
-          "repository_version" : "2.3.6.0",
-          "version_url" : 
"file:/Users/ncole/src/hwx/ambari/contrib/version-builder/version_234-3646.xml",
-          "release" : {
-            "build" : "3646",
-            "compatible_with" : "2.3.[0-6].0",
-            "notes" : "http://example.com";,
-            "version" : "2.3.6.0"
-          },
-          "stack_services" : [
-            {
-              "name" : "HDFS",
-              "display_name" : "HDFS",
-              "comment" : "Data warehouse system for ad-hoc queries & analysis 
of large datasets and table & storage management service",
-              "versions" : [
-                "2.7.1.2-3646"
-              ]
-            },
-            {
-              "name" : "YARN",
-              "display_name" : "YARN",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3646"
-              ]
-            },
-            {
-              "name" : "HBase",
-              "display_name" : "HBase",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3646"
-              ]
-            },
-            {
-              "name" : "ZOOKEEPER",
-              "display_name" : "ZooKeeper",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-3646"
-              ]
-            },
-            {
-              "name" : "Hive",
-              "display_name" : "Hive",
-              "comment" : "",
-              "versions" : [
-                "1.1.0-3646"
-              ]
-            }
-          ]
-        },
-        "operating_systems" : [
+      "operating_systems": [
           {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7";,
-            "OperatingSystems" : {
-              "os_type" : "debian7",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.6.0-3646";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.6.0-3646";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.3.6.0-3646";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
-              },
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+              "href": 
"http://172.22.91.73:8080/api/v1/mpacks/1/operating_systems/redhat7";,
+              "OperatingSystems": {
+                  "is_ambari_managed": true,
+                  "mpack_id": 1,
+                  "os_type": "redhat7",
+                  "repositories": [
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": true,
+                          "tags": [],
+                          "base_url": 
"http://dev.hortonworks.com.s3.amazonaws.com/HDPCORE/centos7/1.x/BUILDS/1.0.0-b201";,
+                          "os_type": "redhat7",
+                          "repo_id": "HDPCORE-1.0.0-b201",
+                          "repo_name": "HDPCORE",
+                          "mirrors_list": null,
+                          "default_base_url": null,
+                          "ambari_managed": true
+                      },
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": false,
+                          "tags": [],
+                          "base_url": 
"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7";,
+                          "os_type": "redhat7",
+                          "repo_id": "HDP-UTILS-1.1.0.21",
+                          "repo_name": "HDP-UTILS",
+                          "mirrors_list": null,
+                          "default_base_url": null,
+                          "ambari_managed": true
+                      }
+                  ]
               }
-            ]
           },
           {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6";,
-            "OperatingSystems" : {
-              "os_type" : "redhat6",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.3"
-            },
-            "repositories" : [
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.6.0-3646";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.6.0-3646";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.3.6.0-3646";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-2.3",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
-              },
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/redhat6/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6";,
-                  "mirrors_list" : "",
-                  "os_type" : "redhat6",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.3"
-                }
+              "href": 
"http://172.22.91.73:8080/api/v1/mpacks/1/operating_systems/ubuntu12";,
+              "OperatingSystems": {
+                  "is_ambari_managed": true,
+                  "mpack_id": 1,
+                  "os_type": "ubuntu12",
+                  "repositories": [
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": true,
+                          "tags": [],
+                          "base_url": 
"http://dev.hortonworks.com.s3.amazonaws.com/HDPCORE/ubuntu12/1.x/BUILDS/1.0.0-b201";,
+                          "os_type": "ubuntu12",
+                          "repo_id": "HDPCORE-1.0.0-b201",
+                          "repo_name": "HDPCORE",
+                          "mirrors_list": null,
+                          "default_base_url": null,
+                          "ambari_managed": true
+                      },
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": false,
+                          "tags": [],
+                          "base_url": 
"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/ubuntu12";,
+                          "os_type": "ubuntu12",
+                          "repo_id": "HDP-UTILS-1.1.0.21",
+                          "repo_name": "HDP-UTILS",
+                          "mirrors_list": null,
+                          "default_base_url": null,
+                          "ambari_managed": true
+                      }
+                  ]
               }
-            ]
           }
-        ]
-      },
-
-
-      {
-        "VersionDefinition" : {
-          "id" : "HDP-2.4-2.4.0.0",
-          "stack_name" : "HDP",
-          "stack_version" : "2.4",
-          "show_available": true,
-          "repository_version" : "2.4.0.0",
-          "version_url" : 
"file:/Users/ncole/src/hwx/ambari/contrib/version-builder/version_169.xml",
-          "release" : {
-            "build" : "169",
-            "compatible_with" : "2.4.[0-3].0",
-            "notes" : "http://example.com";,
-            "version" : "2.4.0.0"
+      ],
+      "version": [
+          {
+              "href": 
"http://172.22.91.73:8080/api/v1/stacks/HDPCORE/versions/1.0.0-b201";,
+              "Versions": {
+                  "id": 1,
+                  "stack_name": "HDPCORE",
+                  "stack_version": "1.0.0-b201"
+              }
+          }
+      ],
+      "default_operating_systems": [
+          {
+              "href": 
"http://172.22.91.73:8080/api/v1/mpacks/1/default_operating_systems/redhat7";,
+              "OperatingSystems": {
+                  "mpack_id": 1,
+                  "os_type": "redhat7",
+                  "repositories": [
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": true,
+                          "tags": [],
+                          "base_url": 
"http://dev.hortonworks.com.s3.amazonaws.com/HDPCORE/centos7/1.x/BUILDS/1.0.0-b201";,
+                          "mirrors_list": null,
+                          "repo_id": "HDPCORE-1.0.0-b201",
+                          "repo_name": "HDPCORE"
+                      },
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": false,
+                          "tags": [],
+                          "base_url": 
"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7";,
+                          "mirrors_list": null,
+                          "repo_id": "HDP-UTILS-1.1.0.21",
+                          "repo_name": "HDP-UTILS"
+                      }
+                  ]
+              }
           },
-          "stack_services" : [
-            {
-              "name" : "HDFS",
-              "display_name" : "HDFS",
-              "comment" : "Data warehouse system for ad-hoc queries & analysis 
of large datasets and table & storage management service",
-              "versions" : [
-                "2.7.1.2-169"
-              ]
-            },
-            {
-              "name" : "YARN",
-              "display_name" : "YARN",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-169"
-              ]
-            },
-            {
-              "name" : "HBase",
-              "display_name" : "HBase",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-169"
-              ]
-            },
-            {
-              "name" : "ZOOKEEPER",
-              "display_name" : "ZooKeeper",
-              "comment" : "",
-              "versions" : [
-                "1.7.3-169"
-              ]
-            },
-            {
-              "name" : "Hive",
-              "display_name" : "Hive",
-              "comment" : "",
-              "versions" : [
-                "1.1.0-169"
-              ]
-            },
-            {
-              "name" : "MAPREDUCE2",
-              "display_name" : "MapReduce2",
-              "comment" : "service",
-              "versions" : [
-                "2.7.1.2-169"
-              ]
-            },
-            {
-              "name" : "Slider",
-              "display_name" : "Slider",
-              "comment" : "service",
-              "versions" : [
-                "2.7.1.2-169"
-              ]
-            },
-            {
-              "name" : "Pig",
-              "display_name" : "Pig",
-              "comment" : "service",
-              "versions" : [
-                "2.7.1.2-169"
-              ]
-            },
-            {
-              "name" : "Sqoop",
-              "display_name" : "Sqoop",
-              "comment" : "service",
-              "versions" : [
-                "2.7.1.2-169"
-              ]
-            }
-          ]
-        },
-        "operating_systems" : [
           {
-            "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7";,
-            "OperatingSystems" : {
-              "os_type" : "debian7",
-              "repository_version_id" : 1,
-              "stack_name" : "HDP",
-              "stack_version" : "2.4"
-            },
-            "repositories" : [
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-2.3";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.4.0.0-169";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.4.0.0-169";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian7/2.x/BUILDS/2.4.0.0-169";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-2.4",
-                  "repo_name" : "HDP",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.4"
-                }
-              },
-              {
-                "href" : 
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.3/repository_versions/1/operating_systems/debian7/repositories/HDP-UTILS-1.1.0.20";,
-                "Repositories" : {
-                  "base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "default_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "latest_base_url" : 
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian7";,
-                  "mirrors_list" : "",
-                  "os_type" : "debian7",
-                  "repo_id" : "HDP-UTILS-1.1.0.20",
-                  "repo_name" : "HDP-UTILS",
-                  "repository_version_id" : 1,
-                  "stack_name" : "HDP",
-                  "stack_version" : "2.4"
-                }
+              "href": 
"http://172.22.91.73:8080/api/v1/mpacks/1/default_operating_systems/ubuntu12";,
+              "OperatingSystems": {
+                  "mpack_id": 1,
+                  "os_type": "ubuntu12",
+                  "repositories": [
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": true,
+                          "tags": [],
+                          "base_url": 
"http://dev.hortonworks.com.s3.amazonaws.com/HDPCORE/ubuntu12/1.x/BUILDS/1.0.0-b201";,
+                          "mirrors_list": null,
+                          "repo_id": "HDPCORE-1.0.0-b201",
+                          "repo_name": "HDPCORE"
+                      },
+                      {
+                          "distribution": null,
+                          "components": null,
+                          "unique": false,
+                          "tags": [],
+                          "base_url": 
"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/ubuntu12";,
+                          "mirrors_list": null,
+                          "repo_id": "HDP-UTILS-1.1.0.21",
+                          "repo_name": "HDP-UTILS"
+                      }
+                  ]
               }
-            ]
           }
-        ]
-      }
-    ]
-    };
+      ]
+  };
     beforeEach(function () {
       App.resetDsStoreTypeMap(App.Repository);
       App.resetDsStoreTypeMap(App.OperatingSystem);
       App.resetDsStoreTypeMap(App.Stack);
       App.resetDsStoreTypeMap(App.ServiceSimple);
       sinon.stub(App.store, 'commit', Em.K);
-      
testData.items.sortProperty('VersionDefinition.stack_version').reverse().forEach(function
 (versionDefinition) {
-        App.stackMapper.map(versionDefinition);
-      });
+      App.stackMapper.map(testData);
     });
     afterEach(function(){
       App.store.commit.restore();
     });
 
     it ('should map all Stack data', function() {
-      expect(App.Stack.find().get('length')).to.equal(4);
+      expect(App.Stack.find().get('length')).to.equal(1);
     });
 
     it ('all stacks are showAvailable', function() {
@@ -603,29 +452,29 @@ describe('App.stackMapper', function () {
       expect(App.Stack.find().everyProperty('isSelected')).to.equal(false);
     });
 
-    it ('7 OSes are mapped', function() {
-      expect(App.OperatingSystem.find().get('length')).to.equal(7);
+    it ('2 OSes are mapped', function() {
+      expect(App.OperatingSystem.find().get('length')).to.equal(2);
     });
 
     it ('OSes have valid ids', function() {
       expect(App.OperatingSystem.find().mapProperty('id')).to.eql(
-        ['HDP-2.4-2.4.0.0-debian7', 'HDP-2.3-2.3.6.0-debian7', 
'HDP-2.3-2.3.6.0-redhat6', 'HDP-2.3-2.3.4.0-debian7',
-        'HDP-2.3-2.3.4.0-redhat6', 'HDP-2.3-debian7', 'HDP-2.3-redhat6']);
+        [
+          'HDPCORE-1.0.0-b201-redhat7',
+          'HDPCORE-1.0.0-b201-ubuntu12'
+        ]);
     });
 
-    it ('14 repositories are mapped', function() {
-      expect(App.Repository.find().get('length')).to.equal(14);
+    it ('4 repositories are mapped', function() {
+      expect(App.Repository.find().get('length')).to.equal(4);
     });
 
     it ('Repositories ids are valid', function() {
       expect(App.Repository.find().mapProperty('id')).to.eql(
-        ['HDP-2.4-2.4.0.0-debian7-HDP-2.4', 
'HDP-2.4-2.4.0.0-debian7-HDP-UTILS-1.1.0.20',
-          'HDP-2.3-2.3.6.0-debian7-HDP-2.3', 
'HDP-2.3-2.3.6.0-debian7-HDP-UTILS-1.1.0.20',
-          
'HDP-2.3-2.3.6.0-redhat6-HDP-2.3','HDP-2.3-2.3.6.0-redhat6-HDP-UTILS-1.1.0.20',
-          
'HDP-2.3-2.3.4.0-debian7-HDP-2.3','HDP-2.3-2.3.4.0-debian7-HDP-UTILS-1.1.0.20',
-          'HDP-2.3-2.3.4.0-redhat6-HDP-2.3', 
'HDP-2.3-2.3.4.0-redhat6-HDP-UTILS-1.1.0.20',
-          'HDP-2.3-debian7-HDP-2.3', 'HDP-2.3-debian7-HDP-UTILS-1.1.0.20',
-          'HDP-2.3-redhat6-HDP-2.3', 'HDP-2.3-redhat6-HDP-UTILS-1.1.0.20'
+        [
+          'HDPCORE-1.0.0-b201-redhat7-HDPCORE-1.0.0-b201',
+          'HDPCORE-1.0.0-b201-redhat7-HDP-UTILS-1.1.0.21',
+          'HDPCORE-1.0.0-b201-ubuntu12-HDPCORE-1.0.0-b201',
+          'HDPCORE-1.0.0-b201-ubuntu12-HDP-UTILS-1.1.0.21'
         ]);
     });
   });

-- 
To stop receiving notification emails like this one, please contact
ishan...@apache.org.

Reply via email to