-
Notifications
You must be signed in to change notification settings - Fork 5
/
admin-connection.js
87 lines (73 loc) · 2.71 KB
/
admin-connection.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
'use strict';
/**
* Part of a course on Hyperledger Fabric:
* http://ACloudFan.com
*
* Composer 0.19.0 : Does not require a FileSystemCardStore to be created
*
* https://hyperledger.github.io/composer/latest//api/admin-adminconnection
*
* Demonstrates the use of the admin connection class
* 1. Create an instance of the AdminConnection object
* 2. Connect as the PeerAdmin
* 3. List the deployed Business Network Apps
* 4. Disconnect
* 5. Connect as the Network Admin for airlinev7
* 6. Ping airlinev7
* 7. Disconnect
*/
// Need the card store instance
//const FileSystemCardStore = require('composer-common').FileSystemCardStore;
const AdminConnection = require('composer-admin').AdminConnection;
// Used as the card for all calls
const cardNameForPeerAdmin = "PeerAdmin@hlfv1";
const cardNameForNetworkAdmin = "admin@airlinev7";
const appToBePinged = "airlinev7";
// 1. Create instance of file system card store
// NOT NEEDED in 0.19.0
//const cardStore = new FileSystemCardStore();
// 2. Create Admin Connection object for the fabric
// NOT NEEDED in 0.19.0
// const cardStoreObj = { cardStore: cardStore };
// const adminConnection = new AdminConnection(cardStoreObj);
var cardType = { type: 'composer-wallet-filesystem' }
const adminConnection = new AdminConnection(cardType);
console.log("Admin Connected Successfully!!!");
// 3. Initiate a connection as PeerAdmin
return adminConnection.connect(cardNameForPeerAdmin).then(function(){
console.log("Admin Connected Successfully!!!");
// Display the name and version of the network app
listBusinessNetwork();
}).catch((error)=>{
console.log(error);
});
// Extracts information about the network
function listBusinessNetwork(){
// 4. List the network apps
adminConnection.list().then((networks)=>{
console.log("Successfully retrieved the deployed Networks: ",networks);
networks.forEach((businessNetwork) => {
console.log('Deployed business network', businessNetwork);
});
// 5. Disconnect
adminConnection.disconnect();
reconnectAsNetworkAdmin();
}).catch((error)=>{
console.log(error);
});
}
// Ping the network
function reconnectAsNetworkAdmin(){
// 6. Reconnect with the card for network admin
return adminConnection.connect(cardNameForNetworkAdmin).then(function(){
console.log("Network Admin Connected Successfully!!!");
// 7. Ping the BNA
adminConnection.ping(appToBePinged).then(function(response){
console.log("Ping response from "+appToBePinged+" :",response);
// 8. Disconnect
adminConnection.disconnect();
}).catch((error)=>{
console.log(error);
});
});
}