12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/bin/bash
- #
- # A script to upload random data to a swarm cluster.
- #
- # Example:
- #
- # random-uploads.sh --addr 192.168.33.101:8500 --size 40k --count 1000
- set -e
- ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
- source "${ROOT}/swarm/dev/scripts/util.sh"
- DEFAULT_ADDR="localhost:8500"
- DEFAULT_UPLOAD_SIZE="40k"
- DEFAULT_UPLOAD_COUNT="1000"
- usage() {
- cat >&2 <<USAGE
- usage: $0 [options]
- Upload random data to a Swarm cluster.
- OPTIONS:
- -a, --addr ADDR Swarm API address [default: ${DEFAULT_ADDR}]
- -s, --size SIZE Individual upload size [default: ${DEFAULT_UPLOAD_SIZE}]
- -c, --count COUNT Number of uploads [default: ${DEFAULT_UPLOAD_COUNT}]
- -h, --help Show this message
- USAGE
- }
- main() {
- local addr="${DEFAULT_ADDR}"
- local upload_size="${DEFAULT_UPLOAD_SIZE}"
- local upload_count="${DEFAULT_UPLOAD_COUNT}"
- parse_args "$@"
- info "uploading ${upload_count} ${upload_size} random files to ${addr}"
- for i in $(seq 1 ${upload_count}); do
- info "upload ${i} / ${upload_count}:"
- do_random_upload
- echo
- done
- }
- do_random_upload() {
- curl -fsSL -X POST --data-binary "$(random_data)" "http://${addr}/bzz-raw:/"
- }
- random_data() {
- dd if=/dev/urandom of=/dev/stdout bs="${upload_size}" count=1 2>/dev/null
- }
- parse_args() {
- while true; do
- case "$1" in
- -h | --help)
- usage
- exit 0
- ;;
- -a | --addr)
- if [[ -z "$2" ]]; then
- fail "--addr flag requires an argument"
- fi
- addr="$2"
- shift 2
- ;;
- -s | --size)
- if [[ -z "$2" ]]; then
- fail "--size flag requires an argument"
- fi
- upload_size="$2"
- shift 2
- ;;
- -c | --count)
- if [[ -z "$2" ]]; then
- fail "--count flag requires an argument"
- fi
- upload_count="$2"
- shift 2
- ;;
- *)
- break
- ;;
- esac
- done
- if [[ $# -ne 0 ]]; then
- usage
- fail "ERROR: invalid arguments: $@"
- fi
- }
- main "$@"
|