diff --git a/.github/workflows/test-on-push.yml b/.github/workflows/test-on-push.yml index 96b483d57..0bb5e5d0f 100644 --- a/.github/workflows/test-on-push.yml +++ b/.github/workflows/test-on-push.yml @@ -13,11 +13,11 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: '#ffd963' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Workflow started' + SLACK_FOOTER: 'Workflow started' - name: Check out repository code uses: actions/checkout@v2 @@ -55,11 +55,11 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' + SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' test-02-raft: needs: test-main @@ -91,11 +91,11 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' + SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' test-03-private-data: needs: test-main @@ -127,11 +127,11 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' + SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' test-04-snapshot: needs: test-main @@ -163,11 +163,11 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' + SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' node-chaincodes-unit-tests: needs: test-main @@ -195,8 +195,8 @@ jobs: uses: rtCamp/action-slack-notify@v2 env: SLACK_USERNAME: Fablo CI - SLACK_ICON: 'https://raw.githubusercontent.com/softwaremill/fablo/main/logo-sygnet-192.png' + SLACK_ICON: 'https://raw.githubusercontent.com/hyperledger-labs/fablo/main/logo-sygnet-192.png' SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} MSG_MINIMAL: ref - SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' + SLACK_FOOTER: 'Job ended with status: *${{ job.status }}*' diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b371be65..451dcc3d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 1.1.0-unstable +## 1.1.0 ### Features * Support Fabric Gateway since Fabric 2.4 [#305](https://github.com/hyperledger-labs/fablo/issues/305) @@ -12,10 +12,12 @@ ### Fixes * Support Apple M1 / arm64 architecture * Various fixes in channel scripts +* Remove remaining docker containers and images after prune ### Chore & Maintenance * Add `fabricNodeenvVersion` global configuration * Update Node.js runtime compatibility ([details](https://github.com/hyperledger-labs/fablo/issues/274)) +* Update legacy URLs ## 1.0.2 @@ -47,12 +49,12 @@ * Add [Fablo REST](https://github.com/softwaremill/fablo-rest/) support * By default all peers are anchor peers * Support `postGenerate` hook -* Added support for [Orderer sharding](https://github.com/softwaremill/fablo/issues/220) (multiple orderer groups). -* Support for [Orderer groups](https://github.com/softwaremill/fablo/issues/238) (orderer group can be spread between many orgs). +* Added support for [Orderer sharding](https://github.com/hyperledger-labs/fablo/issues/220) (multiple orderer groups). +* Support for [Orderer groups](https://github.com/hyperledger-labs/fablo/issues/238) (orderer group can be spread between many orgs). ### Fixes * Fixed issue with bad `requiredPeerCount` in private data collection -* Fixed issues with `fablo up` on older bash versions ([details](https://github.com/softwaremill/fablo/issues/210)) +* Fixed issues with `fablo up` on older bash versions ([details](https://github.com/hyperledger-labs/fablo/issues/210)) ### Chore & Maintenance @@ -60,16 +62,16 @@ * Rename Fabrica to Fablo ## 0.1.1 -* Broken Node.js chaincode build ([#211](https://github.com/softwaremill/fablo/pull/211)) +* Broken Node.js chaincode build ([#211](https://github.com/hyperledger-labs/fablo/pull/211)) ## 0.1.0 ### Features -* Support for private data ([#104](https://github.com/softwaremill/fablo/issues/104)) -* Added channel query scripts ([#169](https://github.com/softwaremill/fablo/issues/169)) -* Support for Hyperledger Fabric 2.x ([#132](https://github.com/softwaremill/fablo/issues/132) - , [#178](https://github.com/softwaremill/fablo/issues/178), [#190](https://github.com/softwaremill/fablo/issues/178)) -* Support default endorsement policy ([#189](https://github.com/softwaremill/fablo/issues/189)) +* Support for private data ([#104](https://github.com/hyperledger-labs/fablo/issues/104)) +* Added channel query scripts ([#169](https://github.com/hyperledger-labs/fablo/issues/169)) +* Support for Hyperledger Fabric 2.x ([#132](https://github.com/hyperledger-labs/fablo/issues/132) + , [#178](https://github.com/hyperledger-labs/fablo/issues/178), [#190](https://github.com/hyperledger-labs/fablo/issues/178)) +* Support default endorsement policy ([#189](https://github.com/hyperledger-labs/fablo/issues/189)) * Support for fablo config in YAML format ### Chore & Maintenance @@ -82,26 +84,26 @@ * Generate simple Hyperledger Fabric network * Support for multiple organizations * Support for solo consensus protocol -* Support for RAFT consensus protocol ([#16](https://github.com/softwaremill/fablo/issues/16) - , [#38](https://github.com/softwaremill/fablo/issues/38)) +* Support for RAFT consensus protocol ([#16](https://github.com/hyperledger-labs/fablo/issues/16) + , [#38](https://github.com/hyperledger-labs/fablo/issues/38)) * Validation of `fablo-config.json` based on JSON schema and other rules -* Allow to upgrade chaincode ([#45](https://github.com/softwaremill/fablo/issues/36)) -* Network recreation in one step ([#105](https://github.com/softwaremill/fablo/issues/105)) -* Init command to provide simple config ([#90](https://github.com/softwaremill/fablo/issues/90)) with - chaincode ([#100](https://github.com/softwaremill/fablo/issues/100)) +* Allow to upgrade chaincode ([#45](https://github.com/hyperledger-labs/fablo/issues/36)) +* Network recreation in one step ([#105](https://github.com/hyperledger-labs/fablo/issues/105)) +* Init command to provide simple config ([#90](https://github.com/hyperledger-labs/fablo/issues/90)) with + chaincode ([#100](https://github.com/hyperledger-labs/fablo/issues/100)) * Proper exposing Orderer and Peers ports for service - discovery ([#116](https://github.com/softwaremill/fablo/issues/116)) + discovery ([#116](https://github.com/hyperledger-labs/fablo/issues/116)) ### Fixes -* Missing notify anchor peers step ([#26](https://github.com/softwaremill/fablo/issues/26)) +* Missing notify anchor peers step ([#26](https://github.com/hyperledger-labs/fablo/issues/26)) ### Chore & Maintenance -* Lint bash and YAML files ([#48](https://github.com/softwaremill/fablo/issues/48)) -* Format generated scripts and YAML files ([#75](https://github.com/softwaremill/fablo/issues/75)) -* Test Java chaincode on generated network ([#25](https://github.com/softwaremill/fablo/issues/25)) -* Test JS chaincode on generated network ([#46](https://github.com/softwaremill/fablo/issues/46)) -* Test generated Hyperledger Fabric networks ([#36](https://github.com/softwaremill/fablo/issues/36)) -* Test generators with simple snapshot tests ([#5](https://github.com/softwaremill/fablo/issues/5)) -* Lint JS files ([#1](https://github.com/softwaremill/fablo/issues/1)) +* Lint bash and YAML files ([#48](https://github.com/hyperledger-labs/fablo/issues/48)) +* Format generated scripts and YAML files ([#75](https://github.com/hyperledger-labs/fablo/issues/75)) +* Test Java chaincode on generated network ([#25](https://github.com/hyperledger-labs/fablo/issues/25)) +* Test JS chaincode on generated network ([#46](https://github.com/hyperledger-labs/fablo/issues/46)) +* Test generated Hyperledger Fabric networks ([#36](https://github.com/hyperledger-labs/fablo/issues/36)) +* Test generators with simple snapshot tests ([#5](https://github.com/hyperledger-labs/fablo/issues/5)) +* Lint JS files ([#1](https://github.com/hyperledger-labs/fablo/issues/1)) * Run Yeoman generators inside Docker container diff --git a/README.md b/README.md index c992945dc..05626f945 100644 --- a/README.md +++ b/README.md @@ -557,4 +557,6 @@ Provide for your organization `"tools": { "explorer": true }`, if you want to us ## Testimonials -Fablo was originally created at [SoftwareMill](https://softwaremill.com). +Fablo was originally created at [SoftwareMill](https://softwaremill.com) by [@Hejwo](https://github.com/Hejwo/) and [@dzikowski](https://github.com/dzikowski/). +In December 2021, Fablo joined [Hyperledger Labs](https://labs.hyperledger.org/). + diff --git a/docs/index.html b/docs/index.html index bc7276cc2..1e630957b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,9 +1,9 @@ - + Redirecting to main repo page -

