You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vs...@apache.org on 2018/08/08 08:35:20 UTC
[ambari] branch trunk updated: AMBARI-24387 - Support YARN
Application timeout feature in Ambari Capaacity Scheduler View (#1924)
This is an automated email from the ASF dual-hosted git repository.
vsairam pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new 4912556 AMBARI-24387 - Support YARN Application timeout feature in Ambari Capaacity Scheduler View (#1924)
4912556 is described below
commit 49125564ffb60e1568a8eee19e07a431036f2a7d
Author: Akhil S Naik <as...@hortonworks.com>
AuthorDate: Wed Aug 8 14:05:17 2018 +0530
AMBARI-24387 - Support YARN Application timeout feature in Ambari Capaacity Scheduler View (#1924)
* AMBARI-24387 - Support YARN Application timeout feature in Ambari Capacity Scheduler View
* AMBARI-24387 - Support YARN Application timeout feature in Ambari Capacity Scheduler View change MAximum Lifetime to MAximum Application lifetime (asnaik)
* Revert git ignore -- AMBARI-24387 - Support YARN Application timeout feature in Ambari Capacity Scheduler View change MAximum Lifetime to MAximum Application lifetime (asnaik)
---
.../src/main/resources/ui/app/models/queue.js | 14 ++++-
.../src/main/resources/ui/app/serializers.js | 6 +-
.../src/main/resources/ui/app/templates/queue.hbs | 68 ++++++++++++++++++++++
3 files changed, 86 insertions(+), 2 deletions(-)
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/models/queue.js b/contrib/views/capacity-scheduler/src/main/resources/ui/app/models/queue.js
index 37d9716..ddfe0db 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/models/queue.js
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/models/queue.js
@@ -258,6 +258,8 @@ App.Queue = DS.Model.extend({
priority: DS.attr('number', {defaultValue: 0}),
maximum_allocation_mb:DS.attr('number'),
maximum_allocation_vcores:DS.attr('number'),
+ maximum_application_lifetime:DS.attr('number'),
+ default_application_lifetime:DS.attr('number'),
disable_preemption: DS.attr('string', {defaultValue: ''}),
isPreemptionInherited: DS.attr('boolean', {defaultValue: true}),
@@ -340,5 +342,15 @@ App.Queue = DS.Model.extend({
isLeafQ: function() {
return this.get('queues') === null;
- }.property('queues')
+ }.property('queues'),
+
+ /**
+ * To reset the maximum_application_lifetime and default_application_lifetime if current Q is no longer Leaf Queue
+ */
+ watchChangeLeafQueue: function () {
+ if (this.get('isLeafQ') == false) {
+ this.set('maximum_application_lifetime', null);
+ this.set('default_application_lifetime', null);
+ }
+ }.observes('isLeafQ')
});
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/serializers.js b/contrib/views/capacity-scheduler/src/main/resources/ui/app/serializers.js
index edcf5d1..91ca01f 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/serializers.js
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/serializers.js
@@ -109,7 +109,9 @@ App.SerializerMixin = Em.Mixin.create({
disable_preemption: props[base_path + '.disable_preemption'] || '',
isPreemptionInherited: (props[base_path + '.disable_preemption'] !== undefined)?false:true,
maximum_allocation_mb: props[base_path + '.maximum-allocation-mb'] || null,
- maximum_allocation_vcores: props[base_path + '.maximum-allocation-vcores'] || null
+ maximum_allocation_vcores: props[base_path + '.maximum-allocation-vcores'] || null,
+ maximum_application_lifetime: props[base_path + '.maximum-application-lifetime'] || null,
+ default_application_lifetime: props[base_path + '.default-application-lifetime'] || null
};
//Converting capacity and max-capacity into two decimal point float numbers
@@ -233,6 +235,8 @@ App.QueueSerializer = DS.RESTSerializer.extend(App.SerializerMixin,{
json[this.PREFIX + "." + record.get('path') + ".ordering-policy"] = record.get('ordering_policy')||null;
json[this.PREFIX + "." + record.get('path') + ".maximum-allocation-mb"] = record.get('maximum_allocation_mb') || null;
json[this.PREFIX + "." + record.get('path') + ".maximum-allocation-vcores"] = record.get('maximum_allocation_vcores') || null;
+ json[this.PREFIX + "." + record.get('path') + ".maximum-application-lifetime"] = record.get('maximum_application_lifetime') || null;
+ json[this.PREFIX + "." + record.get('path') + ".default-application-lifetime"] = record.get('default_application_lifetime') || null;
if (record.get('ordering_policy') == 'fair') {
json[this.PREFIX + "." + record.get('path') + ".ordering-policy.fair.enable-size-based-weight"] = record.get('enable_size_based_weight');
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
index 802b09c..2d2ce06 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
@@ -416,6 +416,74 @@
{{/if}}
</div>
{{/if}}
+ {{#if content.isLeafQ}}
+ <div class="form-group">
+ {{tooltip-label
+ class="col-xs-6 control-label"
+ label='Maximum Application Lifetime '
+ message='Maximum lifetime of an application which is submitted to a queue in seconds.Any value less than or equal to zero will be considered as disabled.<br/> If positive value is configured then any application submitted to this queue will be killed after exceeds the configured lifetime'}}
+ {{#if isOperator}}
+ <div class="col-xs-6 control-value input-percent-wrap">
+ <div>
+ <div class="input-group input-percent">
+ {{int-input value=content.maximum_application_lifetime class="input-sm input-int"
+ placeholder="-1"}}
+ <span class="input-group-addon">sec</span>
+ </div>
+ </div>
+ {{#if queueDirtyFilelds.maximum_application_lifetime}}
+ <div class="btn-group btn-group-xs">
+ <a {{action 'rollbackProp' 'maximum_application_lifetime' content}} href="#"
+ class="btn btn-default btn-warning"><i
+ class="fa fa-undo"></i></a>
+ </div>
+ {{/if}}
+ </div>
+ {{else}}
+ <div class="col-xs-6">
+ {{#if content.maximum_application_lifetime}}
+ <p class="form-control-static">{{content.maximum_application_lifetime}} sec</p>
+ {{else}}
+ <p class="form-control-static">-1</p>
+ {{/if}}
+ </div>
+ {{/if}}
+ </div>
+ {{/if}}
+ {{#if content.isLeafQ}}
+ <div class="form-group">
+ {{tooltip-label
+ class="col-xs-6 control-label"
+ label='Default Application Lifetime '
+ message='Default lifetime of an application which is submitted to a queue in seconds. Any value less than or equal to zero will be considered as disabled.<br/> If the user has not submitted application with lifetime value then this value will be taken.'}}
+ {{#if isOperator}}
+ <div class="col-xs-6 control-value input-percent-wrap">
+ <div>
+ <div class="input-group input-percent">
+ {{int-input value=content.default_application_lifetime class="input-sm input-int"
+ placeholder="-1"}}
+ <span class="input-group-addon">sec</span>
+ </div>
+ </div>
+ {{#if queueDirtyFilelds.default_application_lifetime}}
+ <div class="btn-group btn-group-xs">
+ <a {{action 'rollbackProp' 'default_application_lifetime' content}} href="#"
+ class="btn btn-default btn-warning"><i
+ class="fa fa-undo"></i></a>
+ </div>
+ {{/if}}
+ </div>
+ {{else}}
+ <div class="col-xs-6">
+ {{#if content.default_application_lifetime}}
+ <p class="form-control-static">{{content.default_application_lifetime}} sec</p>
+ {{else}}
+ <p class="form-control-static">-1</p>
+ {{/if}}
+ </div>
+ {{/if}}
+ </div>
+ {{/if}}
{{#if isFairOP}}
<div class="form-group">
{{tooltip-label