From 0a6c519539cafda60b2aab244b4759dc97580ab4 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 11:38:21 -0700 Subject: [PATCH 1/8] update page header env when a cluster is deleted --- .../page-header-environment/component.js | 14 ++++++++++++-- app/models/cluster.js | 9 +++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/components/page-header-environment/component.js b/app/components/page-header-environment/component.js index 1d37ebbab..c41d8ec19 100644 --- a/app/components/page-header-environment/component.js +++ b/app/components/page-header-environment/component.js @@ -9,9 +9,19 @@ export default Ember.Component.extend({ projects : Ember.inject.service(), project : Ember.computed.alias('projects.current'), + clusters: Ember.computed(function() { + return this.get('userStore').all('cluster', null, {url: 'clusters', forceReload: true, removeMissing: true}); + }), + projectChoices: function() { - return this.get('projects.active').sortBy('name','id'); - }.property('projects.active.@each.{id,displayName,state}'), + return this.get('projects.active').filter((project) => { + let removedish = ['removing', 'removed']; + let cluster = this.get('clusters').findBy('id', project.get('clusterId')); + if ( cluster && !removedish.includes( cluster.get('state'))) { + return project; + } + }).sortBy('name','id'); + }.property('projects.active.@each.{id,displayName,state}', 'clusters.@each.{state,transition}'), byCluster: function() { let out = []; diff --git a/app/models/cluster.js b/app/models/cluster.js index cc090d34f..d17f3bdf9 100644 --- a/app/models/cluster.js +++ b/app/models/cluster.js @@ -4,6 +4,7 @@ import PolledResource from 'ui/mixins/cattle-polled-resource'; var Cluster = Resource.extend(PolledResource, { userStore: Ember.inject.service('user-store'), + projectsService: Ember.inject.service('projects'), type: 'cluster', @@ -13,6 +14,14 @@ var Cluster = Resource.extend(PolledResource, { } }, + delete: function(/*arguments*/) { + var promise = this._super.apply(this, arguments); + return promise.then((/* resp */) => { + this.get('projectsService').refreshAll(); + }); + }, + + _allProjects: null, init() { this._super(...arguments); From 12f1bc504c9e5c1c0f0076bc37f1417abb4fd8ba Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 12:20:59 -0700 Subject: [PATCH 2/8] Fix labels displayed in custom host launch command --- .../machine/driver-custom/component.js | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/app/components/machine/driver-custom/component.js b/app/components/machine/driver-custom/component.js index 28ee91bc7..c3c9dfdfb 100644 --- a/app/components/machine/driver-custom/component.js +++ b/app/components/machine/driver-custom/component.js @@ -3,16 +3,17 @@ import ManageLabels from 'ui/mixins/manage-labels'; import Util from 'ui/utils/util'; export default Ember.Component.extend(ManageLabels, { - settings: Ember.inject.service(), - projects: Ember.inject.service(), - cattleAgentIp : null, - model: null, + settings: Ember.inject.service(), + projects: Ember.inject.service(), + cattleAgentIp : null, + model: null, - cluster: null, - loading: Ember.computed.alias('cluster.isTransitioning'), + cluster: null, + loading: Ember.computed.alias('cluster.isTransitioning'), + registrationCommandWindows: Ember.computed.alias('cluster.registrationToken.windowsCommand'), - _allHosts: null, - hostsAtLoad: null, + _allHosts: null, + hostsAtLoad: null, actions: { cancel() { @@ -20,14 +21,12 @@ export default Ember.Component.extend(ManageLabels, { }, setLabels(labels) { - if ( this.get('model') ) { - var out = {}; - labels.forEach((row) => { - out[row.key] = row.value; - }); + var out = {}; + labels.forEach((row) => { + out[row.key] = row.value; + }); - this.set('model.labels', out); - } + this.set('labels', out); } }, @@ -37,10 +36,11 @@ export default Ember.Component.extend(ManageLabels, { this.setProperties({ _allHosts: hosts, hostsAtLoad: hosts.get('length'), + labels: [] }); }, - registrationCommand: function() { + registrationCommand: Ember.computed('registrationCommand','labels', 'cattleAgentIp', function() { let cmd = this.get('cluster.registrationToken.hostCommand'); let cattleIp = this.get('cattleAgentIp'); let lookFor = 'docker run'; @@ -50,7 +50,7 @@ export default Ember.Component.extend(ManageLabels, { } let idx = cmd.indexOf(lookFor); - let env = Util.addQueryParams('', this.get('model.labels')||{}); + let env = Util.addQueryParams('', this.get('labels')||{}); if ( env ) { lookFor = 'docker run'; @@ -68,11 +68,8 @@ export default Ember.Component.extend(ManageLabels, { } return cmd; - }.property('model.command','model.labels', 'cattleAgentIp'), - - registrationCommandWindows: Ember.computed.alias('cluster.registrationToken.windowsCommand'), - - newHosts: function() { + }), + newHosts: Ember.computed('hostsAtLoad','_allHosts.length', function() { let atLoad = this.get('hostsAtLoad') let now = this.get('_allHosts.length'); @@ -81,6 +78,6 @@ export default Ember.Component.extend(ManageLabels, { } return Math.max(0, now-atLoad); - }.property('hostsAtLoad','_allHosts.length'), + }), }); From 53fc0e27b3da835d05932cc4f49aa99f8ad31301 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 12:43:19 -0700 Subject: [PATCH 3/8] Reset compose controller on exit --- app/new-stack/route.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/new-stack/route.js b/app/new-stack/route.js index 19b9ddc9e..a16f7b5af 100644 --- a/app/new-stack/route.js +++ b/app/new-stack/route.js @@ -77,6 +77,7 @@ export default Ember.Route.extend({ githubRepo: null, githubBranch: null, composeFiles: null, + compose: null, system: false, }); } From 9bd7ad6b3f07c6e489668af6c2420f850c5154a5 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 14:57:15 -0700 Subject: [PATCH 4/8] test fix --- app/components/settings/catalog-url/component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/settings/catalog-url/component.js b/app/components/settings/catalog-url/component.js index cca51a914..1a06d24da 100644 --- a/app/components/settings/catalog-url/component.js +++ b/app/components/settings/catalog-url/component.js @@ -73,7 +73,7 @@ export default Ember.Component.extend({ init() { this._super(...arguments); - const def = C.CATALOG.DEFAULT_BRANCH; + // const def = C.CATALOG.DEFAULT_BRANCH; let parsed = parseCatalogSetting(this.get('initialValue')); let map = parsed.catalogs || {}; From 3c6617c4f57c1b6a7d20005472d6474e0c5960f5 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 14:57:56 -0700 Subject: [PATCH 5/8] bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b8db21109..154643aa2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "2.0.3", + "version": "2.0.4", "private": true, "directories": { "doc": "doc", From e458b184463f18b1a7d38624c6701b1b6a298d6f Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 15:50:44 -0700 Subject: [PATCH 6/8] Fix link to k8sdashboard --- app/services/k8s.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/services/k8s.js b/app/services/k8s.js index c90f487d3..814da24c0 100644 --- a/app/services/k8s.js +++ b/app/services/k8s.js @@ -7,9 +7,11 @@ export default Ember.Service.extend({ projects: Ember.inject.service(), kubernetesDashboard: function() { - return this.get('app.kubernetesDashboard') - .replace(this.get('app.projectToken'), this.get('projects.current.id')) - .replace(this.get('app.clusterToken'), this.get('projects.currentCluster.id')); + let namespace = this.get('projects.current.externalId')||'kube-system'; + let kbd = this.get('app.kubernetesDashboard') + .replace(this.get('app.projectToken'), this.get('projects.current.id')) + .replace(this.get('app.clusterToken'), this.get('projects.currentCluster.id')); + return `${kbd}#!/overview?namespace=${namespace}`; // im not 100% sure if '#!/overview?namespace=' is the final route, maybe we can do this better, but denise wanted this }.property('projects.current.id','projects.currentCluster.id'), isReady() { From 6f8eb9132f3e17a8aed172027d1a6e8cee73cd85 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 15:51:34 -0700 Subject: [PATCH 7/8] bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 154643aa2..615ffeab9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "2.0.4", + "version": "2.0.5", "private": true, "directories": { "doc": "doc", From aa99d3a278e6eb3285f5994d4453275d5a8f88c9 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Mon, 25 Sep 2017 16:09:04 -0700 Subject: [PATCH 8/8] Change the dashboard link again --- app/services/k8s.js | 3 +-- package.json | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/services/k8s.js b/app/services/k8s.js index 814da24c0..242a47849 100644 --- a/app/services/k8s.js +++ b/app/services/k8s.js @@ -7,11 +7,10 @@ export default Ember.Service.extend({ projects: Ember.inject.service(), kubernetesDashboard: function() { - let namespace = this.get('projects.current.externalId')||'kube-system'; let kbd = this.get('app.kubernetesDashboard') .replace(this.get('app.projectToken'), this.get('projects.current.id')) .replace(this.get('app.clusterToken'), this.get('projects.currentCluster.id')); - return `${kbd}#!/overview?namespace=${namespace}`; // im not 100% sure if '#!/overview?namespace=' is the final route, maybe we can do this better, but denise wanted this + return `${kbd}#!/overview?namespace=default`; // im not 100% sure if '#!/overview?namespace=' is the final route, maybe we can do this better, but denise wanted this }.property('projects.current.id','projects.currentCluster.id'), isReady() { diff --git a/package.json b/package.json index 615ffeab9..04cf75227 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "2.0.5", + "version": "2.0.6", "private": true, "directories": { "doc": "doc",