@@ -27,22 +27,13 @@ check_upload_stemcell_params() {
27
27
upload_stemcell () {
28
28
# Read potentially variable stemcell paramaters out of cf-deployment with bosh
29
29
local os
30
- os=$( bosh interpolate --path=/stemcells/alias=default/os cf-deployment/ ${MANIFEST_FILE} )
30
+ os=$1
31
31
local version
32
- version=$( bosh interpolate --path=/stemcells/alias=default/version cf-deployment/ ${MANIFEST_FILE} )
32
+ version=$2
33
33
34
34
# Hardcode a couple of stable stemcell paramaters
35
35
local stemcells_url
36
36
stemcells_url=" https://bosh.io/d/stemcells"
37
- local bosh_agent
38
- bosh_agent=" go_agent"
39
-
40
- # Ask bosh if it already has our OS / version stemcell combination
41
- # As of this writing, the new bosh cli doesn't have --skip-if-exists
42
- set +e
43
- local existing_stemcell
44
- existing_stemcell=$( bosh stemcells | grep " ${os} " | awk ' {print $2}' | tr -d " \*" | grep ^" ${version} " $ )
45
- set -e
46
37
47
38
local stemcell_name
48
39
@@ -60,7 +51,7 @@ upload_stemcell() {
60
51
stemcell_name=" bosh-azure-hyperv"
61
52
fi
62
53
63
- stemcell_name=" ${stemcell_name} -${os} -${bosh_agent} "
54
+ stemcell_name=" ${stemcell_name} -${os} -go_agent "
64
55
if [ " $version " = " latest" ]; then
65
56
full_stemcell_url=" ${stemcells_url} /${stemcell_name} "
66
57
else
@@ -87,13 +78,32 @@ upload_stemcell() {
87
78
-n \
88
79
upload-stemcell \
89
80
" ${full_stemcell_url} "
90
- set -x
81
+ }
82
+
83
+ function upload_stemcells() {
84
+ local arguments=' '
85
+ for op in ${OPS_FILES_WITH_STEMCELLS}
86
+ do
87
+ arguments=" ${arguments} -o cf-deployment/${op} "
88
+ done
89
+
90
+ bosh interpolate ${arguments} cf-deployment/${MANIFEST_FILE} > /tmp/cf.yml
91
+
92
+ local stemcells_json=$( ruby -rjson -ryaml -e " puts YAML.load_file('/tmp/cf.yml').to_json" | jq .stemcells)
93
+ local size=$( echo ${stemcells_json} | jq ' length' )
94
+
95
+ for i in ` seq 0 $(( size - 1 )) `
96
+ do
97
+ local os=$( echo ${stemcells_json} | jq -r .[$i ].os)
98
+ local version=$( echo ${stemcells_json} | jq -r .[$i ].version)
99
+ upload_stemcell ${os} ${version}
100
+ done
91
101
}
92
102
93
103
main () {
94
104
check_upload_stemcell_params
95
- setup_bosh_env_vars ' bbl-state '
96
- upload_stemcell
105
+ setup_bosh_env_vars
106
+ upload_stemcells
97
107
}
98
108
99
109
main
0 commit comments