Repository: ambari Updated Branches: refs/heads/branch-1.6.0.slider b524dd031 -> 74f138a4b
Miscellaneous fixes for issues discovered during testing (srimanth) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/74f138a4 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/74f138a4 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/74f138a4 Branch: refs/heads/branch-1.6.0.slider Commit: 74f138a4b556770358889a8972f7312ccb2b2db5 Parents: b524dd0 Author: Srimanth Gunturi <[email protected]> Authored: Fri May 30 16:40:44 2014 -0700 Committer: Srimanth Gunturi <[email protected]> Committed: Fri May 30 16:40:44 2014 -0700 ---------------------------------------------------------------------- .../slider/SliderAppsViewControllerImpl.java | 20 ++++++++++++---- .../view/slider/rest/SliderAppsResource.java | 8 +++++-- .../ui/app/controllers/slider_app_controller.js | 13 +++++++++-- .../ui/app/mappers/slider_apps_mapper.js | 10 +------- .../ui/app/views/slider_app/summary_view.js | 24 ++++++++++++++------ 5 files changed, 50 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/74f138a4/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java ---------------------------------------------------------------------- diff --git a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java index 97919f6..2b0e140 100644 --- a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java +++ b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java @@ -947,7 +947,10 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController { return sliderClient.applicationId; } }); - logger.debug("Slider app has been frozen - " + applicationId.toString()); + if (applicationId != null) { + logger + .debug("Slider app has been frozen - " + applicationId.toString()); + } } finally { Thread.currentThread().setContextClassLoader(currentClassLoader); } @@ -976,7 +979,10 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController { return sliderClient.applicationId; } }); - logger.debug("Slider app has been thawed - " + applicationId.toString()); + if (applicationId != null) { + logger + .debug("Slider app has been thawed - " + applicationId.toString()); + } } finally { Thread.currentThread().setContextClassLoader(currentClassLoader); } @@ -1002,15 +1008,19 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController { SliderClient sliderClient = getSliderClient(); ActionFlexArgs flexArgs = new ActionFlexArgs(); flexArgs.parameters.add(sliderApp.getName()); - for (Entry<String, Integer> e : componentsMap.entrySet()){ + for (Entry<String, Integer> e : componentsMap.entrySet()) { flexArgs.componentDelegate.componentTuples.add(e.getKey()); - flexArgs.componentDelegate.componentTuples.add(e.getValue().toString()); + flexArgs.componentDelegate.componentTuples.add(e.getValue() + .toString()); } sliderClient.actionFlex(sliderApp.getName(), flexArgs); return sliderClient.applicationId; } }); - logger.debug("Slider app has been thawed - " + applicationId.toString()); + if (applicationId != null) { + logger + .debug("Slider app has been flexed - " + applicationId.toString()); + } } finally { Thread.currentThread().setContextClassLoader(currentClassLoader); } http://git-wip-us.apache.org/repos/asf/ambari/blob/74f138a4/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/rest/SliderAppsResource.java ---------------------------------------------------------------------- diff --git a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/rest/SliderAppsResource.java b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/rest/SliderAppsResource.java index 6cee80e..055cb2f 100644 --- a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/rest/SliderAppsResource.java +++ b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/rest/SliderAppsResource.java @@ -91,10 +91,13 @@ public class SliderAppsResource { JsonObject requestJson = requestContent.getAsJsonObject(); if (requestJson.has("state")) { String newState = requestJson.get("state").getAsString(); - if ("FROZEN".equals(newState)) + if ("FROZEN".equals(newState)) { sliderAppsViewController.freezeApp(appId); - else if ("RUNNING".equals(newState)) + return Response.ok().build(); + } else if ("RUNNING".equals(newState)) { sliderAppsViewController.thawApp(appId); + return Response.ok().build(); + } } else if (requestJson.has("components")) { Map<String, Integer> componentsMap = new HashMap<String, Integer>(); JsonObject componentsJson = requestJson.get("components") @@ -106,6 +109,7 @@ public class SliderAppsResource { componentsMap.put(componentName, instanceCount); } sliderAppsViewController.flexApp(appId, componentsMap); + return Response.ok().build(); } } String sliderApp = sliderAppsViewController http://git-wip-us.apache.org/repos/asf/ambari/blob/74f138a4/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js ---------------------------------------------------------------------- diff --git a/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js b/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js index 50eafb3..44d1ad9 100644 --- a/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js +++ b/contrib/views/slider/src/main/resources/ui/app/controllers/slider_app_controller.js @@ -145,7 +145,8 @@ App.SliderAppController = Ember.ObjectController.extend({ name: model.get('name'), state: "RUNNING" } - } + }, + complete: 'thawCompleteCallback' }); }, @@ -235,7 +236,7 @@ App.SliderAppController = Ember.ObjectController.extend({ }, /** - * Complate-callback for "destroy app"-request + * Complete-callback for "destroy app"-request * @method destroyCompleteCallback */ destroyCompleteCallback: function() { @@ -243,6 +244,14 @@ App.SliderAppController = Ember.ObjectController.extend({ }, /** + * Complete-callback for "thaw app"-request + * @method thawCompleteCallback + */ + thawCompleteCallback: function() { + this.transitionToRoute('slider_apps'); + }, + + /** * Create Modal Popup with data for Flex action * @method showFlexModal */ http://git-wip-us.apache.org/repos/asf/ambari/blob/74f138a4/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js ---------------------------------------------------------------------- diff --git a/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js b/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js index e751fd6..4734cb0 100644 --- a/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js +++ b/contrib/views/slider/src/main/resources/ui/app/mappers/slider_apps_mapper.js @@ -154,15 +154,7 @@ App.SliderAppsMapper = App.Mapper.createWithMixins(App.RunPeriodically, { var componentsId = app.components ? self.parseComponents(app) : [], configs = app.configs ? self.parseConfigs(app) : {}, quickLinks = self.parseQuickLinks(app), - jmx = self.parseObject(app.jmx), - masterActiveTime = jmx.findProperty('key', 'MasterActiveTime'), - masterStartTime = jmx.findProperty('key', 'MasterStartTime'); - if(masterActiveTime){ - masterActiveTime.value = new Date(Date.now() - masterActiveTime.value).getHours() + "h:" + new Date(Date.now() - masterActiveTime.value).getMinutes() + "m"; - } - if(masterStartTime){ - masterStartTime.value = (new Date(masterStartTime.value).toUTCString()); - } + jmx = self.parseObject(app.jmx); var metricNames = self.parseMetricNames(app); apps.push( Ember.Object.create({ http://git-wip-us.apache.org/repos/asf/ambari/blob/74f138a4/contrib/views/slider/src/main/resources/ui/app/views/slider_app/summary_view.js ---------------------------------------------------------------------- diff --git a/contrib/views/slider/src/main/resources/ui/app/views/slider_app/summary_view.js b/contrib/views/slider/src/main/resources/ui/app/views/slider_app/summary_view.js index 02f0b88..07300f7 100644 --- a/contrib/views/slider/src/main/resources/ui/app/views/slider_app/summary_view.js +++ b/contrib/views/slider/src/main/resources/ui/app/views/slider_app/summary_view.js @@ -85,29 +85,39 @@ App.SliderAppSummaryView = App.TableView.extend({ var model = this.get('controller.model'), existingGraphs = this.get('graphs'); if (model) { + var currentGraphIds = []; var supportedMetrics = model.get('supportedMetricNames'); if (supportedMetrics && supportedMetrics.length > 0) { + var appId = model.get('id'); supportedMetrics.split(',').forEach(function(metricName) { - if (!existingGraphs.isAny('id', metricName)) { + var graphId = metricName + '_' + appId; + currentGraphIds.push(graphId); + if (!existingGraphs.isAny('id', graphId)) { var view = App.AppMetricView.extend({ app: model, metricName: metricName }); - existingGraphs.push({id: metricName, view: view}); + existingGraphs.push({ + id : graphId, + view : view + }); } }); } - // Delete not existed graphs var toDeleteGraphs = []; existingGraphs.forEach(function(existingGraph) { - if (supportedMetrics.indexOf(existingGraph) == -1) { + if (currentGraphIds.indexOf(existingGraph.id) == -1) { toDeleteGraphs.push(existingGraph); } }); - toDeleteGraphs.forEach(function(toDeleteGraph) { - existingGraphs = existingGraphs.without(toDeleteGraph); - }); + if(toDeleteGraphs.length > 0) { + var newGraphs = existingGraphs; + toDeleteGraphs.forEach(function(toDeleteGraph) { + newGraphs = newGraphs.without(toDeleteGraph); + }); + this.set('graphs', newGraphs); + } } }.observes('controller.model.supportedMetricNames') });
