diff --git a/build.gradle b/build.gradle index d26458a..3f79cb3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ plugins { id 'java-library' - id 'io.freefair.lombok' version '8.10.2' + id 'io.freefair.lombok' version '8.14.4' id 'jacoco' - id 'org.sonarqube' version '5.1.0.4882' + id 'org.sonarqube' version '6.3.1.5724' id 'maven-publish' } @@ -21,10 +21,10 @@ repositories { mavenLocal() mavenCentral() maven { - url 'https://docker-regis-adm.iex.ec/repository/maven-public/' + url = 'https://docker-regis-adm.iex.ec/repository/maven-public/' credentials { - username nexusUser - password nexusPassword + username = nexusUser + password = nexusPassword } } } @@ -116,8 +116,8 @@ publishing { repositories { maven { credentials { - username nexusUser - password nexusPassword + username = nexusUser + password = nexusPassword } url = project.hasProperty('nexusUrl') ? nexusUrl : '' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df97d72..d4081da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/test/java/com/iexec/commons/containers/client/DockerClientInstanceTests.java b/src/test/java/com/iexec/commons/containers/client/DockerClientInstanceTests.java index 7430c5f..08bcd21 100644 --- a/src/test/java/com/iexec/commons/containers/client/DockerClientInstanceTests.java +++ b/src/test/java/com/iexec/commons/containers/client/DockerClientInstanceTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 IEXEC BLOCKCHAIN TECH + * Copyright 2023-2026 IEXEC BLOCKCHAIN TECH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,13 +21,11 @@ import com.github.dockerjava.api.command.LogContainerCmd; import com.github.dockerjava.api.command.PullImageCmd; import com.github.dockerjava.api.command.PullImageResultCallback; -import com.github.dockerjava.api.exception.DockerException; import com.iexec.commons.containers.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; @@ -68,7 +66,6 @@ class DockerClientInstanceTests extends AbstractDockerTests { private static final String BLABLA_LATEST = "blabla:latest"; private static final String DOCKERHUB_USERNAME_ENV_NAME = "DOCKER_IO_USER"; private static final String DOCKERHUB_PASSWORD_ENV_NAME = "DOCKER_IO_PASSWORD"; - private static final String PRIVATE_IMAGE_NAME = "iexechub/private-image:alpine-3.13"; private static final List usedRandomNames = new ArrayList<>(); private static final List usedImages = List.of( @@ -127,19 +124,6 @@ void shouldGetAuthenticatedClientWithDockerIoRegistry() { } //endregion - /** - * This test is temporarily disabled because of this error: - * toomanyrequests: too many failed login attempts for - * username or IP address. - */ - @Test - @Disabled("toomanyrequests: too many failed login attempts for username or IP address") - void shouldFailToAuthenticateClientToRegistry() { - final DockerException e = assertThrows(DockerException.class, () -> DockerClientFactory - .getDockerClientInstance(DockerClientInstance.DEFAULT_DOCKER_REGISTRY, "badUsername", "badPassword")); - assertThat(e.getHttpStatus()).isEqualTo(401); - } - //region isImagePresent @Test void shouldFindImagePresent() { @@ -234,26 +218,6 @@ void shouldNotPullImageSinceInterruptedException(CapturedOutput stdout) throws I dockerClientInstance.pullImage(ALPINE_LATEST); assertThat(stdout.getOut()).contains("Docker pull command was interrupted"); } - - /** - * Try to pull a private image from iexechub, require valid login and permissions. - * The test will fail if Docker Hub credentials are missing or invalid. - */ - @Test - void shouldPullPrivateImage() { - final String username = getEnvValue(DOCKERHUB_USERNAME_ENV_NAME); - final String password = getEnvValue(DOCKERHUB_PASSWORD_ENV_NAME); - // Get an authenticated docker client - final DockerClientInstance authClientInstance = - new DockerClientInstance(DockerClientInstance.DEFAULT_DOCKER_REGISTRY, - username, password); - // clean to avoid previous tests collisions - authClientInstance.removeImage(PRIVATE_IMAGE_NAME); - // pull image and check - assertThat(authClientInstance.pullImage(PRIVATE_IMAGE_NAME)).isTrue(); - // clean - authClientInstance.removeImage(PRIVATE_IMAGE_NAME); - } //endregion //region getImageId