#!/bin/bash
# Emulate dw_wlm_cli (Cray's DataWarp interface) for testing purposes
# See "Flags=EmulateCray" in burst_buffer.conf man page
#
# create_persistent
#
if [ $2 == "create_persistent" ]; then
   echo 'created'
fi

#
# data_in
#
if [ $2 == "data_in" ]; then
   sleep 3
#   echo "foo"
#   exit 1
fi

#
# data_out
#
if [ $2 == "data_out" ]; then
   sleep 20
#   echo "foo"
#   exit 1
fi

#
# destroy_persistent is defunct, use teardown
#
if [ $2 == "destroy_persistent" ]; then
   sleep 0.1
fi

#
# job_process
#
if [ $2 == "job_process" ]; then
   sleep 0.1
fi

#
# paths
#
if [ $2 == "paths" ]; then
   if [ $7 == "--pathfile" ]; then
      echo 'DWPATHS=/tmp/dw' > $8
   fi
fi

#
# pre_run
#
if [ $2 == "pre_run" ]; then
   sleep 5
fi

#
# post_run
#
if [ $2 == "post_run" ]; then
   sleep 0.1
fi

#
# pools
#
if [ $2 == "pools" ]; then
   echo '{"pools": [{"free": 29, "granularity": 214748364800, "id": "wlm_pool", "quantity": 29, "units": "bytes"}]}'
fi
if [ $2 == "poolsx" ]; then
   echo '{ "pools": [ { "id":"dwcache", "units":"bytes", "granularity":16777216, "quantity":2048, "free":2048 } ] }'
fi

#
# setup
#
if [ $2 == "setup" ]; then
   sleep 6
fi
if [ $2 == "setupx" ]; then
   sleep 0.1
   echo 'dwpost - failed client status code %s 400
Error creating instance: 400'
   exit 1
fi

#
# show_configurations
#
if [ $2 == "show_configurations" ]; then
   echo '{ "configurations": [ ] }'
fi

#
# show_instances
#
if [ $2 == "show_instances" ]; then
   echo '{ "instances": [ ] }'
fi
if [ $2 == "show_instancesx" ]; then
   echo '{ "instances": [
 {"capacity": {"bytes": 1288490188800, "nodes": 2}, "created": 1478232104, "expiration": 0, "expired": false, "id": 75, "intact": true, "label": "I75-0", "limits": {"write_window_length": 86400, "write_window_multiplier": 10}, "links": {"configurations": [73], "session": 75}, "public": false, "state": {"actualized": true, "fuse_blown": false, "goal": "create", "mixed": false, "transitioning": false}}
] }'
fi

#
# show_instances
#
if [ $2 == "show_sessions" ]; then
   echo '{ "sessions": [ ] }'
fi
# Create a job with ID 347 or the buffer will get torn down at slurmctld startup
if [ $2 == "show_sessionsx" ]; then
   echo '{ "sessions": [
{"created": 1478232104, "creator": "SLURM", "expiration": 0, "expired": false, "id": 75, "links": {"client_nodes": ["nid00039"]}, "owner": 1001, "state": {"actualized": true, "fuse_blown": false, "goal": "create", "mixed": false, "transitioning": false}, "token": "347"}
] }'
fi

#
# teardown
#
if [ $2 == "teardown" ]; then
   sleep 0.1
fi

exit 0
