HDDS-1925. ozonesecure acceptance test broken by HTTP auth requirement (#1248)
This commit is contained in:
parent
8f9245bc2d
commit
ab6a5c9d07
|
@ -33,7 +33,7 @@ execute_robot_test scm security
|
||||||
|
|
||||||
execute_robot_test scm ozonefs/ozonefs.robot
|
execute_robot_test scm ozonefs/ozonefs.robot
|
||||||
|
|
||||||
execute_robot_test scm s3
|
execute_robot_test s3g s3
|
||||||
|
|
||||||
stop_docker_env
|
stop_docker_env
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,20 @@ mkdir -p "$RESULT_DIR"
|
||||||
#Should be writeable from the docker containers where user is different.
|
#Should be writeable from the docker containers where user is different.
|
||||||
chmod ogu+w "$RESULT_DIR"
|
chmod ogu+w "$RESULT_DIR"
|
||||||
|
|
||||||
|
## @description print the number of datanodes up
|
||||||
|
## @param the docker-compose file
|
||||||
|
count_datanodes() {
|
||||||
|
local compose_file=$1
|
||||||
|
|
||||||
|
local jmx_url='http://scm:9876/jmx?qry=Hadoop:service=SCMNodeManager,name=SCMNodeManagerInfo'
|
||||||
|
if [[ "${SECURITY_ENABLED}" == 'true' ]]; then
|
||||||
|
docker-compose -f "${compose_file}" exec -T scm bash -c "kinit -k HTTP/scm@EXAMPLE.COM -t /etc/security/keytabs/HTTP.keytab && curl --negotiate -u : -s '${jmx_url}'"
|
||||||
|
else
|
||||||
|
docker-compose -f "${compose_file}" exec -T scm curl -s "${jmx_url}"
|
||||||
|
fi \
|
||||||
|
| jq -r '.beans[0].NodeCount[] | select(.key=="HEALTHY") | .value'
|
||||||
|
}
|
||||||
|
|
||||||
## @description wait until datanodes are up (or 30 seconds)
|
## @description wait until datanodes are up (or 30 seconds)
|
||||||
## @param the docker-compose file
|
## @param the docker-compose file
|
||||||
## @param number of datanodes to wait for (default: 3)
|
## @param number of datanodes to wait for (default: 3)
|
||||||
|
@ -43,7 +57,7 @@ wait_for_datanodes(){
|
||||||
|
|
||||||
#This line checks the number of HEALTHY datanodes registered in scm over the
|
#This line checks the number of HEALTHY datanodes registered in scm over the
|
||||||
# jmx HTTP servlet
|
# jmx HTTP servlet
|
||||||
datanodes=$(docker-compose -f "${compose_file}" exec -T scm curl -s 'http://localhost:9876/jmx?qry=Hadoop:service=SCMNodeManager,name=SCMNodeManagerInfo' | jq -r '.beans[0].NodeCount[] | select(.key=="HEALTHY") | .value')
|
datanodes=$(count_datanodes "${compose_file}")
|
||||||
if [[ "$datanodes" ]]; then
|
if [[ "$datanodes" ]]; then
|
||||||
if [[ ${datanodes} -ge ${datanode_count} ]]; then
|
if [[ ${datanodes} -ge ${datanode_count} ]]; then
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,8 @@ ${DATANODE_HOST} datanode
|
||||||
*** Test Cases ***
|
*** Test Cases ***
|
||||||
|
|
||||||
Check webui static resources
|
Check webui static resources
|
||||||
${result} = Execute curl -s -I http://scm:9876/static/bootstrap-3.3.7/js/bootstrap.min.js
|
Run Keyword if '${SECURITY_ENABLED}' == 'true' Kinit HTTP user
|
||||||
Should contain ${result} 200
|
${result} = Execute curl --negotiate -u : -s -I http://scm:9876/static/bootstrap-3.3.7/js/bootstrap.min.js
|
||||||
${result} = Execute curl -s -I http://om:9874/static/bootstrap-3.3.7/js/bootstrap.min.js
|
|
||||||
Should contain ${result} 200
|
Should contain ${result} 200
|
||||||
|
|
||||||
Start freon testing
|
Start freon testing
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
Documentation Test ozone shell CLI usage
|
Documentation Test ozone shell CLI usage
|
||||||
Library OperatingSystem
|
Library OperatingSystem
|
||||||
Resource ../commonlib.robot
|
Resource ../commonlib.robot
|
||||||
|
Test Setup Run Keyword if '${SECURITY_ENABLED}' == 'true' Kinit test user testuser testuser.keytab
|
||||||
Test Timeout 2 minute
|
Test Timeout 2 minute
|
||||||
|
|
||||||
*** Variables ***
|
*** Variables ***
|
||||||
|
|
|
@ -54,8 +54,12 @@ Install aws cli
|
||||||
${rc} ${output} = Run And Return Rc And Output yum --help
|
${rc} ${output} = Run And Return Rc And Output yum --help
|
||||||
Run Keyword if '${rc}' == '0' Install aws cli s3 centos
|
Run Keyword if '${rc}' == '0' Install aws cli s3 centos
|
||||||
|
|
||||||
|
Kinit HTTP user
|
||||||
|
${hostname} = Execute hostname
|
||||||
|
Wait Until Keyword Succeeds 2min 10sec Execute kinit -k HTTP/${hostname}@EXAMPLE.COM -t /etc/security/keytabs/HTTP.keytab
|
||||||
|
|
||||||
Kinit test user
|
Kinit test user
|
||||||
[arguments] ${user} ${keytab}
|
[arguments] ${user} ${keytab}
|
||||||
${hostname} = Execute hostname
|
${hostname} = Execute hostname
|
||||||
Set Suite Variable ${TEST_USER} ${user}/${hostname}@EXAMPLE.COM
|
Set Suite Variable ${TEST_USER} ${user}/${hostname}@EXAMPLE.COM
|
||||||
Wait Until Keyword Succeeds 2min 10sec Execute kinit -k ${user}/${hostname}@EXAMPLE.COM -t /etc/security/keytabs/${keytab}
|
Wait Until Keyword Succeeds 2min 10sec Execute kinit -k ${user}/${hostname}@EXAMPLE.COM -t /etc/security/keytabs/${keytab}
|
||||||
|
|
|
@ -49,6 +49,7 @@ Setup v2 headers
|
||||||
Set Environment Variable AWS_SECRET_ACCESS_KEY ANYKEY
|
Set Environment Variable AWS_SECRET_ACCESS_KEY ANYKEY
|
||||||
|
|
||||||
Setup v4 headers
|
Setup v4 headers
|
||||||
|
Run Keyword if '${SECURITY_ENABLED}' == 'true' Kinit test user testuser testuser.keytab
|
||||||
${result} = Execute ozone s3 getsecret
|
${result} = Execute ozone s3 getsecret
|
||||||
${accessKey} = Get Regexp Matches ${result} (?<=awsAccessKey=).*
|
${accessKey} = Get Regexp Matches ${result} (?<=awsAccessKey=).*
|
||||||
${accessKey} = Get Variable Value ${accessKey} sdsdasaasdasd
|
${accessKey} = Get Variable Value ${accessKey} sdsdasaasdasd
|
||||||
|
|
|
@ -27,8 +27,9 @@ ${BUCKET} generated
|
||||||
|
|
||||||
*** Test Cases ***
|
*** Test Cases ***
|
||||||
|
|
||||||
File upload and directory list
|
S3 Gateway Web UI
|
||||||
${result} = Execute curl -v ${ENDPOINT_URL}
|
Run Keyword if '${SECURITY_ENABLED}' == 'true' Kinit HTTP user
|
||||||
|
${result} = Execute curl --negotiate -u : -v ${ENDPOINT_URL}
|
||||||
Should contain ${result} HTTP/1.1 307 Temporary Redirect
|
Should contain ${result} HTTP/1.1 307 Temporary Redirect
|
||||||
${result} = Execute curl -v ${ENDPOINT_URL}/static/
|
${result} = Execute curl --negotiate -u : -v ${ENDPOINT_URL}/static/index.html
|
||||||
Should contain ${result} Apache Hadoop Ozone S3
|
Should contain ${result} Apache Hadoop Ozone S3
|
||||||
|
|
Loading…
Reference in New Issue