diff --git a/app/components/labels-section/component.js b/app/components/labels-section/component.js index 6758d741d..cb834d128 100644 --- a/app/components/labels-section/component.js +++ b/app/components/labels-section/component.js @@ -9,12 +9,21 @@ export default Ember.Component.extend({ var obj = this.get('model')||{}; var keys = Ember.keys(obj); keys.forEach(function(key) { - var isUser = key.indexOf(C.LABEL.SYSTEM_PREFIX) !== 0; + var type = 'user'; + if ( key.indexOf(C.LABEL.SCHED_AFFINITY) === 0 ) + { + type = 'affinity'; + } + else if ( key.indexOf(C.LABEL.SYSTEM_PREFIX) === 0 ) + { + type = 'system'; + } + out.push(Ember.Object.create({ key: key, value: obj[key], - isUser: isUser, - kind: (isUser ? 'User' : 'System'), + type: type, + isUser: (type === 'user'), })); }); diff --git a/app/components/labels-section/template.hbs b/app/components/labels-section/template.hbs index ba162f013..373566bc4 100644 --- a/app/components/labels-section/template.hbs +++ b/app/components/labels-section/template.hbs @@ -8,8 +8,8 @@ {{#each label in labelArray}} - - {{label.kind}} + + {{uc-first label.type}} {{label.key}} {{label.value}} diff --git a/app/mixins/edit-container.js b/app/mixins/edit-container.js index 60ef35203..b9fbfa8a3 100644 --- a/app/mixins/edit-container.js +++ b/app/mixins/edit-container.js @@ -134,7 +134,7 @@ export default Ember.Mixin.create(Cattle.NewOrEditMixin, EditHealthCheck, EditLa }, addSchedulingRule: function() { - this.send('addSystemLabel'); + this.send('addSystemLabel','','','affinity'); }, removeSchedulingRule: function(obj) { @@ -167,7 +167,6 @@ export default Ember.Mixin.create(Cattle.NewOrEditMixin, EditHealthCheck, EditLa this.initCommand(); this.initEntryPoint(); this.initMemory(); - this.initLabels(); this.initHealthCheck(); this.initScheduling(); } diff --git a/app/mixins/edit-labels.js b/app/mixins/edit-labels.js index 1e9933622..6c7ba21ce 100644 --- a/app/mixins/edit-labels.js +++ b/app/mixins/edit-labels.js @@ -8,14 +8,21 @@ export default Ember.Mixin.create({ addLabel: function() { this.get('labelArray').pushObject(Ember.Object.create({ isUser: true, + type: 'user', key: '', value: '', })); }, - addSystemLabel: function(key, value) { + addSystemLabel: function(key, value, type) { + if ( !type ) + { + type = ((key||'').indexOf(C.LABEL.SCHED_AFFINITY) === 0 ? 'affinity' : 'system'); + } + this.get('labelArray').pushObject(Ember.Object.create({ isUser: false, + type: type, key: key, value: value, })); @@ -97,10 +104,21 @@ export default Ember.Mixin.create({ var keys = Object.keys(obj); var out = []; keys.forEach(function(key) { + var type = 'user'; + if ( key.indexOf(C.LABEL.SCHED_AFFINITY) === 0 ) + { + type = 'affinity'; + } + else if ( key.indexOf(C.LABEL.SYSTEM_PREFIX) === 0 ) + { + type = 'system'; + } + out.push(Ember.Object.create({ key: key, value: obj[key], - isUser: key.indexOf(C.LABEL.SYSTEM_PREFIX) !== 0, + type: type, + isUser: (type === 'user'), })); }); @@ -139,14 +157,25 @@ export default Ember.Mixin.create({ return null; }, - setLabel: function(key, value, user) { + setLabel: function(key, value) { key = (key||'').toLowerCase(); + var type = 'user'; + if ( key.indexOf(C.LABEL.SCHED_AFFINITY) === 0 ) + { + type = 'affinity'; + } + else if ( key.indexOf(C.LABEL.SYSTEM_PREFIX) === 0 ) + { + type = 'system'; + } + var existing = this.getLabel(key); if ( existing ) { Ember.setProperties(existing,{ value: value, - isUser: !!user + type: type, + isUser: (type === 'user'), }); } else @@ -154,7 +183,8 @@ export default Ember.Mixin.create({ existing = this.get('labelArray').pushObject(Ember.Object.create({ key: key, value: value, - isUser: !!user + type: type, + isUser: (type === 'user'), })); } diff --git a/app/mixins/read-labels.js b/app/mixins/read-labels.js index e0f3c763a..3e3b201ae 100644 --- a/app/mixins/read-labels.js +++ b/app/mixins/read-labels.js @@ -9,12 +9,20 @@ export default Ember.Mixin.create({ var obj = this.get('labelResource.labels')||{}; var keys = Ember.keys(obj).sort(); keys.forEach(function(key) { - var isUser = key.indexOf(C.LABEL.SYSTEM_PREFIX) !== 0; + var type = 'user'; + if ( key.indexOf(C.LABEL.SCHED_AFFINITY) === 0 ) + { + type = 'affinity'; + } + else if ( key.indexOf(C.LABEL.SYSTEM_PREFIX) === 0 ) + { + type = 'system'; + } out.push(Ember.Object.create({ key: key, value: obj[key], - isUser: isUser, - kind: (isUser ? 'User' : 'System'), + type: type, + isUser: (type === 'user'), })); }); diff --git a/app/service/new/template.hbs b/app/service/new/template.hbs index f483735f5..35fc9f6dd 100644 --- a/app/service/new/template.hbs +++ b/app/service/new/template.hbs @@ -4,6 +4,8 @@ {{partial "container/edit-name"}} + {{partial "form-divider"}} +
diff --git a/app/templates/container/new-scheduling.hbs b/app/templates/container/new-scheduling.hbs index df8fb606b..9f97da56d 100644 --- a/app/templates/container/new-scheduling.hbs +++ b/app/templates/container/new-scheduling.hbs @@ -50,9 +50,9 @@ {{#each rule in labelArray}} - {{#unless rule.isUser}} + {{#if (eq rule.type "affinity")}} {{scheduling-rule-row rule=rule allHosts=allHosts remove="removeSchedulingRule"}} - {{/unless}} + {{/if}} {{/each}} diff --git a/app/utils/constants.js b/app/utils/constants.js index 9f08a917d..e2fefd7e3 100644 --- a/app/utils/constants.js +++ b/app/utils/constants.js @@ -78,6 +78,7 @@ export default { SYSTEM_PREFIX: 'io.rancher.', SERVICE_NAME: 'io.rancher.service.name', SCHED_GLOBAL: 'io.rancher.scheduler.global', + SCHED_AFFINITY: 'io.rancher.scheduler.affinity:', SCHED_CONTAINER: 'io.rancher.scheduler.affinity:container', SCHED_HOST_LABEL: 'io.rancher.scheduler.affinity:host_label', SCHED_CONTAINER_LABEL: 'io.rancher.scheduler.affinity:container_label', diff --git a/package.json b/package.json index 30f69b699..99ee469f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "0.23.0-rc4", + "version": "0.23.0-rc5", "private": true, "directories": { "doc": "doc",