mirror of https://github.com/rancher/ui.git
Fix user+global+affinity labels
This commit is contained in:
parent
7e2e84429f
commit
a8e94d9827
|
|
@ -9,12 +9,21 @@ export default Ember.Component.extend({
|
||||||
var obj = this.get('model')||{};
|
var obj = this.get('model')||{};
|
||||||
var keys = Ember.keys(obj);
|
var keys = Ember.keys(obj);
|
||||||
keys.forEach(function(key) {
|
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({
|
out.push(Ember.Object.create({
|
||||||
key: key,
|
key: key,
|
||||||
value: obj[key],
|
value: obj[key],
|
||||||
isUser: isUser,
|
type: type,
|
||||||
kind: (isUser ? 'User' : 'System'),
|
isUser: (type === 'user'),
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each label in labelArray}}
|
{{#each label in labelArray}}
|
||||||
<tr {{bind-attr class="isUser::text-muted"}}>
|
<tr {{bind-attr class="label.isUser::text-muted"}}>
|
||||||
<td>{{label.kind}}</td>
|
<td>{{uc-first label.type}}</td>
|
||||||
<td>{{label.key}}</td>
|
<td>{{label.key}}</td>
|
||||||
<td>{{label.value}}</td>
|
<td>{{label.value}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ export default Ember.Mixin.create(Cattle.NewOrEditMixin, EditHealthCheck, EditLa
|
||||||
},
|
},
|
||||||
|
|
||||||
addSchedulingRule: function() {
|
addSchedulingRule: function() {
|
||||||
this.send('addSystemLabel');
|
this.send('addSystemLabel','','','affinity');
|
||||||
},
|
},
|
||||||
|
|
||||||
removeSchedulingRule: function(obj) {
|
removeSchedulingRule: function(obj) {
|
||||||
|
|
@ -167,7 +167,6 @@ export default Ember.Mixin.create(Cattle.NewOrEditMixin, EditHealthCheck, EditLa
|
||||||
this.initCommand();
|
this.initCommand();
|
||||||
this.initEntryPoint();
|
this.initEntryPoint();
|
||||||
this.initMemory();
|
this.initMemory();
|
||||||
this.initLabels();
|
|
||||||
this.initHealthCheck();
|
this.initHealthCheck();
|
||||||
this.initScheduling();
|
this.initScheduling();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,21 @@ export default Ember.Mixin.create({
|
||||||
addLabel: function() {
|
addLabel: function() {
|
||||||
this.get('labelArray').pushObject(Ember.Object.create({
|
this.get('labelArray').pushObject(Ember.Object.create({
|
||||||
isUser: true,
|
isUser: true,
|
||||||
|
type: 'user',
|
||||||
key: '',
|
key: '',
|
||||||
value: '',
|
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({
|
this.get('labelArray').pushObject(Ember.Object.create({
|
||||||
isUser: false,
|
isUser: false,
|
||||||
|
type: type,
|
||||||
key: key,
|
key: key,
|
||||||
value: value,
|
value: value,
|
||||||
}));
|
}));
|
||||||
|
|
@ -97,10 +104,21 @@ export default Ember.Mixin.create({
|
||||||
var keys = Object.keys(obj);
|
var keys = Object.keys(obj);
|
||||||
var out = [];
|
var out = [];
|
||||||
keys.forEach(function(key) {
|
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({
|
out.push(Ember.Object.create({
|
||||||
key: key,
|
key: key,
|
||||||
value: obj[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;
|
return null;
|
||||||
},
|
},
|
||||||
|
|
||||||
setLabel: function(key, value, user) {
|
setLabel: function(key, value) {
|
||||||
key = (key||'').toLowerCase();
|
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);
|
var existing = this.getLabel(key);
|
||||||
if ( existing )
|
if ( existing )
|
||||||
{
|
{
|
||||||
Ember.setProperties(existing,{
|
Ember.setProperties(existing,{
|
||||||
value: value,
|
value: value,
|
||||||
isUser: !!user
|
type: type,
|
||||||
|
isUser: (type === 'user'),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -154,7 +183,8 @@ export default Ember.Mixin.create({
|
||||||
existing = this.get('labelArray').pushObject(Ember.Object.create({
|
existing = this.get('labelArray').pushObject(Ember.Object.create({
|
||||||
key: key,
|
key: key,
|
||||||
value: value,
|
value: value,
|
||||||
isUser: !!user
|
type: type,
|
||||||
|
isUser: (type === 'user'),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,20 @@ export default Ember.Mixin.create({
|
||||||
var obj = this.get('labelResource.labels')||{};
|
var obj = this.get('labelResource.labels')||{};
|
||||||
var keys = Ember.keys(obj).sort();
|
var keys = Ember.keys(obj).sort();
|
||||||
keys.forEach(function(key) {
|
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({
|
out.push(Ember.Object.create({
|
||||||
key: key,
|
key: key,
|
||||||
value: obj[key],
|
value: obj[key],
|
||||||
isUser: isUser,
|
type: type,
|
||||||
kind: (isUser ? 'User' : 'System'),
|
isUser: (type === 'user'),
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
{{partial "container/edit-name"}}
|
{{partial "container/edit-name"}}
|
||||||
|
|
||||||
|
{{partial "form-divider"}}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-2 form-label">
|
<div class="col-sm-12 col-md-2 form-label">
|
||||||
<label>Scale</label>
|
<label>Scale</label>
|
||||||
|
|
|
||||||
|
|
@ -50,9 +50,9 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each rule in labelArray}}
|
{{#each rule in labelArray}}
|
||||||
{{#unless rule.isUser}}
|
{{#if (eq rule.type "affinity")}}
|
||||||
{{scheduling-rule-row rule=rule allHosts=allHosts remove="removeSchedulingRule"}}
|
{{scheduling-rule-row rule=rule allHosts=allHosts remove="removeSchedulingRule"}}
|
||||||
{{/unless}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@ export default {
|
||||||
SYSTEM_PREFIX: 'io.rancher.',
|
SYSTEM_PREFIX: 'io.rancher.',
|
||||||
SERVICE_NAME: 'io.rancher.service.name',
|
SERVICE_NAME: 'io.rancher.service.name',
|
||||||
SCHED_GLOBAL: 'io.rancher.scheduler.global',
|
SCHED_GLOBAL: 'io.rancher.scheduler.global',
|
||||||
|
SCHED_AFFINITY: 'io.rancher.scheduler.affinity:',
|
||||||
SCHED_CONTAINER: 'io.rancher.scheduler.affinity:container',
|
SCHED_CONTAINER: 'io.rancher.scheduler.affinity:container',
|
||||||
SCHED_HOST_LABEL: 'io.rancher.scheduler.affinity:host_label',
|
SCHED_HOST_LABEL: 'io.rancher.scheduler.affinity:host_label',
|
||||||
SCHED_CONTAINER_LABEL: 'io.rancher.scheduler.affinity:container_label',
|
SCHED_CONTAINER_LABEL: 'io.rancher.scheduler.affinity:container_label',
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "ui",
|
"name": "ui",
|
||||||
"version": "0.23.0-rc4",
|
"version": "0.23.0-rc5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"directories": {
|
"directories": {
|
||||||
"doc": "doc",
|
"doc": "doc",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue