From cb5ff320842b39d4529dd57d9fadff62bd7da8f6 Mon Sep 17 00:00:00 2001 From: Vincent Fiduccia Date: Tue, 24 May 2016 23:08:21 -0700 Subject: [PATCH] Support old and new system stack externalId formats --- .../orchestration/wait-kubernetes/component.js | 2 +- .../orchestration/wait-mesos/component.js | 10 +--------- .../orchestration/wait-swarm/component.js | 4 +++- app/services/k8s.js | 15 +++++++++++++-- app/services/mesos.js | 15 +++++++++++++-- app/services/swarm.js | 15 +++++++++++++-- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/app/components/orchestration/wait-kubernetes/component.js b/app/components/orchestration/wait-kubernetes/component.js index bf9c10249..8687166af 100644 --- a/app/components/orchestration/wait-kubernetes/component.js +++ b/app/components/orchestration/wait-kubernetes/component.js @@ -47,7 +47,7 @@ export default Ember.Component.extend({ return; } - var stack = this.get('model.stacks').filterBy('externalId','system://kubernetes')[0]; + var stack = this.get('k8s').filterSystemStack(this.get('model.stacks')); if ( !stack ) { this.set('currentStep', 2); diff --git a/app/components/orchestration/wait-mesos/component.js b/app/components/orchestration/wait-mesos/component.js index fb9f787bc..8b1039ef2 100644 --- a/app/components/orchestration/wait-mesos/component.js +++ b/app/components/orchestration/wait-mesos/component.js @@ -1,9 +1,5 @@ import Ember from 'ember'; import { debouncedObserver } from 'ui/utils/debounce'; -import C from 'ui/utils/constants'; - -const OLD_STACK_ID = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_MESOS; -const NEW_STACK_PREFIX = C.EXTERNALID.KIND_SYSTEM_CATALOG + C.EXTERNALID.KIND_SEPARATOR + C.CATALOG.LIBRARY_KEY + C.EXTERNALID.GROUP_SEPARATOR + C.EXTERNALID.KIND_MESOS + C.EXTERNALID.GROUP_SEPARATOR; export default Ember.Component.extend({ mesos: Ember.inject.service(), @@ -49,11 +45,7 @@ export default Ember.Component.extend({ return; } - var stack = this.get('model.stacks').filter((stack) => { - let externalId = stack.get('externalId')||''; - return externalId === OLD_STACK_ID || externalId.indexOf(NEW_STACK_PREFIX) === 0; - })[0]; - + var stack = this.get('mesos').filterSystemStack(this.get('model.stacks')); if ( !stack ) { this.set('currentStep', 2); diff --git a/app/components/orchestration/wait-swarm/component.js b/app/components/orchestration/wait-swarm/component.js index 524aac97f..53fe596d6 100644 --- a/app/components/orchestration/wait-swarm/component.js +++ b/app/components/orchestration/wait-swarm/component.js @@ -2,6 +2,8 @@ import Ember from 'ember'; import { debouncedObserver } from 'ui/utils/debounce'; export default Ember.Component.extend({ + swarm: Ember.inject.service(), + currentStep: 0, subStep: 0, subCount: 0, @@ -37,7 +39,7 @@ export default Ember.Component.extend({ return; } - var stack = this.get('model.stacks').filterBy('externalId','system://swarm')[0]; + var stack = this.get('swarm').filterSystemStack(this.get('model.stacks')); if ( !stack ) { this.set('currentStep', 2); diff --git a/app/services/k8s.js b/app/services/k8s.js index eb8692d82..38a39da51 100644 --- a/app/services/k8s.js +++ b/app/services/k8s.js @@ -430,8 +430,7 @@ export default Ember.Service.extend({ isReady() { return this.get('store').find('environment').then((stacks) => { return this.get('store').find('service').then((services) => { - let eId = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_KUBERNETES; - let stack = stacks.filterBy('externalId', eId)[0]; + let stack = this.filterSystemStack(stacks); if ( stack ) { let matching = services.filterBy('environmentId', stack.get('id')); @@ -454,6 +453,18 @@ export default Ember.Service.extend({ }); }, + filterSystemStack(stacks) { + const OLD_STACK_ID = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_KUBERNETES; + const NEW_STACK_PREFIX = C.EXTERNALID.KIND_SYSTEM_CATALOG + C.EXTERNALID.KIND_SEPARATOR + C.CATALOG.LIBRARY_KEY + C.EXTERNALID.GROUP_SEPARATOR + C.EXTERNALID.KIND_KUBERNETES + C.EXTERNALID.GROUP_SEPARATOR; + + var stack = (stacks||[]).filter((stack) => { + let externalId = stack.get('externalId')||''; + return externalId === OLD_STACK_ID || externalId.indexOf(NEW_STACK_PREFIX) === 0; + })[0]; + + return stack; + }, + _getCollection(type, resourceName) { return this._find(`${C.K8S.TYPE_PREFIX}${type}`, null, { url: resourceName diff --git a/app/services/mesos.js b/app/services/mesos.js index 52616b49e..29180a2d2 100644 --- a/app/services/mesos.js +++ b/app/services/mesos.js @@ -27,8 +27,7 @@ export default Ember.Service.extend({ isReady: function() { return this.get('store').find('environment').then((stacks) => { return this.get('store').find('service').then((services) => { - let eId = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_MESOS; - let stack = stacks.filterBy('externalId', eId)[0]; + let stack = this.filterSystemStack(stacks); if ( stack ) { let matching = services.filterBy('environmentId', stack.get('id')); @@ -50,4 +49,16 @@ export default Ember.Service.extend({ return Ember.RSVP.resolve(false); }); }, + + filterSystemStack(stacks) { + const OLD_STACK_ID = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_MESOS; + const NEW_STACK_PREFIX = C.EXTERNALID.KIND_SYSTEM_CATALOG + C.EXTERNALID.KIND_SEPARATOR + C.CATALOG.LIBRARY_KEY + C.EXTERNALID.GROUP_SEPARATOR + C.EXTERNALID.KIND_MESOS + C.EXTERNALID.GROUP_SEPARATOR; + + var stack = (stacks||[]).filter((stack) => { + let externalId = stack.get('externalId')||''; + return externalId === OLD_STACK_ID || externalId.indexOf(NEW_STACK_PREFIX) === 0; + })[0]; + + return stack; + }, }); diff --git a/app/services/swarm.js b/app/services/swarm.js index fdd089bb2..9a0e5c2e0 100644 --- a/app/services/swarm.js +++ b/app/services/swarm.js @@ -5,8 +5,7 @@ export default Ember.Service.extend({ isReady() { return this.get('store').find('environment').then((stacks) => { return this.get('store').find('service').then((services) => { - let eId = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_SWARM; - let stack = stacks.filterBy('externalId', eId)[0]; + let stack = this.filterSystemStack(stacks); if ( stack ) { let matching = services.filterBy('environmentId', stack.get('id')); @@ -21,4 +20,16 @@ export default Ember.Service.extend({ return Ember.RSVP.resolve(false); }); }, + + filterSystemStack(stacks) { + const OLD_STACK_ID = C.EXTERNALID.KIND_SYSTEM + C.EXTERNALID.KIND_SEPARATOR + C.EXTERNALID.KIND_SWARM; + const NEW_STACK_PREFIX = C.EXTERNALID.KIND_SYSTEM_CATALOG + C.EXTERNALID.KIND_SEPARATOR + C.CATALOG.LIBRARY_KEY + C.EXTERNALID.GROUP_SEPARATOR + C.EXTERNALID.KIND_SWARM + C.EXTERNALID.GROUP_SEPARATOR; + + var stack = (stacks||[]).filter((stack) => { + let externalId = stack.get('externalId')||''; + return externalId === OLD_STACK_ID || externalId.indexOf(NEW_STACK_PREFIX) === 0; + })[0]; + + return stack; + }, });