github.com/myafeier/fabric@v1.0.1-0.20170722181825-3a4b1f2bce86/bddtests/regression/go/ote/json2yml.js (about) 1 // 2 // Copyright IBM Corp. All Rights Reserved. 3 // 4 // SPDX-License-Identifier: Apache-2.0 5 // 6 var fs = require('fs'); 7 8 var cfgFile = process.argv[2]; 9 //var cfgFile = __dirname + "/" + "network-cfg.json"; 10 var dFile = __dirname + "/" + "docker-compose.yml"; 11 fs.createWriteStream(dFile); 12 13 var CA=0; 14 var CDB=0; 15 var KAFKA=0; 16 17 // Orderer environment var 18 var ord_env_name=[]; 19 var ord_env_val=[]; 20 if ( process.env.CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT != null ) { 21 console.log(' CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT= ', process.env.CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT); 22 ord_env_name.push('CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT'); 23 ord_env_val.push(process.env.CONFIGTX_ORDERER_BATCHSIZE_MAXMESSAGECOUNT); 24 } 25 if ( process.env.CONFIGTX_ORDERER_ORDERERTYPE != null ) { 26 console.log(' CONFIGTX_ORDERER_ORDERERTYPE= ', process.env.CONFIGTX_ORDERER_ORDERERTYPE); 27 ord_env_name.push('CONFIGTX_ORDERER_ORDERERTYPE'); 28 ord_env_val.push(process.env.CONFIGTX_ORDERER_ORDERERTYPE); 29 if ( process.env.CONFIGTX_ORDERER_ORDERERTYPE == 'kafka' ) { 30 KAFKA=1; 31 } 32 } 33 if ( process.env.CONFIGTX_ORDERER_BATCHTIMEOUT != null ) { 34 console.log(' CONFIGTX_ORDERER_BATCHTIMEOUT= ', process.env.CONFIGTX_ORDERER_BATCHTIMEOUT); 35 ord_env_name.push('CONFIGTX_ORDERER_BATCHTIMEOUT'); 36 ord_env_val.push(process.env.CONFIGTX_ORDERER_BATCHTIMEOUT); 37 } 38 39 console.log('ord_env_name: ', ord_env_name.length, ord_env_name); 40 console.log('ord_env_val: ', ord_env_val.length, ord_env_val); 41 42 // Peer environment var 43 var peer_env_name=[]; 44 var peer_env_val=[]; 45 if ( process.env.CORE_LOGGING_LEVEL != null ) { 46 console.log(' CORE_LOGGING_LEVEL= ', process.env.CORE_LOGGING_LEVEL); 47 peer_env_name.push('CORE_LOGGING_LEVEL'); 48 peer_env_val.push(process.env.CORE_LOGGING_LEVEL); 49 } 50 if ( process.env.CORE_SECURITY_LEVEL != null ) { 51 console.log(' CORE_SECURITY_LEVEL= ', process.env.CORE_SECURITY_LEVEL); 52 peer_env_name.push('CORE_SECURITY_LEVEL'); 53 peer_env_val.push(process.env.CORE_SECURITY_LEVEL); 54 } 55 if ( process.env.CORE_SECURITY_HASHALGORITHM != null ) { 56 console.log(' CORE_SECURITY_HASHALGORITHM= ', process.env.CORE_SECURITY_HASHALGORITHM); 57 peer_env_name.push('CORE_SECURITY_HASHALGORITHM'); 58 peer_env_val.push(process.env.CORE_SECURITY_HASHALGORITHM); 59 } 60 61 console.log('peer_env_name: ', peer_env_name.length, peer_env_name); 62 console.log('peer_env_val: ', peer_env_val.length, peer_env_val); 63 64 //process.exit(); 65 console.log('network cfg: ', cfgFile); 66 console.log('docker composer: ', dFile); 67 68 var addVP = parseInt(process.argv[3]); 69 console.log('add peer: ', addVP); 70 71 var VPName = 'peer' + addVP; 72 73 var addOrderer = parseInt(process.argv[4]);; 74 console.log('add Orderer: ', addOrderer); 75 76 var addBroker = parseInt(process.argv[5]); 77 console.log('add Kafka Broker: ', addBroker); 78 79 //console.log(' input argv length', process.argv.length); 80 var dbType = 'none'; 81 if (process.argv.length == 7) { 82 dbType = process.argv[6]; 83 } 84 console.log('DB type: ', dbType); 85 86 var cfgContent = JSON.parse(fs.readFileSync(cfgFile, 'utf8')); 87 88 var top_key = Object.keys(cfgContent); 89 90 var lvl1_obj; 91 var lvl2_key; 92 var lvl2_obj; 93 var lvl3_key; 94 var tmp_name; 95 var tmp_port; 96 var ordererAddr; 97 var ordererPort; 98 var couchdbAddr; 99 var couchdbPort; 100 var vp0Addr; 101 var vp0Port; 102 var tmp; 103 var e; 104 105 if ( addBroker > 0 ) { 106 KAFKA=1; 107 } 108 109 if ( (dbType == 'couchdb') || (dbType == 'goleveldb') ){ 110 CDB=1; 111 } 112 113 //header 0 114 for ( i0=0; i0<top_key.length; i0++ ) { 115 var lvl0_obj = cfgContent[top_key[i0]]; 116 var lvl1_key = Object.keys(lvl0_obj); 117 if ( top_key[i0] == 'ordererAddress' ) { 118 ordererAddr = lvl0_obj; 119 console.log('orderer address:', ordererAddr); 120 } else if ( top_key[i0] == 'ordererPort' ) { 121 ordererPort = parseInt(lvl0_obj); 122 console.log('orderer Port:', ordererPort); 123 } else if ( top_key[i0] == 'couchdbAddress' ) { 124 couchdbAddr = lvl0_obj; 125 console.log('couchdb address:', couchdbAddr); 126 } else if ( top_key[i0] == 'couchdbPort' ) { 127 couchdbPort = parseInt(lvl0_obj); 128 console.log('couchdb Port:', couchdbPort); 129 } else if ( top_key[i0] == 'vp0Address' ) { 130 vp0Addr = lvl0_obj; 131 console.log('peer0 address:', vp0Addr); 132 } else if ( top_key[i0] == 'vp0Port' ) { 133 vp0Port = parseInt(lvl0_obj); 134 console.log('peer0 Port:', vp0Port); 135 } else if ( top_key[i0] == 'version' ) { 136 buff = top_key[i0] + ":" + " '" + lvl0_obj + "'" + "\n"; 137 fs.appendFileSync(dFile, buff); 138 } else if ( top_key[i0] == 'networks' ) { 139 buff = top_key[i0] + ":" + "\n"; 140 fs.appendFileSync(dFile, buff); 141 buff = ' bridge:' + '\n'; 142 fs.appendFileSync(dFile, buff); 143 } else if ( top_key[i0] == 'services' ) { 144 buff = '\n'; 145 fs.appendFileSync(dFile, buff); 146 buff = top_key[i0] + ':' + '\n'; 147 fs.appendFileSync(dFile, buff); 148 //header 1 149 for ( i=0; i<lvl1_key.length; i++ ) { 150 lvl1_obj = lvl0_obj[lvl1_key[i]]; 151 lvl2_key = Object.keys(lvl1_obj); 152 153 // header 2 154 if (lvl1_key[i] == 'couchdb' ) { 155 if (dbType == 'couchdb') { 156 for ( v = 0; v < addVP; v++ ) { 157 tmp_name = lvl1_key[i] + v; 158 tmp_port = couchdbPort + v; 159 buff = ' ' + tmp_name +':' + '\n'; 160 fs.appendFileSync(dFile, buff); 161 162 // header 3 163 for ( k=0; k<lvl2_key.length; k++ ) { 164 if ( lvl2_key[k] == 'environment' ) { 165 lvl2_obj = lvl1_obj[lvl2_key[k]]; 166 lvl3_key = Object.keys(lvl2_obj); 167 168 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 169 fs.appendFileSync(dFile, buff); 170 171 // header 4 172 for ( m=0; m< lvl3_key.length; m++ ) { 173 if ( lvl3_key[m] == 'CORE_PEER_ID' ) { 174 buff = ' ' + ' - ' + lvl3_key[m] + '=' + tmp_name + '\n'; 175 } else if ( lvl3_key[m] == 'CORE_PEER_ADDRESS' ) { 176 buff = ' ' + ' - ' + lvl3_key[m] + '=' + vp0Addr +':'+ tmp_port + '\n'; 177 } else if ( lvl3_key[m] == 'CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS' ) { 178 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'couchdb'+v +':'+ couchdbPort + '\n'; 179 } else { 180 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 181 } 182 183 fs.appendFileSync(dFile, buff); 184 } 185 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 186 || ( lvl2_key[k] == 'restart') ) { 187 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 188 fs.appendFileSync(dFile, buff); 189 190 } else if ( lvl2_key[k] == 'container_name' ) { 191 buff = ' ' + ' ' + lvl2_key[k] + ': ' + tmp_name + '\n'; 192 fs.appendFileSync(dFile, buff); 193 194 } else if ( lvl2_key[k] == 'ports' ) { 195 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 196 fs.appendFileSync(dFile, buff); 197 198 // header 4 199 buff = ' ' + ' - ' + tmp_port + ':' + couchdbPort + '\n'; 200 fs.appendFileSync(dFile, buff); 201 202 } else if ( lvl2_key[k] == 'links' ) { 203 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 204 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 205 206 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 207 fs.appendFileSync(dFile, buff); 208 buff = ' ' + ' - ' + 'orderer' + '\n'; 209 fs.appendFileSync(dFile, buff); 210 if ( CA == 1 ) { 211 buff = ' ' + ' - ' + 'ca' + '\n'; 212 fs.appendFileSync(dFile, buff); 213 } 214 // header 4 215 for ( m=0; m< v; m++ ) { 216 buff = ' ' + ' - ' +'peer'+m + '\n'; 217 fs.appendFileSync(dFile, buff); 218 } 219 220 } else if ( ( lvl2_key[k] == 'volumes' ) || ( lvl2_key[k] == 'depends_on' ) ){ 221 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 222 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 223 224 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 225 fs.appendFileSync(dFile, buff); 226 227 // header 4 228 for ( m=0; m< lvl2_obj.length; m++ ) { 229 buff = ' ' + ' - ' +lvl2_obj[m] + '\n'; 230 fs.appendFileSync(dFile, buff); 231 232 } 233 234 } else { 235 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 236 fs.appendFileSync(dFile, buff); 237 238 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 239 fs.appendFileSync(dFile, buff); 240 241 } 242 } 243 // add a blank line 244 buff = '\n'; 245 fs.appendFileSync(dFile, buff); 246 247 } 248 } 249 } else if (lvl1_key[i] == 'orderer' ) { 250 for ( v = 0; v < addOrderer; v++ ) { 251 tmp_name = lvl1_key[i] + v; 252 buff = ' ' + tmp_name +':' + '\n'; 253 fs.appendFileSync(dFile, buff); 254 255 // header 3 256 for ( k=0; k<lvl2_key.length; k++ ) { 257 if ( (lvl2_key[k] == 'environment') ) { 258 lvl2_obj = lvl1_obj[lvl2_key[k]]; 259 lvl3_key = Object.keys(lvl2_obj); 260 261 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 262 fs.appendFileSync(dFile, buff); 263 264 // header 4 265 for ( m=0; m< lvl3_key.length; m++ ) { 266 tmp = ord_env_name.indexOf( lvl3_key[m] ); 267 if ( tmp >= 0 ) { 268 buff = ' ' + ' - ' + lvl3_key[m] + '=' + ord_env_val[tmp] + '\n'; 269 fs.appendFileSync(dFile, buff); 270 } else if ( lvl3_key[m] == 'CONFIGTX_ORDERER_KAFKA_BROKERS' ) { 271 if ( addBroker > 0 ) { 272 buff = ' ' + ' - ' + lvl3_key[m] + '=['; 273 for (n=0; n<addBroker; n++) { 274 buff = buff + 'kafka' + n +':9092' ; 275 if ( n < (addBroker-1) ) { 276 buff = buff + ','; 277 } 278 } 279 buff = buff + ']' + '\n'; 280 fs.appendFileSync(dFile, buff); 281 } 282 } else if ( lvl3_key[m] == 'CONFIGTX_ORDERER_ORDERERTYPE' ) { 283 if ( addBroker > 0 ) { 284 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'kafka' + '\n'; 285 fs.appendFileSync(dFile, buff); 286 } else { 287 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'solo' + '\n'; 288 fs.appendFileSync(dFile, buff); 289 } 290 } else if ( lvl3_key[m] == 'ORDERER_GENERAL_LISTENPORT' ) { 291 buff = ' ' + ' - ' + lvl3_key[m] + '=' + ordererPort + '\n'; 292 fs.appendFileSync(dFile, buff); 293 } else if ( ( lvl3_key[m] == 'ORDERER_GENERAL_GENESISMETHOD' ) || ( lvl3_key[m] == 'ORDERER_GENERAL_GENESISFILE' ) ) { 294 if ( addBroker > 0 ) { 295 buff = ' ' + ' - ' + lvl3_key[m] + '=' + lvl2_obj[lvl3_key[m]] + '\n'; 296 fs.appendFileSync(dFile, buff); 297 } else { 298 //buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'solo' + '\n'; 299 //fs.appendFileSync(dFile, buff); 300 } 301 } else { 302 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 303 fs.appendFileSync(dFile, buff); 304 } 305 306 } 307 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 308 || ( lvl2_key[k] == 'restart') ) { 309 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 310 fs.appendFileSync(dFile, buff); 311 } else if ( lvl2_key[k] == 'container_name' ) { 312 buff = ' ' + ' ' + lvl2_key[k] + ': ' + tmp_name + '\n'; 313 fs.appendFileSync(dFile, buff); 314 } else if ( lvl2_key[k] == 'ports' ) { 315 lvl2_obj = lvl1_obj[lvl2_key[k]]; 316 lvl3_key = Object.keys(lvl2_obj); 317 318 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 319 fs.appendFileSync(dFile, buff); 320 tmp_port = ordererPort + v; 321 322 buff = ' ' + ' - ' + tmp_port +':' + ordererPort + '\n' ; 323 fs.appendFileSync(dFile, buff); 324 325 } else if ( (lvl2_key[k] == 'depends_on') ) { 326 if ( addBroker > 0 ) { 327 lvl2_obj = lvl1_obj[lvl2_key[k]]; 328 lvl3_key = Object.keys(lvl2_obj); 329 330 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 331 fs.appendFileSync(dFile, buff); 332 333 buff = ' ' + ' - ' + 'zookeeper' + '\n' ; 334 fs.appendFileSync(dFile, buff); 335 if ( KAFKA==1 ) { 336 for (n=0; n<addBroker; n++) { 337 buff = ' ' + ' - ' + 'kafka' + n + '\n' ; 338 fs.appendFileSync(dFile, buff); 339 } 340 } 341 } 342 } else { 343 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 344 fs.appendFileSync(dFile, buff); 345 346 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 347 fs.appendFileSync(dFile, buff); 348 349 } 350 } 351 // add a blank line 352 buff = '\n'; 353 fs.appendFileSync(dFile, buff); 354 355 } 356 } else if (lvl1_key[i] == 'kafka' ) { 357 for ( v = 0; v < addBroker; v++ ) { 358 tmp_name = lvl1_key[i] + v; 359 tmp_port = vp0Port + v; 360 buff = ' ' + tmp_name +':' + '\n'; 361 fs.appendFileSync(dFile, buff); 362 363 // header 3 364 for ( k=0; k<lvl2_key.length; k++ ) { 365 if ( (lvl2_key[k] == 'environment') ) { 366 lvl2_obj = lvl1_obj[lvl2_key[k]]; 367 lvl3_key = Object.keys(lvl2_obj); 368 369 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 370 fs.appendFileSync(dFile, buff); 371 372 // header 4 373 for ( m=0; m< lvl3_key.length; m++ ) { 374 if ( lvl3_key[m] == 'KAFKA_BROKER_ID' ) { 375 buff = ' ' + ' - ' + lvl3_key[m] + '=' + v + '\n'; 376 fs.appendFileSync(dFile, buff); 377 } else if ( lvl3_key[m] == 'KAFKA_DEFAULT_REPLICATION_FACTOR' ) { 378 buff = ' ' + ' - ' + lvl3_key[m] + '=' + addBroker + '\n'; 379 fs.appendFileSync(dFile, buff); 380 } else { 381 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 382 fs.appendFileSync(dFile, buff); 383 } 384 385 } 386 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 387 || ( lvl2_key[k] == 'restart') ) { 388 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 389 fs.appendFileSync(dFile, buff); 390 } else if ( lvl2_key[k] == 'container_name' ) { 391 buff = ' ' + ' ' + lvl2_key[k] + ': ' + tmp_name + '\n'; 392 fs.appendFileSync(dFile, buff); 393 394 } else { 395 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 396 fs.appendFileSync(dFile, buff); 397 398 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 399 fs.appendFileSync(dFile, buff); 400 401 } 402 } 403 // add a blank line 404 buff = '\n'; 405 fs.appendFileSync(dFile, buff); 406 407 } 408 } else if (lvl1_key[i] == 'zookeeper' ) { 409 if ( KAFKA == 1 ) { 410 tmp_name = lvl1_key[i]; 411 buff = ' ' + tmp_name +':' + '\n'; 412 fs.appendFileSync(dFile, buff); 413 414 // header 3 415 for ( k=0; k<lvl2_key.length; k++ ) { 416 if ( (lvl2_key[k] == 'environment') ) { 417 lvl2_obj = lvl1_obj[lvl2_key[k]]; 418 lvl3_key = Object.keys(lvl2_obj); 419 420 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 421 fs.appendFileSync(dFile, buff); 422 423 // header 4 424 for ( m=0; m< lvl3_key.length; m++ ) { 425 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 426 fs.appendFileSync(dFile, buff); 427 } 428 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 429 || ( lvl2_key[k] == 'restart') ) { 430 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 431 fs.appendFileSync(dFile, buff); 432 } else if ( lvl2_key[k] == 'container_name' ) { 433 buff = ' ' + ' ' + lvl2_key[k] + ': ' + tmp_name + '\n'; 434 fs.appendFileSync(dFile, buff); 435 436 } else { 437 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 438 fs.appendFileSync(dFile, buff); 439 440 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 441 fs.appendFileSync(dFile, buff); 442 443 } 444 } 445 // add a blank line 446 buff = '\n'; 447 fs.appendFileSync(dFile, buff); 448 449 } 450 } else if (lvl1_key[i] == 'peer' ) { 451 for ( v = 0; v < addVP; v++ ) { 452 tmp_name = lvl1_key[i] + v; 453 tmp_port = vp0Port + v; 454 buff = ' ' + tmp_name +':' + '\n'; 455 fs.appendFileSync(dFile, buff); 456 457 // header 3 458 for ( k=0; k<lvl2_key.length; k++ ) { 459 if ( (lvl2_key[k] == 'environment') ) { 460 lvl2_obj = lvl1_obj[lvl2_key[k]]; 461 lvl3_key = Object.keys(lvl2_obj); 462 463 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 464 fs.appendFileSync(dFile, buff); 465 466 // header 4 467 for ( m=0; m< lvl3_key.length; m++ ) { 468 tmp = peer_env_name.indexOf( lvl3_key[m] ); 469 if ( tmp >= 0 ) { 470 buff = ' ' + ' - ' + lvl3_key[m] + '=' + peer_env_val[tmp] + '\n'; 471 fs.appendFileSync(dFile, buff); 472 } else if ( lvl3_key[m] == 'CORE_PEER_ID' ) { 473 buff = ' ' + ' - ' + lvl3_key[m] + '=' + tmp_name + '\n'; 474 fs.appendFileSync(dFile, buff); 475 } else if ( lvl3_key[m] == 'CORE_PEER_NETWORKID' ) { 476 buff = ' ' + ' - ' + lvl3_key[m] + '=' + tmp_name + '\n'; 477 fs.appendFileSync(dFile, buff); 478 } else if ( lvl3_key[m] == 'CORE_PEER_ADDRESS' ) { 479 buff = ' ' + ' - ' + lvl3_key[m] + '=' + vp0Addr +':'+ tmp_port + '\n'; 480 fs.appendFileSync(dFile, buff); 481 } else if ( lvl3_key[m] == 'CORE_PEER_DISCOVERY_ROOTNODE' ) { 482 if ( v != 0 ) { 483 buff = ' ' + ' - ' + lvl3_key[m] + '=' + vp0Addr +':'+ vp0Port + '\n'; 484 fs.appendFileSync(dFile, buff); 485 } 486 } else if ( lvl3_key[m] == 'CORE_LEDGER_STATE_STATEDATABASE' ) { 487 if (dbType == 'couchdb') { 488 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'CouchDB' + '\n'; 489 fs.appendFileSync(dFile, buff); 490 } else if (dbType == 'goleveldb') { 491 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'goleveldb' + '\n'; 492 fs.appendFileSync(dFile, buff); 493 } 494 } else if ( lvl3_key[m] == 'CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS' ) { 495 if (dbType == 'couchdb') { 496 tmp = couchdbPort+v; 497 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'couchdb'+v +':'+ tmp + '\n'; 498 fs.appendFileSync(dFile, buff); 499 } 500 } else { 501 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 502 fs.appendFileSync(dFile, buff); 503 } 504 505 } 506 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 507 || ( lvl2_key[k] == 'restart') ) { 508 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 509 fs.appendFileSync(dFile, buff); 510 511 } else if ( lvl2_key[k] == 'container_name' ) { 512 buff = ' ' + ' ' + lvl2_key[k] + ': ' + tmp_name + '\n'; 513 fs.appendFileSync(dFile, buff); 514 515 } else if ( lvl2_key[k] == 'ports' ) { 516 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 517 fs.appendFileSync(dFile, buff); 518 519 // header 4 520 buff = ' ' + ' - ' + tmp_port + ':' + vp0Port + '\n'; 521 fs.appendFileSync(dFile, buff); 522 523 } else if ( lvl2_key[k] == 'links' ) { 524 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 525 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 526 527 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 528 fs.appendFileSync(dFile, buff); 529 buff = ' ' + ' - ' + 'orderer0' + '\n'; 530 fs.appendFileSync(dFile, buff); 531 if (dbType == 'couchdb') { 532 buff = ' ' + ' - ' + 'couchdb'+v + '\n'; 533 fs.appendFileSync(dFile, buff); 534 } 535 if ( CA == 1 ) { 536 buff = ' ' + ' - ' + 'ca' + '\n'; 537 fs.appendFileSync(dFile, buff); 538 } 539 // header 4 540 for ( m=0; m< v; m++ ) { 541 buff = ' ' + ' - ' +'peer'+m + '\n'; 542 fs.appendFileSync(dFile, buff); 543 } 544 545 } else if ( lvl2_key[k] == 'volumes' ) { 546 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 547 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 548 549 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 550 fs.appendFileSync(dFile, buff); 551 552 // header 4 553 for ( m=0; m< lvl2_obj.length; m++ ) { 554 buff = ' ' + ' - ' +lvl2_obj[m] + '\n'; 555 fs.appendFileSync(dFile, buff); 556 557 } 558 559 } else if ( lvl2_key[k] == 'depends_on' ){ 560 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 561 562 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 563 fs.appendFileSync(dFile, buff); 564 565 // header 4 566 for ( m=0; m< lvl2_obj.length; m++ ) { 567 buff = ' ' + ' - ' +lvl2_obj[m] + '\n'; 568 fs.appendFileSync(dFile, buff); 569 } 570 571 } else { 572 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 573 fs.appendFileSync(dFile, buff); 574 575 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 576 fs.appendFileSync(dFile, buff); 577 578 } 579 } 580 // add a blank line 581 buff = '\n'; 582 fs.appendFileSync(dFile, buff); 583 584 } 585 } else if (lvl1_key[i] == 'cli' ) { 586 buff = ' ' + lvl1_key[i] +':' + '\n'; 587 fs.appendFileSync(dFile, buff); 588 589 // header 3 590 for ( k=0; k<lvl2_key.length; k++ ) { 591 if ( lvl2_key[k] == 'environment' ) { 592 lvl2_obj = lvl1_obj[lvl2_key[k]]; 593 lvl3_key = Object.keys(lvl2_obj); 594 //console.log('lvl2_obj: ', lvl2_obj); 595 //console.log('lvl3_key: ', lvl3_key); 596 597 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 598 fs.appendFileSync(dFile, buff); 599 600 // header 4 601 for ( m=0; m< lvl3_key.length; m++ ) { 602 /*if ( lvl3_key[m] == 'CORE_PEER_COMMITTER_LEDGER_ORDERER' ) { 603 buff = ' ' + ' - ' + lvl3_key[m] + '=' + 'orderer0' +':'+ ordererPort + '\n'; 604 fs.appendFileSync(dFile, buff); 605 } else {*/ 606 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 607 fs.appendFileSync(dFile, buff); 608 //} 609 610 } 611 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 612 || ( lvl2_key[k] == 'restart') || ( lvl2_key[k] == 'container_name') || ( lvl2_key[k] == 'tty') ) { 613 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 614 fs.appendFileSync(dFile, buff); 615 616 } else if ( lvl2_key[k] == 'links' ) { 617 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 618 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 619 620 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 621 fs.appendFileSync(dFile, buff); 622 623 // header 4 624 buff = ' ' + ' - ' +'orderer0:orderer0' + '\n'; 625 fs.appendFileSync(dFile, buff); 626 buff = ' ' + ' - ' +'peer0:peer0' + '\n'; 627 fs.appendFileSync(dFile, buff); 628 629 } else if ( lvl2_key[k] == 'depends_on' ) { 630 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 631 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 632 633 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 634 fs.appendFileSync(dFile, buff); 635 636 // header 4 637 buff = ' ' + ' - ' +'orderer0' + '\n'; 638 fs.appendFileSync(dFile, buff); 639 buff = ' ' + ' - ' +'peer0' + '\n'; 640 fs.appendFileSync(dFile, buff); 641 642 } else if ( ( lvl2_key[k] == 'ports' ) || ( lvl2_key[k] == 'volumes' ) ){ 643 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 644 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 645 646 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 647 fs.appendFileSync(dFile, buff); 648 649 // header 4 650 for ( m=0; m< lvl2_obj.length; m++ ) { 651 buff = ' ' + ' - ' +lvl2_obj[m] + '\n'; 652 fs.appendFileSync(dFile, buff); 653 654 } 655 656 } else { 657 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 658 fs.appendFileSync(dFile, buff); 659 660 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 661 fs.appendFileSync(dFile, buff); 662 663 } 664 } 665 // add a blank line 666 buff = '\n'; 667 fs.appendFileSync(dFile, buff); 668 669 } else { 670 if (lvl1_key[i] == 'ca' ) { 671 CA=1; 672 } 673 buff = ' ' + lvl1_key[i] +':' + '\n'; 674 fs.appendFileSync(dFile, buff); 675 676 // header 3 677 for ( k=0; k<lvl2_key.length; k++ ) { 678 if ( lvl2_key[k] == 'environment' ) { 679 lvl2_obj = lvl1_obj[lvl2_key[k]]; 680 lvl3_key = Object.keys(lvl2_obj); 681 //console.log('lvl2_obj: ', lvl2_obj); 682 //console.log('lvl3_key: ', lvl3_key); 683 684 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 685 fs.appendFileSync(dFile, buff); 686 687 // header 4 688 for ( m=0; m< lvl3_key.length; m++ ) { 689 buff = ' ' + ' - ' + lvl3_key[m] + '=' +lvl2_obj[lvl3_key[m]] + '\n'; 690 fs.appendFileSync(dFile, buff); 691 692 } 693 } else if ( ( lvl2_key[k] == 'image' ) || ( lvl2_key[k] == 'command' ) || ( lvl2_key[k] == 'working_dir' ) 694 || ( lvl2_key[k] == 'restart') || ( lvl2_key[k] == 'container_name') || ( lvl2_key[k] == 'tty') ) { 695 buff = ' ' + ' ' + lvl2_key[k] + ': ' + lvl1_obj[lvl2_key[k]] + '\n'; 696 fs.appendFileSync(dFile, buff); 697 698 } else if ( ( lvl2_key[k] == 'ports' ) || ( lvl2_key[k] == 'links' ) || ( lvl2_key[k] == 'volumes' ) 699 || ( lvl2_key[k] == 'depends_on' ) ){ 700 var lvl2_obj = lvl1_obj[lvl2_key[k]]; 701 //console.log('lvl2_obj: %d ', lvl2_obj.length, lvl2_obj); 702 703 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 704 fs.appendFileSync(dFile, buff); 705 706 // header 4 707 for ( m=0; m< lvl2_obj.length; m++ ) { 708 buff = ' ' + ' - ' +lvl2_obj[m] + '\n'; 709 fs.appendFileSync(dFile, buff); 710 711 } 712 713 } else { 714 buff = ' ' + ' ' + lvl2_key[k] + ': ' + '\n'; 715 fs.appendFileSync(dFile, buff); 716 717 buff = ' ' + ' - ' + lvl1_obj[lvl2_key[k]] + '\n'; 718 fs.appendFileSync(dFile, buff); 719 720 } 721 } 722 // add a blank line 723 buff = '\n'; 724 fs.appendFileSync(dFile, buff); 725 726 } 727 } 728 } 729 }