From 5bfcaba58bfb8efcef5090ec5d5520b32b0e3c19 Mon Sep 17 00:00:00 2001 From: ravinsp <33562092+ravinsp@users.noreply.github.com> Date: Thu, 28 Nov 2019 16:29:07 +0530 Subject: [PATCH] Improved vm cluster scripts. --- CMakeLists.txt | 5 +++- .../{setup-cluster.sh => cluster.sh} | 27 +++++------------ test/vm-cluster/setup-hp.sh | 24 ++++++++------- test/vm-cluster/setup-vm.sh | 29 ++++++++++--------- test/vm-cluster/vmcreate.sh | 3 +- 5 files changed, 43 insertions(+), 45 deletions(-) rename test/vm-cluster/{setup-cluster.sh => cluster.sh} (79%) mode change 100644 => 100755 test/vm-cluster/vmcreate.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f7ddbad..c3f17fea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,6 +122,10 @@ target_link_libraries(hpstatemon add_dependencies(hpcore hpstatemon ) +add_custom_command(TARGET hpcore POST_BUILD + COMMAND strip ./build/hpcore + COMMAND strip ./build/hpstatemon +) target_precompile_headers(hpsupport PUBLIC src/pchheader.hpp) target_precompile_headers(hpcore REUSE_FROM hpsupport) @@ -135,7 +139,6 @@ target_precompile_headers(hpstatemon REUSE_FROM hpsupport) # Create docker image from hpcore build output with 'make docker' # Requires docker to be runnable without 'sudo' add_custom_target(docker - COMMAND strip ./build/hpcore COMMAND docker build -t hpcore:latest . ) set_target_properties(docker PROPERTIES EXCLUDE_FROM_ALL TRUE) diff --git a/test/vm-cluster/setup-cluster.sh b/test/vm-cluster/cluster.sh similarity index 79% rename from test/vm-cluster/setup-cluster.sh rename to test/vm-cluster/cluster.sh index 4686c0c4..80c1367f 100755 --- a/test/vm-cluster/setup-cluster.sh +++ b/test/vm-cluster/cluster.sh @@ -1,10 +1,12 @@ #!/bin/bash vmpass="" -#ip locations: aueast aueast uswest uswest seasia vmips=(ip list) +vmcount=${#vmips[@]} mode=$1 +hpcore=$(realpath ../..) + if [ "$mode" = "new" ] || [ "$mode" = "run" ] || [ "$mode" = "update" ]; then echo "" else @@ -13,38 +15,25 @@ else fi if [ $mode = "run" ]; then - let n=$2-1 - vmip=${vmips[$n]} - sshpass -p $vmpass ssh geveo@$vmip './hpcore run contract' - exit + let nodeid=$2-1 + vmip=${vmips[$nodeid]} + sshpass -p $vmpass ssh geveo@$vmip 'sudo ./hpcore run contract' + exit 0 fi -hpcore=$(realpath ../..) -vmcount=${#vmips[@]} -#vmcount=2 - mkdir ./cfg > /dev/null 2>&1 for (( i=0; i<$vmcount; i++ )) do vmip=${vmips[i]} let n=$i+1 - - #if [ $mode = "update" ]; then - # /bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore & - #else - /bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore - #fi + /bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore # Collect each node's pub key and peer address. pubkeys[i]=$(node -p "require('./cfg/node$n.json').pubkeyhex") peers[i]="$vmip:22860" done -if [ $mode = "update" ]; then - exit -fi - # Function to generate JSON array string while skiping a given index. function joinarr { arrname=$1[@] diff --git a/test/vm-cluster/setup-hp.sh b/test/vm-cluster/setup-hp.sh index e43971a6..47445f89 100755 --- a/test/vm-cluster/setup-hp.sh +++ b/test/vm-cluster/setup-hp.sh @@ -1,26 +1,28 @@ #!/bin/bash if [ -x "$(command -v node)" ]; then - echo "NodeJs is installed." + echo "NodeJs already installed." else echo "Installing NodeJs..." sudo apt-get update sudo apt-get -y install curl curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs +fi - # FUSE +if [ -x "$(command -v fusermount3)" ]; then + echo "FUSE already installed." +else + echo "Installing FUSE..." sudo cp ./libfuse3.so.3 /usr/local/lib/ sudo ldconfig - # Install fuse. - sudo apt-get update && apt-get install -y fuse && rm -rf /var/lib/apt/lists/* + sudo cp ./fusermount3 /usr/local/bin/ fi -if [ ! -d "./contract" ]; then - ./hpcore new ./contract - pushd ./contract/cfg - openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tlskey.pem -out tlscert.pem \ - -subj "/C=AU/ST=ST/L=L/O=O/OU=OU/CN=localhost/emailAddress=hp@example" > /dev/null 2>&1 - popd -fi +sudo rm -r ~/contract > /dev/null 2>&1 +./hpcore new ./contract +pushd ./contract/cfg > /dev/null 2>&1 +openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tlskey.pem -out tlscert.pem \ + -subj "/C=AU/ST=ST/L=L/O=O/OU=OU/CN=localhost/emailAddress=hp@example" > /dev/null 2>&1 +popd > /dev/null 2>&1 diff --git a/test/vm-cluster/setup-vm.sh b/test/vm-cluster/setup-vm.sh index 9f9f9f98..cb4ccf02 100755 --- a/test/vm-cluster/setup-vm.sh +++ b/test/vm-cluster/setup-vm.sh @@ -8,18 +8,21 @@ hpcore=$5 echo $nodeid. $vmip -sshpass -p $vmpass scp $hpcore/build/hpcore \ - $hpcore/build/hpstatemon \ - $hpcore/libfuse3.so.3 \ - $hpcore/examples/echocontract/contract.js \ - ./setup-hp.sh \ - geveo@$vmip:~/ - - if [ $mode = "new" ]; then - sshpass -p $vmpass ssh geveo@$vmip 'rm -r ~/contract && chmod 700 ~/setup-hp.sh && ~/setup-hp.sh' -else - exit -fi -sshpass -p $vmpass scp geveo@$vmip:~/contract/cfg/hp.cfg ./cfg/node$nodeid.json \ No newline at end of file + sshpass -p $vmpass scp $hpcore/build/hpcore \ + $hpcore/build/hpstatemon \ + $hpcore/examples/echocontract/contract.js \ + /usr/local/lib/libfuse3.so.3 \ + /usr/local/bin/fusermount3 \ + ./setup-hp.sh \ + geveo@$vmip:~/ + + sshpass -p $vmpass ssh geveo@$vmip 'chmod 700 ~/setup-hp.sh && ~/setup-hp.sh' + sshpass -p $vmpass scp geveo@$vmip:~/contract/cfg/hp.cfg ./cfg/node$nodeid.json +else + sshpass -p $vmpass scp $hpcore/build/hpcore \ + $hpcore/build/hpstatemon \ + $hpcore/examples/echocontract/contract.js \ + geveo@$vmip:~/ +fi \ No newline at end of file diff --git a/test/vm-cluster/vmcreate.sh b/test/vm-cluster/vmcreate.sh old mode 100644 new mode 100755 index 56b69ed5..b530b289 --- a/test/vm-cluster/vmcreate.sh +++ b/test/vm-cluster/vmcreate.sh @@ -1,6 +1,7 @@ #!/bin/bash -#ac login +# Azure vm creation.s +#az login #az account list #az account set --subscription ''