11import chalk from 'chalk'
22import fs from 'fs'
33import path from 'path'
4- import { Opts , pluginMap , PluginType , StorageEngine } from '@cloudgraph/sdk'
4+ import { Opts , pluginMap , PluginType , ProviderData , StorageEngine } from '@cloudgraph/sdk'
55import { range } from 'lodash'
66
77import Command from './base'
@@ -34,6 +34,7 @@ export default class Scan extends Command {
3434 private async plugins ( {
3535 storage : { isRunning, engine } ,
3636 flags,
37+ providerData,
3738 } : {
3839 storage : {
3940 isRunning : boolean
@@ -42,6 +43,7 @@ export default class Scan extends Command {
4243 flags : {
4344 [ flag : string ] : any
4445 }
46+ providerData : ProviderData
4547 } ) : Promise < void > {
4648 const config = this . getCGConfig ( 'cloudGraph' )
4749 const { plugins = { } } = config
@@ -80,6 +82,7 @@ export default class Scan extends Command {
8082 await PluginInstance . execute ( {
8183 storageRunning : isRunning ,
8284 storageEngine : engine ,
85+ providerData,
8386 processConnectionsBetweenEntities,
8487 } )
8588 }
@@ -167,6 +170,7 @@ export default class Scan extends Command {
167170 * loop through providers and attempt to scan each of them
168171 */
169172 const failedProviderList : string [ ] = [ ]
173+ const allProviderData : ProviderData = { entities : [ ] , connections : { } }
170174 for ( const provider of allProviders ) {
171175 this . logger . info (
172176 `Beginning ${ chalk . italic . green ( 'SCAN' ) } for ${ provider } `
@@ -203,6 +207,10 @@ export default class Scan extends Command {
203207 `${ chalk . italic . green ( provider ) } data scanned successfully`
204208 )
205209
210+ // Merge all providers data
211+ allProviderData . entities . push ( ...providerData . entities )
212+ Object . assign ( allProviderData . connections , providerData . connections )
213+
206214 // Handle schema, write provider and combined schema to file and store in Dgraph if running
207215 this . logger . startSpinner (
208216 `updating ${ chalk . italic . green ( 'Schema' ) } for ${ chalk . italic . green (
@@ -297,6 +305,7 @@ export default class Scan extends Command {
297305 isRunning : storageRunning ,
298306 engine : storageEngine ,
299307 } ,
308+ providerData : allProviderData
300309 } )
301310 }
302311
0 commit comments