Fix user+global+affinity labels

This commit is contained in:
Vincent Fiduccia 2015-06-03 23:40:14 -07:00
parent 7e2e84429f
commit a8e94d9827
9 changed files with 67 additions and 18 deletions

View File

@ -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'),
}));
});

View File

@ -8,8 +8,8 @@
</thead>
<tbody>
{{#each label in labelArray}}
<tr {{bind-attr class="isUser::text-muted"}}>
<td>{{label.kind}}</td>
<tr {{bind-attr class="label.isUser::text-muted"}}>
<td>{{uc-first label.type}}</td>
<td>{{label.key}}</td>
<td>{{label.value}}</td>
</tr>

View File

@ -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();
}

View File

@ -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'),
}));
}

View File

@ -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'),
}));
});

View File

@ -4,6 +4,8 @@
{{partial "container/edit-name"}}
{{partial "form-divider"}}
<div class="row">
<div class="col-sm-12 col-md-2 form-label">
<label>Scale</label>

View File

@ -50,9 +50,9 @@
</thead>
<tbody>
{{#each rule in labelArray}}
{{#unless rule.isUser}}
{{#if (eq rule.type "affinity")}}
{{scheduling-rule-row rule=rule allHosts=allHosts remove="removeSchedulingRule"}}
{{/unless}}
{{/if}}
{{/each}}
</tbody>
</table>

View File

@ -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',

View File

@ -1,6 +1,6 @@
{
"name": "ui",
"version": "0.23.0-rc4",
"version": "0.23.0-rc5",
"private": true,
"directories": {
"doc": "doc",