Skip to content

Commit a39792d

Browse files
committed
HTTP tests to use CLI scripts
1 parent cda5a9a commit a39792d

6 files changed

Lines changed: 141 additions & 45 deletions

File tree

bin/admin/packages/install-package.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ else
9595
fi
9696

9797
# POST to packages/install endpoint
98-
curl -k -w "%{http_code}\n" -E "${cert_pem_file}":"${cert_password}" \
98+
curl -k -s -w "%{http_code}\n" -E "$cert_pem_file":"$cert_password" \
9999
-X POST \
100100
-H "Accept: text/turtle" \
101101
-H "Content-Type: application/x-www-form-urlencoded" \
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
#!/usr/bin/env bash
2+
3+
print_usage()
4+
{
5+
printf "Uninstalls a LinkedDataHub package.\n"
6+
printf "\n"
7+
printf "Usage: %s options\n" "$0"
8+
printf "\n"
9+
printf "Options:\n"
10+
printf " -b, --base BASE_URL Base URL of the application\n"
11+
printf " -f, --cert-pem-file CERT_FILE .pem file with the WebID certificate of the agent\n"
12+
printf " -p, --cert-password CERT_PASSWORD Password of the WebID certificate\n"
13+
printf " --proxy PROXY_URL The host this request will be proxied through (optional)\n"
14+
printf " --package PACKAGE_URI URI of the package to uninstall (e.g., https://packages.linkeddatahub.com/skos/#this)\n"
15+
printf "\n"
16+
printf "Example:\n"
17+
printf " %s -b https://localhost:4443/ -f ssl/owner/cert.pem -p Password --package https://packages.linkeddatahub.com/skos/#this\n" "$0"
18+
}
19+
20+
hash curl 2>/dev/null || { echo >&2 "curl not on \$PATH. Aborting."; exit 1; }
21+
22+
unknown=()
23+
while [[ $# -gt 0 ]]
24+
do
25+
key="$1"
26+
27+
case $key in
28+
-b|--base)
29+
base="$2"
30+
shift # past argument
31+
shift # past value
32+
;;
33+
-f|--cert-pem-file)
34+
cert_pem_file="$2"
35+
shift # past argument
36+
shift # past value
37+
;;
38+
-p|--cert-password)
39+
cert_password="$2"
40+
shift # past argument
41+
shift # past value
42+
;;
43+
--proxy)
44+
proxy="$2"
45+
shift # past argument
46+
shift # past value
47+
;;
48+
--package)
49+
package_uri="$2"
50+
shift # past argument
51+
shift # past value
52+
;;
53+
*) # unknown option
54+
unknown+=("$1") # save it in an array for later
55+
shift # past argument
56+
;;
57+
esac
58+
done
59+
set -- "${unknown[@]}" # restore args
60+
61+
if [ -z "$base" ] ; then
62+
print_usage
63+
exit 1
64+
fi
65+
if [ -z "$cert_pem_file" ] ; then
66+
print_usage
67+
exit 1
68+
fi
69+
if [ -z "$cert_password" ] ; then
70+
print_usage
71+
exit 1
72+
fi
73+
if [ -z "$package_uri" ] ; then
74+
print_usage
75+
exit 1
76+
fi
77+
78+
# Convert base URL to admin base URL
79+
admin_uri() {
80+
local uri="$1"
81+
echo "$uri" | sed 's|://|://admin.|'
82+
}
83+
84+
admin_base=$(admin_uri "$base")
85+
target_url="${admin_base}packages/uninstall"
86+
87+
if [ -n "$proxy" ]; then
88+
admin_proxy=$(admin_uri "$proxy")
89+
# rewrite target hostname to proxy hostname
90+
url_host=$(echo "$target_url" | cut -d '/' -f 1,2,3)
91+
proxy_host=$(echo "$admin_proxy" | cut -d '/' -f 1,2,3)
92+
final_url="${target_url/$url_host/$proxy_host}"
93+
else
94+
final_url="$target_url"
95+
fi
96+
97+
# POST to packages/uninstall endpoint
98+
curl -k -s -w "%{http_code}\n" -E "$cert_pem_file":"$cert_password" \
99+
-X POST \
100+
-H "Accept: text/turtle" \
101+
-H "Content-Type: application/x-www-form-urlencoded" \
102+
--data-urlencode "package-uri=${package_uri}" \
103+
"${final_url}"

http-tests/admin/packages/install-package-stylesheet.sh

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ purge_cache "$FRONTEND_VARNISH_SERVICE"
1010
# test package URI (SKOS package)
1111
package_uri="https://packages.linkeddatahub.com/skos/#this"
1212

13-
# install package via POST to packages/install endpoint
14-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
15-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
16-
-X POST \
17-
-H "Content-Type: application/x-www-form-urlencoded" \
18-
--data-urlencode "package-uri=$package_uri" \
19-
"${ADMIN_BASE_URL}packages/install" \
13+
# install package
14+
install-package.sh \
15+
-b "$END_USER_BASE_URL" \
16+
-f "$OWNER_CERT_FILE" \
17+
-p "$OWNER_CERT_PWD" \
18+
--package "$package_uri" \
2019
| grep -q "$STATUS_SEE_OTHER"
2120

