Skip to content

Commit

Permalink
dataset-import: Add options for timeout and thread count (#733)
Browse files Browse the repository at this point in the history
  • Loading branch information
pruivo authored Mar 11, 2024
1 parent 409494f commit 1cc5d7d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
4 changes: 2 additions & 2 deletions .github/actions/keycloak-create-dataset/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ runs:
shell: bash
run: |
./dataset-import.sh -a clear-status-completed -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
./dataset-import.sh -a create-realms -r ${{ inputs.realms }} -c ${{ inputs.clients }} -u ${{ inputs.users }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
./dataset-import.sh -a create-realms -r ${{ inputs.realms }} -c ${{ inputs.clients }} -u ${{ inputs.users }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset -C ${{ inputs.maxWaitEntityCreation }} -T 30
./dataset-import.sh -a status-completed -t ${{ inputs.maxWaitEntityCreation }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
working-directory: dataset

Expand All @@ -48,6 +48,6 @@ runs:
shell: bash
run: |
./dataset-import.sh -a clear-status-completed -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
./dataset-import.sh -a create-clients -c ${{ inputs.clientsPerRealm }} -n ${{ inputs.realmNameForClients }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
./dataset-import.sh -a create-clients -c ${{ inputs.clientsPerRealm }} -n ${{ inputs.realmNameForClients }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset -C ${{ inputs.maxWaitEntityCreation }} -T 30
./dataset-import.sh -a status-completed -t ${{ inputs.maxWaitEntityCreation }} -l ${{ env.KEYCLOAK_URL }}/realms/master/dataset
working-directory: dataset
22 changes: 17 additions & 5 deletions dataset/dataset-import.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
set -e
set -o pipefail

if [[ "$RUNNER_DEBUG" == "1" ]]; then
set -x
fi

### DATASET PROVIDER - KEYCLOAK REST API SERVICE ###

set_environment_variables () {
Expand All @@ -19,8 +23,10 @@ set_environment_variables () {
fi
REALM_PREFIX="realm"
STATUS_TIMEOUT="120"
CREATE_TIMEOUT="3600"
THREADS="-1"

while getopts ":a:r:n:c:u:e:o:i:p:l:t:" OPT
while getopts ":a:r:n:c:u:e:o:i:p:l:t:C:T:" OPT
do
case $OPT in
a)
Expand Down Expand Up @@ -56,6 +62,12 @@ set_environment_variables () {
t)
STATUS_TIMEOUT=$OPTARG
;;
C)
CREATE_TIMEOUT=$OPTARG
;;
T)
THREADS=$OPTARG
;;
?)
echo "Invalid option: $OPT, read the usage carefully -> "
help
Expand All @@ -66,12 +78,12 @@ set_environment_variables () {

create_realms () {
echo "Creating $1 realm/s with $2 client/s and $3 user/s with $4 password hash iterations."
execute_command "create-realms?count=$1&clients-per-realm=$2&users-per-realm=$3&password-hash-iterations=$4"
execute_command "create-realms?count=$1&clients-per-realm=$2&users-per-realm=$3&password-hash-iterations=$4&task-timeout=$5&threads-count=$6"
}

create_clients () {
echo "Creating $1 client/s in realm $2"
execute_command "create-clients?count=$1&realm-name=$2"
execute_command "create-clients?count=$1&realm-name=$2&task-timeout=$3&threads-count=$4"
}

create_users () {
Expand Down Expand Up @@ -181,11 +193,11 @@ main () {
echo "Action: [$ACTION] "
case "$ACTION" in
create-realms)
create_realms $REALM_COUNT $CLIENTS_COUNT $USERS_COUNT $HASH_ITERATIONS
create_realms $REALM_COUNT $CLIENTS_COUNT $USERS_COUNT $HASH_ITERATIONS $CREATE_TIMEOUT $THREADS
exit 0
;;
create-clients)
create_clients $CLIENTS_COUNT $REALM_NAME
create_clients $CLIENTS_COUNT $REALM_NAME $CREATE_TIMEOUT $THREADS
exit 0
;;
create-users)
Expand Down
1 change: 1 addition & 0 deletions provision/keycloak-tasks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.task

0 comments on commit 1cc5d7d

Please sign in to comment.