diff --git a/lib/global-admin/addon/clusters/new/rke/controller.js b/lib/global-admin/addon/clusters/new/rke/controller.js index fb101ef6f..91744dbb2 100644 --- a/lib/global-admin/addon/clusters/new/rke/controller.js +++ b/lib/global-admin/addon/clusters/new/rke/controller.js @@ -158,10 +158,6 @@ export default Controller.extend(ACC, { isDedicated: equal('scope', 'dedicated'), - filteredMachines: computed('model.cluster.nodes.@each.{id,state}', function () { - return (get(this, 'model.cluster.nodes') || []); - }), - etcdCount: computed('model.cluster.nodes.@each.role', function () { return (get(this, 'model.cluster.nodes')||[]) .filter((x) => (get(x,'role')||[]) @@ -218,8 +214,15 @@ export default Controller.extend(ACC, { nodes.removeObject(node); }, - pickRoles() { + clearRoles() { const nodes = get(this, 'model.cluster.nodes'); + nodes.forEach((node) => { + node.set('role',[]); + }); + }, + + pickRoles() { + const nodes = get(this, 'model.cluster.nodes').sortBy('displayName'); const numNodes = get(nodes, 'length'); let haveEtcd = get(this,'etcdCount'); let haveCp = get(this,'cpCount'); @@ -280,19 +283,19 @@ export default Controller.extend(ACC, { }, toggleRole(node, type) { - if (get(node, 'role')) { - let roles = get(node, 'role').slice(); - - if (roles.includes(type)) { - set(node, 'role', roles.without(type)); - } else { - roles.pushObject(type); - // wont notify of change with out this - node.notifyPropertyChange('role'); - } - } else { - set(node, 'role', [type]); + let roles = get(node, 'role'); + if ( !roles ) { + roles = []; + set(node, 'role', roles); } + + if ( roles.includes(type) ) { + roles.removeObject(type); + } else { + roles.addObject(type); + } + + node.notifyPropertyChange('role'); } }, diff --git a/lib/global-admin/addon/clusters/new/rke/template.hbs b/lib/global-admin/addon/clusters/new/rke/template.hbs index 11e621c75..c70fbf88c 100644 --- a/lib/global-admin/addon/clusters/new/rke/template.hbs +++ b/lib/global-admin/addon/clusters/new/rke/template.hbs @@ -42,10 +42,10 @@