Redirecting to https://github.com/softwaremill/fablo...

+

Redirecting to https://github.com/hyperledger-labs/fablo...

diff --git a/docs/sample.json b/docs/sample.json index 1e8f6f222..9885e7293 100644 --- a/docs/sample.json +++ b/docs/sample.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "2.3.2", "tls": false, diff --git a/docs/schema.json b/docs/schema.json index ed3bca8f2..38ce5fa4e 100644 --- a/docs/schema.json +++ b/docs/schema.json @@ -12,7 +12,7 @@ ], "properties": { "$schema": { - "const": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json" + "const": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json" }, "global": { "$id": "#/properties/global", diff --git a/e2e/__snapshots__/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json.test.ts.snap index 3d7db197a..b6393eff3 100644 --- a/e2e/__snapshots__/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json.test.ts.snap @@ -2038,7 +2038,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -2081,7 +2081,7 @@ fi `; exports[`samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json should create proper e2e/__tmp__/samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -2406,6 +2406,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel1\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -2417,12 +2421,30 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf1.4-1org-1chaincode-raft.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf1.4-1org-1chaincode-raft.json.test.ts.snap index 5f24d5e09..a0a78d241 100644 --- a/e2e/__snapshots__/fablo-config-hlf1.4-1org-1chaincode-raft.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf1.4-1org-1chaincode-raft.json.test.ts.snap @@ -1449,7 +1449,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -1492,7 +1492,7 @@ fi `; exports[`samples/fablo-config-hlf1.4-1org-1chaincode-raft.json should create proper e2e/__tmp__/samples/fablo-config-hlf1.4-1org-1chaincode-raft.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf1.4-1org-1chaincode-raft.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -1762,6 +1762,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel1\\" \\"Org1MSP\\" \\"cli.org1.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -1773,10 +1777,22 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-1chaincode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-1chaincode.json.test.ts.snap index ea34f45d8..57c2f6dc0 100644 --- a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-1chaincode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-1chaincode.json.test.ts.snap @@ -2064,7 +2064,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -2107,7 +2107,7 @@ fi `; exports[`samples/fablo-config-hlf1.4-2orgs-1chaincode.json should create proper e2e/__tmp__/samples/fablo-config-hlf1.4-2orgs-1chaincode.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf1.4-2orgs-1chaincode.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -2473,6 +2473,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel2\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -2484,10 +2488,22 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml.test.ts.snap index 15a4e1d2f..62f5beef1 100644 --- a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml.test.ts.snap @@ -2045,7 +2045,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -2088,7 +2088,7 @@ fi `; exports[`samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml should create proper e2e/__tmp__/samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -2464,6 +2464,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel1\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -2475,18 +2479,54 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-or-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-or-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-or-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-or-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-or-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-or-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-and-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-and-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-and-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-and-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-and-policy-chaincode-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-and-policy-chaincode-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-or-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-or-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-or-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-or-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-or-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-or-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-and-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-and-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-and-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-and-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-and-policy-chaincode\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-and-policy-chaincode*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json.test.ts.snap index 1338b06a8..2dee50d5e 100644 --- a/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json.test.ts.snap @@ -2235,7 +2235,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -2278,7 +2278,7 @@ fi `; exports[`samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json should create proper e2e/__tmp__/samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -2688,6 +2688,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel2\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -2699,14 +2703,38 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode2-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode2-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org2.example.com-chaincode2-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org2.example.com-chaincode2-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode2\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode2*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org2.example.com-chaincode2\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org2.example.com-chaincode2*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-raft-explorer.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-raft-explorer.json.test.ts.snap index 0b658d42f..c0423dbd6 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-raft-explorer.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-raft-explorer.json.test.ts.snap @@ -1476,7 +1476,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -1519,7 +1519,7 @@ fi `; exports[`samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json should create proper e2e/__tmp__/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -1761,6 +1761,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel1\\" \\"Org1MSP\\" \\"cli.org1.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -1772,8 +1776,14 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap index 79cdd0bf5..a853b536d 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap @@ -1386,7 +1386,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -1429,7 +1429,7 @@ fi `; exports[`samples/fablo-config-hlf2-1org-1chaincode.json should create proper e2e/__tmp__/samples/fablo-config-hlf2-1org-1chaincode.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf2-1org-1chaincode.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -1713,6 +1713,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel1\\" \\"Org1MSP\\" \\"cli.org1.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -1724,10 +1728,22 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap index cefc1ddd4..325166b77 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap @@ -2973,7 +2973,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -3016,7 +3016,7 @@ fi `; exports[`samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml should create proper e2e/__tmp__/samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -3600,6 +3600,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel3\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -3611,14 +3615,38 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer0.org2.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org2.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode2-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode2-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org2.example.com-chaincode2-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org2.example.com-chaincode2-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer0.org2.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org2.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode2\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode2*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org2.example.com-chaincode2\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org2.example.com-chaincode2*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap index 7ba0243ca..5ef5a9e18 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap @@ -3268,7 +3268,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" + printStartSuccessInfo } if [ \\"$1\\" = \\"up\\" ]; then @@ -3311,7 +3311,7 @@ fi `; exports[`samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json should create proper e2e/__tmp__/samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.tmpdir/fablo-target/fabric-docker/.env from samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json 1`] = ` -"FABLO_VERSION=1.1.0-unstable +"FABLO_VERSION=1.1.0 FABLO_BUILD= FABLO_REST_VERSION=0.1.0 HYPERLEDGER_EXPLORER_VERSION=1.1.8 @@ -3836,6 +3836,10 @@ notifyOrgsAboutChannels() { deleteNewChannelUpdateTx \\"my-channel3\\" \\"Org2MSP\\" \\"cli.org2.example.com\\" } +printStartSuccessInfo() { + printHeadline \\"Done! Enjoy your fresh network\\" \\"U1F984\\" +} + stopNetwork() { printHeadline \\"Stopping network\\" \\"U1F68F\\" (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose stop) @@ -3847,10 +3851,22 @@ networkDown() { (cd \\"$FABLO_NETWORK_ROOT\\"/fabric-docker && docker-compose down) printf \\"\\\\nRemoving chaincode containers & images... \\\\U1F5D1 \\\\n\\" - docker rm -f $(docker ps -a | grep dev-peer0.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer0.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rm -f $(docker ps -a | grep dev-peer1.org1.example.com-chaincode1-0.0.1-* | awk '{print $1}') || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" - docker rmi $(docker images dev-peer1.org1.example.com-chaincode1-0.0.1-* -q) || echo \\"docker rm failed, Check if all fabric dockers properly was deleted\\" + for container in $(docker ps -a | grep \\"dev-peer0.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer0.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done + for container in $(docker ps -a | grep \\"dev-peer1.org1.example.com-chaincode1\\" | awk '{print $1}'); do + echo \\"Removing container $container...\\" + docker rm -f \\"$container\\" || echo \\"docker rm of $container failed. Check if all fabric dockers properly was deleted\\" + done + for image in $(docker images \\"dev-peer1.org1.example.com-chaincode1*\\" -q); do + echo \\"Removing image $image...\\" + docker rmi \\"$image\\" || echo \\"docker rmi of $image failed. Check if all fabric dockers properly was deleted\\" + done printf \\"\\\\nRemoving generated configs... \\\\U1F5D1 \\\\n\\" rm -rf \\"$FABLO_NETWORK_ROOT/fabric-config/config\\" diff --git a/e2e/__snapshots__/fabloCommands.test.ts.snap b/e2e/__snapshots__/fabloCommands.test.ts.snap index 44b423648..1b8584ea4 100644 --- a/e2e/__snapshots__/fabloCommands.test.ts.snap +++ b/e2e/__snapshots__/fabloCommands.test.ts.snap @@ -1,15 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`extend config should extend custom config 1`] = ` -"Fablo is powered by : - _____ __ _ ___ ____ _ _ -/ ___| / _| | | \\\\/ (_) | | -\\\\ \`--. ___ | |_| |___ ____ _ _ __ ___| . . |_| | | - \`--. \\\\/ _ \\\\| _| __\\\\ \\\\ /\\\\ / / _\` | '__/ _ \\\\ |\\\\/| | | | | -/\\\\__/ / (_) | | | |_ \\\\ V V / (_| | | | __/ | | | | | | -\\\\____/ \\\\___/|_| \\\\__| \\\\_/\\\\_/ \\\\__,_|_| \\\\___\\\\_| |_/_|_|_| -=========================================================== v: 1.1.0-unstable -Validation errors count: 0 +"Validation errors count: 0 Validation warnings count: 0 =========================================================== { @@ -2339,15 +2331,7 @@ Validation warnings count: 0 `; exports[`extend config should extend default config 1`] = ` -"Fablo is powered by : - _____ __ _ ___ ____ _ _ -/ ___| / _| | | \\\\/ (_) | | -\\\\ \`--. ___ | |_| |___ ____ _ _ __ ___| . . |_| | | - \`--. \\\\/ _ \\\\| _| __\\\\ \\\\ /\\\\ / / _\` | '__/ _ \\\\ |\\\\/| | | | | -/\\\\__/ / (_) | | | |_ \\\\ V V / (_| | | | __/ | | | | | | -\\\\____/ \\\\___/|_| \\\\__| \\\\_/\\\\_/ \\\\__,_|_| \\\\___\\\\_| |_/_|_|_| -=========================================================== v: 1.1.0-unstable -Validation errors count: 0 +"Validation errors count: 0 Validation warnings count: 0 =========================================================== { @@ -2809,7 +2793,7 @@ Validation warnings count: 0 exports[`init should init simple fablo config 1`] = ` "{ - \\"$schema\\": \\"https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json\\", + \\"$schema\\": \\"https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json\\", \\"global\\": { \\"fabricVersion\\": \\"2.4.0\\", \\"tls\\": false, @@ -2862,7 +2846,7 @@ exports[`init should init simple fablo config 1`] = ` exports[`init should init simple fablo config with node chaincode 1`] = ` "{ - \\"$schema\\": \\"https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json\\", + \\"$schema\\": \\"https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json\\", \\"global\\": { \\"fabricVersion\\": \\"2.4.0\\", \\"tls\\": false, @@ -2923,7 +2907,7 @@ exports[`init should init simple fablo config with node chaincode 1`] = ` exports[`init should init simple fablo config with node chaincode and rest api 1`] = ` "{ - \\"$schema\\": \\"https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json\\", + \\"$schema\\": \\"https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json\\", \\"global\\": { \\"fabricVersion\\": \\"2.4.0\\", \\"tls\\": false, diff --git a/e2e/__snapshots__/schema.test.ts.snap b/e2e/__snapshots__/schema.test.ts.snap index 28d71404f..05fb52f0f 100644 --- a/e2e/__snapshots__/schema.test.ts.snap +++ b/e2e/__snapshots__/schema.test.ts.snap @@ -7,7 +7,7 @@ Object { "default": Object {}, "properties": Object { "$schema": Object { - "const": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "const": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", }, "chaincodes": Object { "$id": "#/properties/chaincodes", diff --git a/fablo-release.sh b/fablo-release.sh index cc9548576..a85a9fa5c 100755 --- a/fablo-release.sh +++ b/fablo-release.sh @@ -13,7 +13,7 @@ cleanup() { trap cleanup EXIT -git clone --depth 1 --branch "$tag" "https://github.com/softwaremill/fablo" "$FABLO_HOME" +git clone --depth 1 --branch "$tag" "https://github.com/hyperledger-labs/fablo" "$FABLO_HOME" ("$FABLO_HOME/check-if-fablo-version-matches.sh") FABLO_VERSION="$(jq -r '.version' "$FABLO_HOME/package.json")" diff --git a/fablo.sh b/fablo.sh index 37cfb901e..1e1267f70 100755 --- a/fablo.sh +++ b/fablo.sh @@ -2,7 +2,7 @@ set -e -FABLO_VERSION="1.1.0-unstable" +FABLO_VERSION="1.1.0" FABLO_IMAGE_NAME="softwaremill/fablo" FABLO_IMAGE="$FABLO_IMAGE_NAME:$FABLO_VERSION" @@ -37,10 +37,23 @@ getSnapshotPath() { fi } -printHelp() { - echo "Fablo -- kick-off and manage your Hyperledger Fabric network +printSplash() { + darkGray=$'\e[90m' + end=$'\e[0m' + echo "" + echo "┌────── .─. ┌─────. ╷ .────." + echo "│ / \ │ │ │ ╱ ╲ " + echo "├───── / \ ├─────: │ │ │" + echo "│ /───────\ │ │ │ ╲ ╱ " + printf "╵ / \ └─────' └────── '────' %24s\n" "v$FABLO_VERSION" + echo "${darkGray}┌┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐" + echo "│ https://fablo.io | created at SoftwareMill | backed by Hyperledger Foundation│" + echo "└┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┘${end}" +} -Usage: +printHelp() { + printSplash + echo "Usage: fablo init [node] [rest] [dev] Creates simple Fablo config in current directory with optional Node.js, chaincode and REST API and dev mode. @@ -124,18 +137,20 @@ executeOnFabloDocker() { } useVersion() { + printSplash local version="$1" if [ -n "$version" ]; then echo "Updating '$0' to version $version..." set +e - curl -Lf https://github.com/softwaremill/fablo/releases/download/"$version"/fablo.sh -o "$0" && chmod +x "$0" + curl -Lf https://github.com/hyperledger-labs/fablo/releases/download/"$version"/fablo.sh -o "$0" && chmod +x "$0" else executeOnFabloDocker "fablo:list-versions" fi } initConfig() { + printSplash executeOnFabloDocker "fablo:init $1 $2" cp -R -i "$FABLO_TEMP_DIR/." "$COMMAND_CALL_ROOT/" } @@ -151,6 +166,7 @@ extendConfig() { } generateNetworkConfig() { + printSplash local fablo_config=${1:-$(getDefaultFabloConfig)} local fablo_target=${2:-$FABLO_TARGET} diff --git a/package-lock.json b/package-lock.json index 92393441a..e2a338103 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "generator-fablo", - "version": "1.1.0-unstable", + "version": "1.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "generator-fablo", - "version": "1.1.0-unstable", + "version": "1.1.0", "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", - "got": "^11.8.0", + "got": "^11.8.5", "js-yaml": "^4.1.0", "jsonschema": "^1.2.6", "lodash": "^4.17.21", @@ -1424,6 +1424,11 @@ "integrity": "sha512-xdOvNmXmrZqqPy3kuCQ+fz6wA0xU5pji9cd1nDrflWaAWtYLLGk5ykW0H6yg5TVyehHP1pfmuuSaZkhP+kspVA==", "dev": true }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2655,16 +2660,16 @@ } }, "node_modules/cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", + "normalize-url": "^6.0.1", "responselike": "^2.0.0" }, "engines": { @@ -2963,7 +2968,7 @@ "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "dependencies": { "mimic-response": "^1.0.0" } @@ -3099,6 +3104,18 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5448,16 +5465,16 @@ } }, "node_modules/got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", + "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", @@ -7453,10 +7470,11 @@ "dev": true }, "node_modules/keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", + "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", "dependencies": { + "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -8302,9 +8320,9 @@ "dev": true }, "node_modules/moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "devOptional": true, "engines": { "node": "*" @@ -8533,11 +8551,14 @@ } }, "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm-api": { @@ -14533,6 +14554,11 @@ "integrity": "sha512-xdOvNmXmrZqqPy3kuCQ+fz6wA0xU5pji9cd1nDrflWaAWtYLLGk5ykW0H6yg5TVyehHP1pfmuuSaZkhP+kspVA==", "dev": true }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -15489,16 +15515,16 @@ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", + "normalize-url": "^6.0.1", "responselike": "^2.0.0" } }, @@ -15725,7 +15751,7 @@ "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "requires": { "mimic-response": "^1.0.0" } @@ -15844,6 +15870,15 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, + "compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -17644,16 +17679,16 @@ } }, "got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", + "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", @@ -19164,10 +19199,11 @@ "dev": true }, "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", + "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", "requires": { + "compress-brotli": "^1.3.8", "json-buffer": "3.0.1" } }, @@ -19821,9 +19857,9 @@ } }, "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "devOptional": true }, "ms": { @@ -20015,9 +20051,9 @@ "dev": true }, "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-api": { "version": "1.0.1", diff --git a/package.json b/package.json index 70e7ef0df..d96a41d48 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "generator-fablo", - "version": "1.1.0-unstable", + "version": "1.1.0", "description": "Fablo is a simple tool to generate the Hyperledger Fabric blockchain network and run it on Docker. It supports RAFT and solo consensus protocols, multiple organizations and channels, chaincode installation and upgrade.", - "author": "Piotr Hejwowski , Jakub Dzikowski ", + "author": "Piotr Hejwowski , Jakub Dzikowski ", "repository": { "type": "git", "url": "git+https://github.com/hyperledger-labs/fablo.git" @@ -31,7 +31,7 @@ }, "dependencies": { "chalk": "^4.1.0", - "got": "^11.8.0", + "got": "^11.8.5", "js-yaml": "^4.1.0", "jsonschema": "^1.2.6", "lodash": "^4.17.21", diff --git a/samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json b/samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json index 9ea13928b..21b4e4b72 100644 --- a/samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json +++ b/samples/fablo-config-hlf1.3-2orgs-1chaincode-private-data.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "1.3.0", "tls": false diff --git a/samples/fablo-config-hlf1.4-1org-1chaincode-raft.json b/samples/fablo-config-hlf1.4-1org-1chaincode-raft.json index a1710a07f..afbd6194c 100644 --- a/samples/fablo-config-hlf1.4-1org-1chaincode-raft.json +++ b/samples/fablo-config-hlf1.4-1org-1chaincode-raft.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "1.4.6", "tls": true, diff --git a/samples/fablo-config-hlf1.4-2orgs-1chaincode.json b/samples/fablo-config-hlf1.4-2orgs-1chaincode.json index bb1cbd680..b2a0a7f02 100644 --- a/samples/fablo-config-hlf1.4-2orgs-1chaincode.json +++ b/samples/fablo-config-hlf1.4-2orgs-1chaincode.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "1.4.6", "tls": false diff --git a/samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml b/samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml index a86977a55..ab9ef2c21 100644 --- a/samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml +++ b/samples/fablo-config-hlf1.4-2orgs-2chaincodes-private-data.yaml @@ -1,5 +1,5 @@ --- -"$schema": https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json +"$schema": https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json global: fabricVersion: 1.4.11 tls: false diff --git a/samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json b/samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json index a8c725496..f7c3a9bbf 100644 --- a/samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json +++ b/samples/fablo-config-hlf1.4-2orgs-2chaincodes-raft.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "1.4.6", "tls": true diff --git a/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json b/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json index b345e1bdf..0e69eab96 100644 --- a/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json +++ b/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "2.3.3", "tls": true, diff --git a/samples/fablo-config-hlf2-1org-1chaincode.json b/samples/fablo-config-hlf2-1org-1chaincode.json index 5fe7f773e..27a6114db 100644 --- a/samples/fablo-config-hlf2-1org-1chaincode.json +++ b/samples/fablo-config-hlf2-1org-1chaincode.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "2.4.0", "tls": false diff --git a/samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml b/samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml index 6def27263..79898115f 100644 --- a/samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml +++ b/samples/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml @@ -1,5 +1,5 @@ --- -"$schema": https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json +"$schema": https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json global: fabricVersion: 2.4.3 tls: true diff --git a/samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json b/samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json index 9c427001e..06dd87648 100644 --- a/samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json +++ b/samples/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/softwaremill/fablo/releases/download/1.1.0-unstable/schema.json", + "$schema": "https://github.com/hyperledger-labs/fablo/releases/download/1.1.0/schema.json", "global": { "fabricVersion": "2.3.2", "tls": true, diff --git a/src/app/index.ts b/src/app/index.ts index ee637f717..7548441d3 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -1,13 +1,8 @@ import * as Generator from "yeoman-generator"; -import * as config from "../config"; export default class extends Generator { - initializing(): void { - this.log(config.splashScreen()); - } - displayInfo(): void { - const url = "https://github.com/softwaremill/fablo"; + const url = "https://github.com/hyperledger-labs/fablo"; this.log("This is main entry point for Yeoman app used in Fablo."); this.log("Visit the project page to get more information."); this.log(`---\n${url}\n---`); diff --git a/src/config.test.ts b/src/config.test.ts index a8c9e4399..7d59d9b57 100644 --- a/src/config.test.ts +++ b/src/config.test.ts @@ -1,7 +1,7 @@ import { fabloVersion, getVersionFromSchemaUrl } from "./config"; it("should get version from schema URL", () => { - const url = "https://github.com/softwaremill/fablo/releases/download/0.0.1/schema.json"; + const url = "https://github.com/hyperledger-labs/fablo/releases/download/0.0.1/schema.json"; const version = getVersionFromSchemaUrl(url); expect(version).toEqual("0.0.1"); }); diff --git a/src/config.ts b/src/config.ts index f31ce838b..f3e781717 100644 --- a/src/config.ts +++ b/src/config.ts @@ -22,21 +22,8 @@ const supportedFabricVersions = schemaJson.properties.global.properties.fabricVe const versionsSupportingRaft = supportedFabricVersions.filter((v) => version(v).isGreaterOrEqual("1.4.3")); -const splashScreen = (): string => - `${ - "Fablo is powered by :\n" + - " _____ __ _ ___ ____ _ _ \n" + - "/ ___| / _| | | \\/ (_) | |\n" + - "\\ `--. ___ | |_| |___ ____ _ _ __ ___| . . |_| | |\n" + - " `--. \\/ _ \\| _| __\\ \\ /\\ / / _` | '__/ _ \\ |\\/| | | | |\n" + - "/\\__/ / (_) | | | |_ \\ V V / (_| | | | __/ | | | | | |\n" + - "\\____/ \\___/|_| \\__| \\_/\\_/ \\__,_|_| \\___\\_| |_/_|_|_|\n" + - "=========================================================== v: " - }${fabloVersion}`; - export { schema, - splashScreen, fabloVersion, supportedFabricVersions, versionsSupportingRaft, diff --git a/src/extend-config/defaults.ts b/src/extend-config/defaults.ts index a920b4435..1496013f5 100644 --- a/src/extend-config/defaults.ts +++ b/src/extend-config/defaults.ts @@ -22,7 +22,7 @@ export default { peer: { prefix: "peer", db: "LevelDb", - anchorPeerInstances: (peerCount: number) => peerCount, + anchorPeerInstances: (peerCount: number): number => peerCount, }, channel: { ordererGroup: (ordererGroups: OrdererGroup[]): string => ordererGroups[0].name, diff --git a/src/extend-config/extendGlobal.ts b/src/extend-config/extendGlobal.ts index fc6d22052..037041d04 100644 --- a/src/extend-config/extendGlobal.ts +++ b/src/extend-config/extendGlobal.ts @@ -22,7 +22,7 @@ const getVersions = (fabricVersion: string): FabricVersions => { const fabricNodeenvExceptions: Record = { "2.4": "2.4.2", - "2.4.1": "2.4.2" + "2.4.1": "2.4.2", }; return { @@ -32,7 +32,7 @@ const getVersions = (fabricVersion: string): FabricVersions => { fabricBaseosVersion: version(fabricVersion).isGreaterOrEqual("2.0") ? fabricVersion : "0.4.9", fabricJavaenvVersion: majorMinor, fabricNodeenvVersion: fabricNodeenvExceptions[fabricVersion] ?? majorMinor, - fabricRecommendedNodeVersion: version(fabricVersion).isGreaterOrEqual("2.4") ? "16": "12" + fabricRecommendedNodeVersion: version(fabricVersion).isGreaterOrEqual("2.4") ? "16" : "12", }; }; diff --git a/src/setup-docker/templates/fabric-docker.sh b/src/setup-docker/templates/fabric-docker.sh index 957063444..43ebd9cf0 100755 --- a/src/setup-docker/templates/fabric-docker.sh +++ b/src/setup-docker/templates/fabric-docker.sh @@ -19,7 +19,7 @@ networkUp() { installChannels installChaincodes notifyOrgsAboutChannels - printHeadline "Done! Enjoy your fresh network" "U1F984" + printStartSuccessInfo } if [ "$1" = "up" ]; then diff --git a/src/setup-docker/templates/fabric-docker/commands-generated.sh b/src/setup-docker/templates/fabric-docker/commands-generated.sh index a35fa62df..d18b39286 100644 --- a/src/setup-docker/templates/fabric-docker/commands-generated.sh +++ b/src/setup-docker/templates/fabric-docker/commands-generated.sh @@ -200,6 +200,13 @@ notifyOrgsAboutChannels() { <% }) -%> } +printStartSuccessInfo() { + printHeadline "Done! Enjoy your fresh network" "U1F984" + <% if (global.peerDevMode) { -%> + echo "It has peerDevMode enabled, so remember to start your chaincodes manually." + <% } -%> +} + stopNetwork() { printHeadline "Stopping network" "U1F68F" (cd "$FABLO_NETWORK_ROOT"/fabric-docker && docker-compose stop) @@ -214,9 +221,9 @@ networkDown() { <% chaincodes.forEach((chaincode) => { -%> <% chaincode.channel.orgs.forEach((org) => { -%> <% org.peers.forEach((peer) => { -%> - <% const chaincodeContainerName=`dev-${peer.address}-${chaincode.name}-${chaincode.version}` -%> - docker rm -f $(docker ps -a | grep <%= chaincodeContainerName %>-* | awk '{print $1}') || echo "docker rm failed, Check if all fabric dockers properly was deleted" - docker rmi $(docker images <%= chaincodeContainerName %>-* -q) || echo "docker rm failed, Check if all fabric dockers properly was deleted" + <% const chaincodeContainerName=`dev-${peer.address}-${chaincode.name}` -%> + for container in $(docker ps -a | grep "<%= chaincodeContainerName %>" | awk '{print $1}'); do echo "Removing container $container..."; docker rm -f "$container" || echo "docker rm of $container failed. Check if all fabric dockers properly was deleted"; done + for image in $(docker images "<%= chaincodeContainerName %>*" -q); do echo "Removing image $image..."; docker rmi "$image" || echo "docker rmi of $image failed. Check if all fabric dockers properly was deleted"; done <% }) -%> <% }) -%> <% }) -%> diff --git a/src/validate/index.ts b/src/validate/index.ts index d01385df9..c1379677d 100644 --- a/src/validate/index.ts +++ b/src/validate/index.ts @@ -17,7 +17,7 @@ import { Capabilities } from "../types/FabloConfigExtended"; import { version } from "../repositoryUtils"; const ListCompatibleUpdatesGeneratorType = require.resolve("../list-compatible-updates"); -const findDuplicatedItems = (arr: any[]) => arr.filter((item, index) => arr.indexOf(item) != index); +const findDuplicatedItems = (arr: unknown[]) => arr.filter((item, index) => arr.indexOf(item) != index); const validationErrorType = { CRITICAL: "validation-critical", @@ -86,10 +86,6 @@ class ValidateGenerator extends Generator { this.composeWith(ListCompatibleUpdatesGeneratorType); } - async initializing() { - this.log(config.splashScreen()); - } - async validate() { this._validateIfConfigFileExists(this.options.fabloConfig);