From e3cce12c567280b4170823c04a7b39fab176f8d7 Mon Sep 17 00:00:00 2001 From: Robert Kleger Date: Fri, 2 Aug 2019 13:20:18 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8=20add=20create=20user=20provided?= =?UTF-8?q?=20service=20instance=20to=20prepare=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prepare.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/prepare.js b/prepare.js index a2210f9..8d3a352 100644 --- a/prepare.js +++ b/prepare.js @@ -1,3 +1,4 @@ +const _fp = require('lodash/fp'); const WF = require('push2cloud-workflow-utils'); const waterfall = WF.waterfall; @@ -6,8 +7,13 @@ const map = WF.map; const mapLimit = WF.mapLimit(Math.round(require('os').cpus().length / 2)); const mapSeries = WF.mapSeries; const packageApp = WF.packageApp; +const from = WF.from; -const desiredApps = (api, log, services) => +const userProvidedServiceType = 'user-provided'; +const services = _fp.filter((service) => service.type !== userProvidedServiceType); +const userProvidedServices = _fp.filter((service) => service.type === userProvidedServiceType); + +const desiredApps = (api, log, allServices) => waterfall( [ step(log('prepare desired apps')) , step(log('====================')) @@ -16,7 +22,9 @@ const desiredApps = (api, log, services) => , step(log('package apps')) , mapLimit(packageApp, 'desired.apps') , step(log('create service instances')) - , mapLimit(api.createServiceInstance, services || 'desired.services') + , mapLimit(api.createServiceInstance, from(allServices || 'desired.services', services)) + , step(log('create user provided service instances')) + , mapLimit(api.createUserProvidedServiceInstance, from(allServices || 'desired.services', userProvidedServices)) , step(log('create routes')) , map(api.createRoute, 'desired.routes') , step(log('push apps')) @@ -34,7 +42,7 @@ const desiredApps = (api, log, services) => ] ); -const prepareApps = (api, log, what, services) => +const prepareApps = (api, log, what, allServices) => waterfall( [ step(log('prepare apps')) , step(log('====================')) @@ -42,8 +50,9 @@ const prepareApps = (api, log, what, services) => , step(log('start deployment')) , step(log('package apps')) , map(packageApp, what.apps) - , step(log('create service instances')) - , mapLimit(api.createServiceInstance, services || what.services) + , mapLimit(api.createServiceInstance, from(allServices || what.services, services)) + , step(log('create user provided service instances')) + , mapLimit(api.createUserProvidedServiceInstance, from(allServices || what.services, userProvidedServices)) , step(log('create routes')) , map(api.createRoute, what.routes) , step(log('push apps')) From 6d4951667a48af22c7885cba311f1e2dd481a209 Mon Sep 17 00:00:00 2001 From: Robert Kleger Date: Fri, 2 Aug 2019 14:52:00 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=9A=A7=20do=20not=20wait=20wor=20user?= =?UTF-8?q?=20provided=20service=20instances?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prepare.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prepare.js b/prepare.js index 8d3a352..09c65c3 100644 --- a/prepare.js +++ b/prepare.js @@ -34,7 +34,7 @@ const desiredApps = (api, log, allServices) => , step(log('stage apps')) , map(api.stageApp, 'desired.apps') , step(log('wait for services to be ready to bind')) - , map(api.waitForServiceInstance, services || 'desired.services') + , map(api.waitForServiceInstance, from(allServices || 'desired.services', services)) , step(log('bind services')) , mapSeries(api.bindService, 'desired.serviceBindings') , step(log('start apps and wait for instances')) @@ -62,7 +62,7 @@ const prepareApps = (api, log, what, allServices) => , step(log('stage apps')) , map(api.stageApp, what.apps) , step(log('wait for services to be ready to bind')) - , map(api.waitForServiceInstance, services || what.services) + , map(api.waitForServiceInstance, from(allServices || what.services, services)) , step(log('bind services')) , mapSeries(api.bindService, what.serviceBindings) , step(log('start apps and wait for instances'))