2221
# the stylesheet is not available via URL right away. If we request it right away, Varnish will cache a 404 Not Found response for it

http-tests/admin/packages/install-uninstall-package-ontology.sh

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ package_ontology_uri="https://raw.githubusercontent.com/AtomGraph/LinkedDataHub-
1313
namespace_ontology_uri="${END_USER_BASE_URL}ns#"
1414

1515
# install package
16-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
17-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
18-
-X POST \
19-
-H "Content-Type: application/x-www-form-urlencoded" \
20-
--data-urlencode "package-uri=$package_uri" \
21-
"${ADMIN_BASE_URL}packages/install" \
16+
install-package.sh \
17+
-b "$END_USER_BASE_URL" \
18+
-f "$OWNER_CERT_FILE" \
19+
-p "$OWNER_CERT_PWD" \
20+
--package "$package_uri" \
2221
| grep -q "$STATUS_SEE_OTHER"
2322

2423
# verify owl:imports triple was added
@@ -35,12 +34,11 @@ curl -k -w "%{http_code}\n" -o /dev/null -s \
3534
| grep -qE "^($STATUS_OK|$STATUS_NOT_MODIFIED)$"
3635

3736
# uninstall package
38-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
39-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
40-
-X POST \
41-
-H "Content-Type: application/x-www-form-urlencoded" \
42-
--data-urlencode "package-uri=$package_uri" \
43-
"${ADMIN_BASE_URL}packages/uninstall" \
37+
uninstall-package.sh \
38+
-b "$END_USER_BASE_URL" \
39+
-f "$OWNER_CERT_FILE" \
40+
-p "$OWNER_CERT_PWD" \
41+
--package "$package_uri" \
4442
| grep -q "$STATUS_SEE_OTHER"
4543

4644
# verify owl:imports triple was removed

http-tests/admin/packages/install-uninstall-package-stylesheet.sh

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,11 @@ purge_cache "$FRONTEND_VARNISH_SERVICE"
1111
package_uri="https://packages.linkeddatahub.com/skos/#this"
1212

1313
# install package
14-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
15-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
16-
-X POST \
17-
-H "Content-Type: application/x-www-form-urlencoded" \
18-
--data-urlencode "package-uri=$package_uri" \
19-
"${ADMIN_BASE_URL}packages/install" \
14+
install-package.sh \
15+
-b "$END_USER_BASE_URL" \
16+
-f "$OWNER_CERT_FILE" \
17+
-p "$OWNER_CERT_PWD" \
18+
--package "$package_uri" \
2019
| grep -q "$STATUS_SEE_OTHER"
2120

2221
# verify package stylesheet was installed (should return 200)
@@ -28,12 +27,11 @@ curl -k -s "${END_USER_BASE_URL}static/xsl/layout.xsl" \
2827
| grep -q "com/linkeddatahub/packages/skos/layout.xsl"
2928

3029
# uninstall package
31-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
32-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
33-
-X POST \
34-
-H "Content-Type: application/x-www-form-urlencoded" \
35-
--data-urlencode "package-uri=$package_uri" \
36-
"${ADMIN_BASE_URL}packages/uninstall" \
30+
uninstall-package.sh \
31+
-b "$END_USER_BASE_URL" \
32+
-f "$OWNER_CERT_FILE" \
33+
-p "$OWNER_CERT_PWD" \
34+
--package "$package_uri" \
3735
| grep -q "$STATUS_SEE_OTHER"
3836

3937
# Wait for Tomcat's static resource cache to expire

http-tests/admin/packages/uninstall-package-stylesheet.sh

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,23 @@ purge_cache "$FRONTEND_VARNISH_SERVICE"
1111
package_uri="https://packages.linkeddatahub.com/skos/#this"
1212

1313
# first install the package
14-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
15-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
16-
-X POST \
17-
-H "Content-Type: application/x-www-form-urlencoded" \
18-
--data-urlencode "package-uri=$package_uri" \
19-
"${ADMIN_BASE_URL}packages/install" \
14+
install-package.sh \
15+
-b "$END_USER_BASE_URL" \
16+
-f "$OWNER_CERT_FILE" \
17+
-p "$OWNER_CERT_PWD" \
18+
--package "$package_uri" \
2019
| grep -q "$STATUS_SEE_OTHER"
2120

2221
# verify package stylesheet exists before uninstall (should return 200)
2322
curl -k -f -s -o /dev/null \
2423
"${END_USER_BASE_URL}static/com/linkeddatahub/packages/skos/layout.xsl"
2524

26-
# uninstall package via POST to packages/uninstall endpoint
27-
curl -k -w "%{http_code}\n" -o /dev/null -f -s \
28-
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
29-
-X POST \
30-
-H "Content-Type: application/x-www-form-urlencoded" \
31-
--data-urlencode "package-uri=$package_uri" \
32-
"${ADMIN_BASE_URL}packages/uninstall" \
25+
# uninstall package
26+
uninstall-package.sh \
27+
-b "$END_USER_BASE_URL" \
28+
-f "$OWNER_CERT_FILE" \
29+
-p "$OWNER_CERT_PWD" \
30+
--package "$package_uri" \
3331
| grep -q "$STATUS_SEE_OTHER"
3432

3533
# Wait for Tomcat's static resource cache to expire

0 commit comments

Comments
 (0)