From 87f51dc4ab8ca3895670a6198232342e90c8dbfb Mon Sep 17 00:00:00 2001 From: Lior Baber Date: Thu, 2 Nov 2023 13:24:39 +1100 Subject: [PATCH 1/6] make download cli respect header command if one exists --- .../kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index 57705bec..73dfb204 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -101,11 +101,19 @@ class CoderCLIManager @JvmOverloads constructor( fun downloadCLI(): Boolean { val etag = getBinaryETag() val conn = remoteBinaryURL.openConnection() as HttpURLConnection + if (settings.headerCommand.isNotBlank()){ +// get headers + val headersFromHeaderCommand =CoderRestClient.getHeaders(deploymentURL,settings.headerCommand) + for ((key, value) in headersFromHeaderCommand) { + conn.setRequestProperty(key, value) + } + } if (etag != null) { logger.info("Found existing binary at $localBinaryPath; calculated hash as $etag") conn.setRequestProperty("If-None-Match", "\"$etag\"") } conn.setRequestProperty("Accept-Encoding", "gzip") + if (conn is HttpsURLConnection) { conn.sslSocketFactory = coderSocketFactory(settings) conn.hostnameVerifier = CoderHostnameVerifier(settings.tlsAlternateHostname) @@ -172,6 +180,8 @@ class CoderCLIManager @JvmOverloads constructor( */ fun login(token: String): String { logger.info("Storing CLI credentials in $coderConfigPath") + logger.info("Storing CLI credentials in $coderConfigPath") + return exec( "login", deploymentURL.toString(), @@ -179,6 +189,8 @@ class CoderCLIManager @JvmOverloads constructor( token, "--global-config", coderConfigPath.toString(), + "--header-command", + settings.headerCommand ) } @@ -364,6 +376,7 @@ class CoderCLIManager @JvmOverloads constructor( private fun exec(vararg args: String): String { val stdout = ProcessExecutor() .command(localBinaryPath.toString(), *args) + .environment("CODER_HEADER_COMMAND",settings.headerCommand) .exitValues(0) .readOutput(true) .execute() From a09271ce836dc6b3a65815b30691d26a571172ed Mon Sep 17 00:00:00 2001 From: Lior Baber Date: Thu, 2 Nov 2023 15:37:13 +1100 Subject: [PATCH 2/6] minor fix --- src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index 73dfb204..49e81160 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -180,8 +180,6 @@ class CoderCLIManager @JvmOverloads constructor( */ fun login(token: String): String { logger.info("Storing CLI credentials in $coderConfigPath") - logger.info("Storing CLI credentials in $coderConfigPath") - return exec( "login", deploymentURL.toString(), From cb0d6b3b02bd99e0ac36d9d3518705a423c32043 Mon Sep 17 00:00:00 2001 From: Lior Baber Date: Thu, 2 Nov 2023 15:38:17 +1100 Subject: [PATCH 3/6] formatting --- src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index 49e81160..247686cb 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -102,7 +102,6 @@ class CoderCLIManager @JvmOverloads constructor( val etag = getBinaryETag() val conn = remoteBinaryURL.openConnection() as HttpURLConnection if (settings.headerCommand.isNotBlank()){ -// get headers val headersFromHeaderCommand =CoderRestClient.getHeaders(deploymentURL,settings.headerCommand) for ((key, value) in headersFromHeaderCommand) { conn.setRequestProperty(key, value) @@ -113,7 +112,6 @@ class CoderCLIManager @JvmOverloads constructor( conn.setRequestProperty("If-None-Match", "\"$etag\"") } conn.setRequestProperty("Accept-Encoding", "gzip") - if (conn is HttpsURLConnection) { conn.sslSocketFactory = coderSocketFactory(settings) conn.hostnameVerifier = CoderHostnameVerifier(settings.tlsAlternateHostname) From 330d681503780f4de4108a2d4c7862d35235ddb1 Mon Sep 17 00:00:00 2001 From: Lior Baber Date: Thu, 2 Nov 2023 18:58:20 +1100 Subject: [PATCH 4/6] remove --header-command argument --- src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index 247686cb..f7139a1a 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -184,9 +184,7 @@ class CoderCLIManager @JvmOverloads constructor( "--token", token, "--global-config", - coderConfigPath.toString(), - "--header-command", - settings.headerCommand + coderConfigPath.toString() ) } From c86759f2e4a8c2cab7679c3e30c903eaecb32f32 Mon Sep 17 00:00:00 2001 From: Lior Baber Date: Thu, 2 Nov 2023 18:58:47 +1100 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: Spike Curtis --- src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index f7139a1a..2f737e73 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -102,7 +102,7 @@ class CoderCLIManager @JvmOverloads constructor( val etag = getBinaryETag() val conn = remoteBinaryURL.openConnection() as HttpURLConnection if (settings.headerCommand.isNotBlank()){ - val headersFromHeaderCommand =CoderRestClient.getHeaders(deploymentURL,settings.headerCommand) + val headersFromHeaderCommand =CoderRestClient.getHeaders(deploymentURL, settings.headerCommand) for ((key, value) in headersFromHeaderCommand) { conn.setRequestProperty(key, value) } @@ -370,7 +370,7 @@ class CoderCLIManager @JvmOverloads constructor( private fun exec(vararg args: String): String { val stdout = ProcessExecutor() .command(localBinaryPath.toString(), *args) - .environment("CODER_HEADER_COMMAND",settings.headerCommand) + .environment("CODER_HEADER_COMMAND", settings.headerCommand) .exitValues(0) .readOutput(true) .execute() From c3c595191ad16d25a8a5bb70f2f0ea01e5b30caf Mon Sep 17 00:00:00 2001 From: Asher Date: Thu, 2 Nov 2023 03:41:45 -0800 Subject: [PATCH 6/6] Minor formatting --- src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt index 2f737e73..9dd02f3b 100644 --- a/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt @@ -101,8 +101,8 @@ class CoderCLIManager @JvmOverloads constructor( fun downloadCLI(): Boolean { val etag = getBinaryETag() val conn = remoteBinaryURL.openConnection() as HttpURLConnection - if (settings.headerCommand.isNotBlank()){ - val headersFromHeaderCommand =CoderRestClient.getHeaders(deploymentURL, settings.headerCommand) + if (settings.headerCommand.isNotBlank()) { + val headersFromHeaderCommand = CoderRestClient.getHeaders(deploymentURL, settings.headerCommand) for ((key, value) in headersFromHeaderCommand) { conn.setRequestProperty(key, value) } @@ -184,7 +184,7 @@ class CoderCLIManager @JvmOverloads constructor( "--token", token, "--global-config", - coderConfigPath.toString() + coderConfigPath.toString(), ) }