Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
integration
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
elixxir
integration
Commits
fb3e9374
Commit
fb3e9374
authored
2 years ago
by
Josh Brooks
Browse files
Options
Downloads
Patches
Plain Diff
Add crust.sh for Crust integration testing
parent
90344e14
No related branches found
No related tags found
2 merge requests
!68
Master merge
,
!40
Projects/crust release
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
basice2e/crust.sh
+150
-0
150 additions, 0 deletions
basice2e/crust.sh
with
150 additions
and
0 deletions
basice2e/crust.sh
0 → 100755
+
150
−
0
View file @
fb3e9374
#!/bin/bash
# This file contains logic to run clients with the specific goal of putting
# backups testing backups on Crust's architecture. These clients will then
# recover these backups and ensure the recovered file matches the originally
# backed up file.
# NOTE: This is verbose on purpose.
################################################################################
## Initial Set Up & Clean Up of Past Runs
################################################################################
set
-e
rm
-fr
results.bak
||
true
mv
results results.bak
||
rm
-fr
results
||
true
rm
-fr
blob
*
||
true
rm
*
-contact
.json
||
true
rm
server-5.qdstrm
||
true
rm
server-5.qdrep
||
true
mkdir
-p
.elixxir
if
[
$#
-gt
1
]
then
echo
"usage:
$0
[gatewayip:port]"
exit
fi
NETWORKENTRYPOINT
=
$1
DEBUGLEVEL
=
${
DEBUGLEVEL
-1
}
SERVERLOGS
=
results/servers
GATEWAYLOGS
=
results/gateways
CLIENTOUT
=
results/clients
CLIENTCLEAN
=
results/clients-cleaned
CLIENTOPTS
=
"--password hello --ndf results/ndf.json --verify-sends --sendDelay 100 --waitTimeout 360 -v
$DEBUGLEVEL
"
CLIENTUDOPTS
=
"--password hello --ndf results/ndf.json -v
$DEBUGLEVEL
"
mkdir
-p
$SERVERLOGS
mkdir
-p
$GATEWAYLOGS
mkdir
-p
$CLIENTOUT
mkdir
-p
$CLIENTCLEAN
################################################################################
## Network Set Up
################################################################################
if
[
"
$NETWORKENTRYPOINT
"
==
"betanet"
]
then
NETWORKENTRYPOINT
=
$(
sort
-R
betanet.txt |
head
-1
)
elif
[
"
$NETWORKENTRYPOINT
"
==
"mainnet"
]
then
NETWORKENTRYPOINT
=
$(
sort
-R
mainnet.txt |
head
-1
)
elif
[
"
$NETWORKENTRYPOINT
"
==
"release"
]
then
NETWORKENTRYPOINT
=
$(
sort
-R
release.txt |
head
-1
)
elif
[
"
$NETWORKENTRYPOINT
"
==
"devnet"
]
then
NETWORKENTRYPOINT
=
$(
sort
-R
devnet.txt |
head
-1
)
elif
[
"
$NETWORKENTRYPOINT
"
==
""
]
then
NETWORKENTRYPOINT
=
$(
head
-1
network.config
)
fi
echo
"NETWORK:
$NETWORKENTRYPOINT
"
if
[
"
$NETWORKENTRYPOINT
"
==
"localhost:8440"
]
then
source
network.sh
else
echo
"Connecting to network defined at
$NETWORKENTRYPOINT
"
echo
$NETWORKENTRYPOINT
>
results/startgwserver.txt
fi
echo
"DOWNLOADING TLS Cert..."
CMD
=
"openssl s_client -showcerts -connect
$(
tr
-d
'[:space:]'
< results/startgwserver.txt
)
"
echo
$CMD
eval
$CMD
< /dev/null 2>&1
>
"results/startgwcert.bin"
CMD
=
"cat results/startgwcert.bin | openssl x509 -outform PEM"
echo
$CMD
eval
$CMD
>
"results/startgwcert.pem"
head
"results/startgwcert.pem"
echo
"DOWNLOADING NDF..."
CLIENTCMD
=
"../bin/client getndf --gwhost
$(
tr
-d
'[:space:]'
< results/startgwserver.txt
)
--cert results/startgwcert.pem"
eval
$CLIENTCMD
>>
results/ndf.json 2>&1 &
PIDVAL
=
$!
echo
"
$CLIENTCMD
--
$PIDVAL
"
wait
$PIDVAL
cat
results/ndf.json | jq
.
|
head
-5
file results/ndf.json
if
[
!
-s
results/ndf.json
]
then
echo
"results/ndf.json is empty, cannot proceed"
exit
-1
fi
#export GRPC_GO_LOG_VERBOSITY_LEVEL=99
#export GRPC_GO_LOG_SEVERITY_LEVEL=info
###############################################################################
# Test Crust
###############################################################################
echo
"TESTING CRUST..."
# Register username with UD
CLIENTCMD
=
"timeout 240s ../bin/client ud
$CLIENTUDOPTS
-l
$CLIENTOUT
/client300.log -s blob300 --register josh300"
eval
$CLIENTCMD
>>
$CLIENTOUT
/client300.txt &
PIDVAL
=
$!
echo
"
$CLIENTCMD
--
$PIDVAL
"
wait
$PIDVAL
# Upload file to Crust
CLIENTCMD
=
"timeout 240s ../bin/client crust -l
$CLIENTUDOPTS
$CLIENTOUT
/client300.log -s blob300 --upload --file LoremIpsum.txt"
eval
$CLIENTCMD
>>
$CLIENTOUT
/client300.txt &
PIDVAL
=
$!
echo
"
$CLIENTCMD
--
$PIDVAL
"
wait
$PIDVAL
# Recover file from Crust
CLIENTCMD
=
"timeout 240s ../bin/client crust -l
$CLIENTUDOPTS
$CLIENTOUT
/client300.log -s blob300 --recover --file LoremIpsum.txt"
eval
$CLIENTCMD
>>
$CLIENTOUT
/client300.txt &
PIDVAL
=
$!
echo
"
$CLIENTCMD
--
$PIDVAL
"
wait
$PIDVAL
###############################################################################
# Close Local Network
###############################################################################
if
[
"
$NETWORKENTRYPOINT
"
==
"localhost:8440"
]
then
cat
$SERVERLOGS
/server-
*
.log |
grep
-a
"ERROR"
|
grep
-a
-v
"context"
|
grep
-av
"metrics"
|
grep
-av
"database"
|
grep
-av
RequestClientKey
>
results/server-errors.txt
||
true
cat
$SERVERLOGS
/server-
*
.log |
grep
-a
"FATAL"
|
grep
-a
-v
"context"
|
grep
-av
"transport is closing"
|
grep
-av
"database"
>>
results/server-errors.txt
||
true
diff
-aruN
results/server-errors.txt noerrors.txt
IGNOREMSG
=
"GetRoundBufferInfo: Error received: rpc error: code = Unknown desc = round buffer is empty"
cat
$GATEWAYLOGS
/
*
.log |
grep
-a
"ERROR"
|
grep
-av
"context"
|
grep
-av
"certificate"
|
grep
-av
"Failed to read key"
|
grep
-av
"
$IGNOREMSG
"
>
results/gateway-errors.txt
||
true
cat
$GATEWAYLOGS
/
*
.log |
grep
-a
"FATAL"
|
grep
-av
"context"
|
grep
-av
"transport is closing"
>>
results/gateway-errors.txt
||
true
diff
-aruN
results/gateway-errors.txt noerrors.txt
fi
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment