6
6
"net"
7
7
"sync/atomic"
8
8
"testing"
9
- "time"
10
9
11
10
"github.com/gliderlabs/ssh"
11
+ "github.com/google/uuid"
12
12
"github.com/spf13/cobra"
13
13
"github.com/stretchr/testify/require"
14
14
gossh "golang.org/x/crypto/ssh"
@@ -24,34 +24,30 @@ import (
24
24
func TestGitSSH (t * testing.T ) {
25
25
t .Parallel ()
26
26
t .Run ("Dial" , func (t * testing.T ) {
27
- ctx , cancel := context .WithTimeout (context .Background (), time .Second * 5 )
28
- defer cancel ()
29
- instanceID := "instanceidentifier"
30
- certificates , metadataClient := coderdtest .NewAWSInstanceIdentity (t , instanceID )
31
- client := coderdtest .New (t , & coderdtest.Options {
32
- AWSInstanceIdentity : certificates ,
33
- })
27
+ client := coderdtest .New (t , nil )
34
28
user := coderdtest .CreateFirstUser (t , client )
35
29
36
30
// get user public key
37
- keypair , err := client .GitSSHKey (ctx , codersdk .Me )
31
+ keypair , err := client .GitSSHKey (context . Background () , codersdk .Me )
38
32
require .NoError (t , err )
39
33
publicKey , _ , _ , _ , err := gossh .ParseAuthorizedKey ([]byte (keypair .PublicKey ))
40
34
require .NoError (t , err )
41
35
42
36
// setup provisioner
37
+ agentToken := uuid .NewString ()
43
38
coderdtest .NewProvisionerDaemon (t , client )
44
39
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
45
- Parse : echo .ParseComplete ,
40
+ Parse : echo .ParseComplete ,
41
+ ProvisionDryRun : echo .ProvisionComplete ,
46
42
Provision : []* proto.Provision_Response {{
47
43
Type : & proto.Provision_Response_Complete {
48
44
Complete : & proto.Provision_Complete {
49
45
Resources : []* proto.Resource {{
50
46
Name : "somename" ,
51
47
Type : "someinstance" ,
52
48
Agents : []* proto.Agent {{
53
- Auth : & proto.Agent_InstanceId {
54
- InstanceId : instanceID ,
49
+ Auth : & proto.Agent_Token {
50
+ Token : agentToken ,
55
51
},
56
52
}},
57
53
}},
@@ -65,23 +61,20 @@ func TestGitSSH(t *testing.T) {
65
61
coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
66
62
67
63
// start workspace agent
68
- cmd , root := clitest .New (t , "agent" , "--auth " , "aws-instance-identity" , "--url" , client .URL .String ())
64
+ cmd , root := clitest .New (t , "agent" , "--token " , agentToken , "--url" , client .URL .String ())
69
65
agentClient := & * client
70
66
clitest .SetupConfig (t , agentClient , root )
71
67
ctx , cancelFunc := context .WithCancel (context .Background ())
72
68
defer cancelFunc ()
73
69
go func () {
74
- // A linting error occurs for weakly typing the context value here,
75
- // but it seems reasonable for a one-off test.
76
- // nolint
77
- ctx = context .WithValue (ctx , "aws-client" , metadataClient )
78
70
err := cmd .ExecuteContext (ctx )
79
71
require .NoError (t , err )
80
72
}()
73
+
81
74
coderdtest .AwaitWorkspaceAgents (t , client , workspace .LatestBuild .ID )
82
- resources , err := client .WorkspaceResourcesByBuild (ctx , workspace .LatestBuild .ID )
75
+ resources , err := client .WorkspaceResourcesByBuild (context . Background () , workspace .LatestBuild .ID )
83
76
require .NoError (t , err )
84
- dialer , err := client .DialWorkspaceAgent (ctx , resources [0 ].Agents [0 ].ID , nil , nil )
77
+ dialer , err := client .DialWorkspaceAgent (context . Background () , resources [0 ].Agents [0 ].ID , nil , nil )
85
78
require .NoError (t , err )
86
79
defer dialer .Close ()
87
80
_ , err = dialer .Ping ()
@@ -113,7 +106,7 @@ func TestGitSSH(t *testing.T) {
113
106
cmd , root = clitest .New (t , "gitssh" , "--global-config=" + string (cfgDir ), "--" , fmt .Sprintf ("-p%d" , addr .Port ), "-o" , "StrictHostKeyChecking=no" , "127.0.0.1" )
114
107
clitest .SetupConfig (t , agentClient , root )
115
108
116
- err = cmd .ExecuteContext (ctx )
109
+ err = cmd .ExecuteContext (context . Background () )
117
110
require .NoError (t , err )
118
111
require .EqualValues (t , 1 , inc )
119
112
})
0 commit comments