Merge "Avoid awk error in hosts-config.sh for large deployments"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / swift-ring-update.yaml
1 heat_template_version: ocata
2
3 parameters:
4   servers:
5     type: json
6   SwiftRingPutTempurl:
7     default: ''
8     description: A temporary Swift URL to upload rings to.
9     type: string
10
11 resources:
12   SwiftRingUpdateConfig:
13     type: OS::Heat::SoftwareConfig
14     properties:
15       group: script
16       inputs:
17         - name: swift_ring_put_tempurl
18       config: |
19         #!/bin/sh
20         TMP_DATA=$(mktemp -d)
21         function cleanup {
22           rm -Rf "$TMP_DATA"
23         }
24         trap cleanup EXIT
25         # sanity check in case rings are not consistent within cluster
26         swift-recon --md5 | grep -q "doesn't match" && exit 1
27         pushd ${TMP_DATA}
28         tar -cvzf swift-rings.tar.gz /etc/swift/*.builder /etc/swift/*.ring.gz /etc/swift/backups/*
29         resp=`curl --insecure --silent -X PUT "${swift_ring_put_tempurl}" --write-out "%{http_code}" --data-binary @swift-rings.tar.gz`
30         popd
31         if [ "$resp" != "201" ]; then
32             exit 1
33         fi
34
35   SwiftRingUpdate:
36     type: OS::Heat::SoftwareDeployments
37     properties:
38       name: SwiftRingUpdate
39       config: {get_resource: SwiftRingUpdateConfig}
40       servers: {get_param: servers}
41       input_values:
42         swift_ring_put_tempurl: {get_param: SwiftRingPutTempurl}