YARN-8276. [UI2] After version field became mandatory, form-based submission of new YARN service doesn't work. Contributed by Gergely Novák.
(cherry picked from commit 9c4cbed8d1
)
This commit is contained in:
parent
fce54631c5
commit
ea2fa52d92
|
@ -152,7 +152,8 @@ export default Ember.Component.extend({
|
||||||
|
|
||||||
isUserNameGiven: Ember.computed.empty('userName'),
|
isUserNameGiven: Ember.computed.empty('userName'),
|
||||||
|
|
||||||
isValidServiceDef: Ember.computed('serviceDef.name', 'serviceDef.queue', 'serviceDef.serviceComponents.[]', function () {
|
isValidServiceDef: Ember.computed('serviceDef.name', 'serviceDef.queue',
|
||||||
|
'serviceDef.version', 'serviceDef.serviceComponents.[]', function () {
|
||||||
return this.get('serviceDef').isValidServiceDef();
|
return this.get('serviceDef').isValidServiceDef();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import Ember from 'ember';
|
||||||
export default DS.Model.extend({
|
export default DS.Model.extend({
|
||||||
name: DS.attr('string', {defaultValue: ''}),
|
name: DS.attr('string', {defaultValue: ''}),
|
||||||
queue: DS.attr('string', {defaultValue: ''}),
|
queue: DS.attr('string', {defaultValue: ''}),
|
||||||
|
version: DS.attr('string', {defaultValue: ''}),
|
||||||
lifetime: DS.attr('string', {defaultValue: ''}),
|
lifetime: DS.attr('string', {defaultValue: ''}),
|
||||||
isCached: DS.attr('boolean', {defaultValue: false}),
|
isCached: DS.attr('boolean', {defaultValue: false}),
|
||||||
|
|
||||||
|
@ -44,6 +45,7 @@ export default DS.Model.extend({
|
||||||
clear() {
|
clear() {
|
||||||
this.set('name', '');
|
this.set('name', '');
|
||||||
this.set('queue', '');
|
this.set('queue', '');
|
||||||
|
this.set('version', '');
|
||||||
this.set('lifetime', '');
|
this.set('lifetime', '');
|
||||||
this.get('serviceComponents').clear();
|
this.get('serviceComponents').clear();
|
||||||
this.get('serviceConfigs').clear();
|
this.get('serviceConfigs').clear();
|
||||||
|
@ -52,7 +54,8 @@ export default DS.Model.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
isValidServiceDef() {
|
isValidServiceDef() {
|
||||||
return this.get('name') !== '' && this.get('queue') !== '' && this.get('serviceComponents.length') > 0;
|
return this.get('name') !== '' && this.get('queue') !== '' &&
|
||||||
|
this.get('version') !== '' && this.get('serviceComponents.length') > 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
createNewServiceComponent() {
|
createNewServiceComponent() {
|
||||||
|
@ -115,6 +118,7 @@ export default DS.Model.extend({
|
||||||
var json = {
|
var json = {
|
||||||
name: "",
|
name: "",
|
||||||
queue: "",
|
queue: "",
|
||||||
|
version: "",
|
||||||
lifetime: "-1",
|
lifetime: "-1",
|
||||||
components: [],
|
components: [],
|
||||||
configuration: {
|
configuration: {
|
||||||
|
@ -131,6 +135,7 @@ export default DS.Model.extend({
|
||||||
|
|
||||||
json['name'] = this.get('name');
|
json['name'] = this.get('name');
|
||||||
json['queue'] = this.get('queue');
|
json['queue'] = this.get('queue');
|
||||||
|
json['version'] = this.get('version');
|
||||||
|
|
||||||
if (this.get('lifetime')) {
|
if (this.get('lifetime')) {
|
||||||
json['lifetime'] = this.get('lifetime');
|
json['lifetime'] = this.get('lifetime');
|
||||||
|
@ -266,6 +271,7 @@ export default DS.Model.extend({
|
||||||
var clone = this.createNewServiceDef();
|
var clone = this.createNewServiceDef();
|
||||||
clone.set('name', this.get('name'));
|
clone.set('name', this.get('name'));
|
||||||
clone.set('queue', this.get('queue'));
|
clone.set('queue', this.get('queue'));
|
||||||
|
clone.set('version', this.get('version'));
|
||||||
clone.set('lifetime', this.get('lifetime'));
|
clone.set('lifetime', this.get('lifetime'));
|
||||||
clone.get('serviceComponents', this.get('serviceComponents'));
|
clone.get('serviceComponents', this.get('serviceComponents'));
|
||||||
clone.get('serviceConfigs', this.get('serviceConfigs'));
|
clone.get('serviceConfigs', this.get('serviceConfigs'));
|
||||||
|
|
|
@ -99,6 +99,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="form-group shrink-height">
|
||||||
|
<label class="required">Service Version</label>
|
||||||
|
<span class="glyphicon glyphicon-info-sign info-icon" data-info="version"></span>
|
||||||
|
{{input type="text" class="form-control" placeholder="1.0.0" value=serviceDef.version}}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
export default {
|
export default {
|
||||||
serviceName: "A unique application name",
|
serviceName: "A unique application name",
|
||||||
queueName: "The YARN queue that this application should be submitted to",
|
queueName: "The YARN queue that this application should be submitted to",
|
||||||
|
version: "Version of the service",
|
||||||
lifetime: "Life time (in seconds) of the application from the time it reaches the STARTED state (after which it is automatically destroyed by YARN). For unlimited lifetime do not set a lifetime value.",
|
lifetime: "Life time (in seconds) of the application from the time it reaches the STARTED state (after which it is automatically destroyed by YARN). For unlimited lifetime do not set a lifetime value.",
|
||||||
components: "One or more components of the application. If the application is HBase say, then the component can be a simple role like master or regionserver. If the application is a complex business webapp then a component can be other applications say Kafka or Storm. Thereby it opens up the support for complex and nested applications.",
|
components: "One or more components of the application. If the application is HBase say, then the component can be a simple role like master or regionserver. If the application is a complex business webapp then a component can be other applications say Kafka or Storm. Thereby it opens up the support for complex and nested applications.",
|
||||||
configurations: "Set of configuration properties that can be injected into the application components via envs, files and custom pluggable helper docker containers. Files of several standard formats like xml, properties, json, yaml and templates will be supported.",
|
configurations: "Set of configuration properties that can be injected into the application components via envs, files and custom pluggable helper docker containers. Files of several standard formats like xml, properties, json, yaml and templates will be supported.",
|
||||||
|
|
Loading…
Reference in New Issue