From 75f2a5f274d43e1ed82e1872381a18ec0129f806 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Thu, 31 Jan 2019 14:45:08 -0700 Subject: [PATCH] Remove route action to load all MC App template versions only load the versions we need rancher/rancher#17790 --- .../addon/multi-cluster-apps/index/route.js | 22 ++++++++++++------- lib/shared/addon/catalog/service.js | 14 ++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/lib/global-admin/addon/multi-cluster-apps/index/route.js b/lib/global-admin/addon/multi-cluster-apps/index/route.js index 6f8b1b5d7..357c1fc1a 100644 --- a/lib/global-admin/addon/multi-cluster-apps/index/route.js +++ b/lib/global-admin/addon/multi-cluster-apps/index/route.js @@ -1,20 +1,26 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; -import { hash } from 'rsvp'; +import { all } from 'rsvp'; +import { get } from '@ember/object'; export default Route.extend({ globalStore: service(), catalog: service(), - beforeModel() { - return hash({ - templateversions: this.globalStore.find('templateversion'), - templates: this.catalog.fetchTemplates(), - }); - }, - model() { return this.globalStore.findAll('multiclusterapp').then( (resp) => ({ apps: resp })); }, + afterModel(model/* , transition */) { + let promises = []; + + get(model, 'apps').forEach((app) => { + promises.push(this.catalog.fetchTemplate(get(app, 'templateVersionId'), true)); + }); + + return all(promises).then(() => { + return this.catalog.fetchMultiClusterAppTemplates(get(model, 'apps')); + }); + }, + }); diff --git a/lib/shared/addon/catalog/service.js b/lib/shared/addon/catalog/service.js index 98dcbe8bf..ff6cccf22 100644 --- a/lib/shared/addon/catalog/service.js +++ b/lib/shared/addon/catalog/service.js @@ -102,6 +102,20 @@ export default Service.extend({ return allSettled(deps); }, + fetchMultiClusterAppTemplates(apps) { + let deps = []; + + apps.forEach((app) => { + let extInfo = get(app, 'externalIdInfo'); + + if ( extInfo && extInfo.templateId ) { + deps.push(this.fetchTemplate(extInfo.templateId, false)); + } + }); + + return allSettled(deps); + }, + fetchUnScopedCatalogs() { return hash({ projectCatalogs: this.fetchCatalogs('projectCatalog'),