#!/bin/sh set -x RADOS=rados RADOSGW_ADMIN=radosgw-admin fixed_file=default-zone-fixed.json declare -a pool_names=("domain_root" "control_pool" "gc_pool" "log_pool" "intent_log_pool" \ "usage_log_pool" "user_keys_pool" "user_email_pool" "user_swift_pool" \ "user_uid_pool" "index_pool" "data_pool" "data_extra_pool") filter_json() { out_file=$1 line=$2 ## now loop through the above array key=`echo $line | awk '{print $1}' | sed 's/"//g' | sed 's/://g'` # echo "key=$key" for i in "${pool_names[@]}" do if [ "$key" == "$i" ]; then val=`echo $line | awk '{print $2}' | sed 's/"//g' | sed 's/://g' | sed 's/,//g' ` echo \"$key\": \"${val}_\", >> $out_file return fi # or do whatever with individual element of the array done echo $line >> $out_file } echo "Backing up .rgw.root pool" $RADOS mkpool .rgw.root.backup $RADOS cppool .rgw.root .rgw.root.backup echo "Exercise initialization code" $RADOSGW_ADMIN user info --uid=foo # exercise init code echo "Get default zonegroup" $RADOSGW_ADMIN zonegroup get --rgw-zonegroup=default | sed 's/"id":.*/"id": "default",/g' | sed 's/"master_zone.*/"master_zone": "default",/g' > default-zg.json echo "Get default zone" $RADOSGW_ADMIN zone get --zone-id=default > default-zone.json cat default-zone.json echo "Creating new root pool" $RADOS rmpool .rgw.root .rgw.root --yes-i-really-really-mean-it $RADOS mkpool .rgw.root $RADOSGW_ADMIN realm create --rgw-realm=myrealm $RADOSGW_ADMIN zonegroup set --rgw-zonegroup=default < default-zg.json echo "Patching zone pool names" rm -f $fixed_file while read line; do filter_json $fixed_file "$line" done < default-zone.json $RADOSGW_ADMIN zone set --rgw-zone=default < $fixed_file $RADOSGW_ADMIN zonegroup default --rgw-zonegroup=default $RADOSGW_ADMIN zone default --rgw-zone=default