@@ -14,32 +14,25 @@ import (
14
14
"github.com/coder/coder/v2/coderd/tracing"
15
15
"github.com/coder/coder/v2/codersdk"
16
16
"github.com/coder/coder/v2/cryptorand"
17
- "github.com/coder/coder/v2/scaletest/harness"
18
17
"github.com/coder/coder/v2/scaletest/loadtestutil"
19
18
)
20
19
21
20
type Runner struct {
22
21
client * codersdk.Client
23
22
cfg Config
24
23
25
- userID uuid.UUID
26
24
sessionToken string
27
25
user codersdk.User
28
26
}
29
27
30
- var (
31
- _ harness.Runnable = & Runner {}
32
- _ harness.Cleanable = & Runner {}
33
- )
34
-
35
28
func NewRunner (client * codersdk.Client ,cfg Config )* Runner {
36
29
return & Runner {
37
30
client :client ,
38
31
cfg :cfg ,
39
32
}
40
33
}
41
34
42
- func (r * Runner )Run (ctx context.Context ,id string ,logs io.Writer )error {
35
+ func (r * Runner )RunReturningUser (ctx context.Context ,id string ,logs io.Writer )(codersdk. User , error ) {
43
36
ctx ,span := tracing .StartSpan (ctx )
44
37
defer span .End ()
45
38
@@ -51,7 +44,7 @@ func (r *Runner) Run(ctx context.Context, id string, logs io.Writer) error {
51
44
if r .cfg .Username == "" || r .cfg .Email == "" {
52
45
genUsername ,genEmail ,err := loadtestutil .GenerateUserIdentifier (id )
53
46
if err != nil {
54
- return xerrors .Errorf ("generate user identifier: %w" ,err )
47
+ return codersdk. User {}, xerrors .Errorf ("generate user identifier: %w" ,err )
55
48
}
56
49
if r .cfg .Username == "" {
57
50
r .cfg .Username = genUsername
@@ -64,7 +57,7 @@ func (r *Runner) Run(ctx context.Context, id string, logs io.Writer) error {
64
57
_ ,_ = fmt .Fprintln (logs ,"Generating user password..." )
65
58
password ,err := cryptorand .String (16 )
66
59
if err != nil {
67
- return xerrors .Errorf ("generate random password for user: %w" ,err )
60
+ return codersdk. User {}, xerrors .Errorf ("generate random password for user: %w" ,err )
68
61
}
69
62
70
63
_ ,_ = fmt .Fprintln (logs ,"Creating user:" )
@@ -75,9 +68,8 @@ func (r *Runner) Run(ctx context.Context, id string, logs io.Writer) error {
75
68
Password :password ,
76
69
})
77
70
if err != nil {
78
- return xerrors .Errorf ("create user: %w" ,err )
71
+ return codersdk. User {}, xerrors .Errorf ("create user: %w" ,err )
79
72
}
80
- r .userID = user .ID
81
73
r .user = user
82
74
83
75
_ ,_ = fmt .Fprintln (logs ,"\n Logging in as new user..." )
@@ -87,7 +79,7 @@ func (r *Runner) Run(ctx context.Context, id string, logs io.Writer) error {
87
79
Password :password ,
88
80
})
89
81
if err != nil {
90
- return xerrors .Errorf ("login as new user: %w" ,err )
82
+ return codersdk. User {}, xerrors .Errorf ("login as new user: %w" ,err )
91
83
}
92
84
r .sessionToken = loginRes .SessionToken
93
85
@@ -96,14 +88,14 @@ func (r *Runner) Run(ctx context.Context, id string, logs io.Writer) error {
96
88
_ ,_ = fmt .Fprintf (logs ,"\t Email: %s\n " ,user .Email )
97
89
_ ,_ = fmt .Fprintf (logs ,"\t Password: ****************\n " )
98
90
99
- return nil
91
+ return user , nil
100
92
}
101
93
102
94
func (r * Runner )Cleanup (ctx context.Context ,_ string ,logs io.Writer )error {
103
- if r .userID != uuid .Nil {
104
- err := r .client .DeleteUser (ctx ,r .userID )
95
+ if r .user . ID != uuid .Nil {
96
+ err := r .client .DeleteUser (ctx ,r .user . ID )
105
97
if err != nil {
106
- _ ,_ = fmt .Fprintf (logs ,"failed to delete user %q: %v\n " ,r .userID .String (),err )
98
+ _ ,_ = fmt .Fprintf (logs ,"failed to delete user %q: %v\n " ,r .user . ID .String (),err )
107
99
return xerrors .Errorf ("delete user: %w" ,err )
108
100
}
109
101
}
@@ -113,7 +105,3 @@ func (r *Runner) Cleanup(ctx context.Context, _ string, logs io.Writer) error {
113
105
func (r * Runner )SessionToken ()string {
114
106
return r .sessionToken
115
107
}
116
-
117
- func (r * Runner )User () codersdk.User {
118
- return r .user
119
- }