forked from minhlh/Ansible-Fabric-Starter
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchaincode-upgrade.yml
63 lines (53 loc) · 2.82 KB
/
chaincode-upgrade.yml
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
---
- hosts: nodes
tasks:
- name: Start CLI admin tool container (and build it if needed)
raw: "docker-compose -f {{ docker_artifacts }}/docker-compose-{{ org }}.yaml up -d 2>&1"
when: "'peer' in node_roles"
- name: Make sure cli container started
raw: "docker start cli.{{ org }}.{{ global_domain }}"
when: "'peer' in node_roles"
- name: Obtain current installed chaincode
raw: "docker exec 'cli.{{ org }}.{{ global_domain }}' bash -c 'export CORE_PEER_ADDRESS=peer0.{{ org }}.{{ global_domain }}:7051 && peer chaincode list --installed'"
register: installed_chaincode
when: "'peer' in node_roles"
retries: 15
delay: 1
until: installed_chaincode.rc == 0
- name: Chaincode upgrate is proceeding..
block:
- name: Backup old chaincodes
raw: "mv {{ fabric_starter_workdir }}/chaincode {{ fabric_starter_workdir }}/chaincode.{{ ansible_date_time.iso8601_basic_short }}"
- name: Transfer new chaincode
synchronize:
src: "templates/chaincode"
dest: "{{ fabric_starter_workdir }}"
recursive: yes
use_ssh_args: yes
- name: Install chaincode
include_tasks: playbooks/install-chaincode.yaml
loop: "{{ global_channels }}"
- name: Upgrading chaincode with ensorsement policy
raw: "docker exec cli.{{ org }}.{{ global_domain }} bash -c \
'export CORE_PEER_ADDRESS=peer0.{{ org }}.{{ global_domain }}:7051 && \
peer chaincode upgrade -n {{ item.chaincode.name }} \
-P \"{{ item.chaincode.policy }}\" \
-v {{ item.chaincode.version }} \
-c {{ item.chaincode.init | to_json }} \
-o orderer{{ orderer_id | default() }}.{{ global_domain }}:7050 -C {{ item.name }} --tls \
--cafile /etc/hyperledger/artifacts/crypto-config/ordererOrganizations/{{ global_domain }}/tlsca/tlsca.{{ global_domain }}-cert.pem \
{{ collections_config_param }} {{ collections_config_path }}'"
loop: "{{ global_channels }}"
when: "org in item.particapants[0] and item.chaincode.policy != ''"
- name: Upgrading chaincode
raw: "docker exec cli.{{ org }}.{{ global_domain }} bash -c \
'export CORE_PEER_ADDRESS=peer0.{{ org }}.{{ global_domain }}:7051 && \
peer chaincode upgrade -n {{ item.chaincode.name }} \
-v {{ item.chaincode.version }} \
-c {{ item.chaincode.init | to_json }} \
-o orderer{{ orderer_id | default() }}.{{ global_domain }}:7050 -C {{ item.name }} --tls \
--cafile /etc/hyperledger/artifacts/crypto-config/ordererOrganizations/{{ global_domain }}/tlsca/tlsca.{{ global_domain }}-cert.pem \
{{ collections_config_param }} {{ collections_config_path }}'"
loop: "{{ global_channels }}"
when: "org in item.particapants[0] and item.chaincode.policy == ''"
when: "'peer' in node_roles and global_chaincode_version not in installed_chaincode.stdout"