diff --git a/cmd/osbuild-koji/main.go b/cmd/osbuild-koji/main.go index fb3c0728a..42da02c5d 100644 --- a/cmd/osbuild-koji/main.go +++ b/cmd/osbuild-koji/main.go @@ -8,7 +8,6 @@ import ( "time" "github.com/google/uuid" - "github.com/hashicorp/go-retryablehttp" "github.com/osbuild/osbuild-composer/internal/rpmmd" "github.com/osbuild/osbuild-composer/internal/upload/koji" "github.com/sirupsen/logrus" @@ -42,7 +41,7 @@ func main() { } defer file.Close() - transport := &retryablehttp.RoundTripper{} + transport := koji.CreateRetryableTransport() k, err := koji.NewFromPlain(server, "osbuild", "osbuildpass", transport) if err != nil { println(err.Error()) diff --git a/internal/upload/koji/koji.go b/internal/upload/koji/koji.go index efcde76cb..084544e7a 100644 --- a/internal/upload/koji/koji.go +++ b/internal/upload/koji/koji.go @@ -162,7 +162,7 @@ func NewFromPlain(server, user, password string, transport http.RoundTripper) (* // The API doesn't require sessionID, sessionKey and callnum yet, // so there's no need to use the custom Koji RoundTripper, // let's just use the one that the called passed in. - rhTransport := &rh.RoundTripper{Client: rh.NewClient()} + rhTransport := CreateRetryableTransport() loginClient, err := xmlrpc.NewClient(server, rhTransport) if err != nil { return nil, err @@ -443,7 +443,7 @@ func GSSAPICredentialsFromEnv() (*GSSAPICredentials, error) { func CreateKojiTransport(relaxTimeout uint) http.RoundTripper { // Koji for some reason needs TLS renegotiation enabled. // Clone the default http rt and enable renegotiation. - rt := &rh.RoundTripper{Client: rh.NewClient()} + rt := CreateRetryableTransport() transport := rt.Client.HTTPClient.Transport.(*http.Transport) @@ -487,3 +487,9 @@ func createCustomRetryableClient() *rh.Client { client.CheckRetry = customCheckRetry return client } + +func CreateRetryableTransport() *rh.RoundTripper { + rt := rh.RoundTripper{} + rt.Client = createCustomRetryableClient() + return &rt +}