Skip to content

Commit

Permalink
Add refresh token to wave request [ci fast]
Browse files Browse the repository at this point in the history
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
  • Loading branch information
pditommaso committed Jan 19, 2023
1 parent 40d5673 commit 41510e8
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
Expand Up @@ -36,6 +36,11 @@ class SubmitContainerTokenRequest {
*/
String towerAccessToken

/**
* Tower refresh token
*/
String towerRefreshToken

/**
* Tower workspace id
*/
Expand Down
Expand Up @@ -150,6 +150,7 @@ class WaveClient {
SubmitContainerTokenResponse sendRequest(WaveAssets assets) {
final req = makeRequest(assets)
req.towerAccessToken = tower.accessToken
req.towerRefreshToken = tower.refreshToken
req.towerWorkspaceId = tower.workspaceId
req.towerEndpoint = tower.endpoint
return sendRequest(req)
Expand Down Expand Up @@ -180,6 +181,7 @@ class WaveClient {

// set the request access token
request.towerAccessToken = accessToken
request.towerRefreshToken = refreshToken

final body = JsonOutput.toJson(request)
final uri = URI.create("${endpoint}/container-token")
Expand Down
Expand Up @@ -30,6 +30,7 @@ import groovy.json.JsonOutput
import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j
import nextflow.Session
import nextflow.SysEnv
import nextflow.conda.CondaConfig
import nextflow.extension.FilesEx
import nextflow.file.FileHelper
Expand Down Expand Up @@ -665,6 +666,31 @@ class WaveClientTest extends Specification {

}

def 'should send request with tower access token and refresh token' () {
given:
SysEnv.push([TOWER_WORKFLOW_ID:'1234', TOWER_REFRESH_TOKEN: 'xyz', TOWER_ACCESS_TOKEN: 'foo'])
and:
def config = [wave:[:], tower:[endpoint: 'http://foo.com']]
def sess = Mock(Session) {getConfig() >> config }
and:
def wave = Spy(new WaveClient(sess))
def assets = Mock(WaveAssets)
def request = new SubmitContainerTokenRequest()
when:
wave.sendRequest(assets)
then:
1 * wave.makeRequest(assets) >> request
1 * wave.sendRequest(request) >> { List it ->
assert (it[0] == request)
assert (it[0] as SubmitContainerTokenRequest).towerAccessToken == 'foo'
assert (it[0] as SubmitContainerTokenRequest).towerRefreshToken == 'xyz'
assert (it[0] as SubmitContainerTokenRequest).towerEndpoint == 'http://foo.com'
}

cleanup:
SysEnv.pop()
}

// --== launch web server ==--
@Shared
def CONFIG_RESP = [
Expand Down

0 comments on commit 41510e8

Please sign in to comment.