@@ -103,54 +103,56 @@ type sshWorkspaceConfig struct {
103
103
Hosts []string
104
104
}
105
105
106
- func sshPrepareWorkspaceConfigs (ctx context.Context ,client * codersdk.Client ) (receive func () ([]sshWorkspaceConfig ,error )) {
107
- wcC := make (chan []sshWorkspaceConfig ,1 )
108
- errC := make (chan error ,1 )
109
- go func () {
110
- wc ,err := func () ([]sshWorkspaceConfig ,error ) {
111
- workspaces ,err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
112
- Owner :codersdk .Me ,
113
- })
106
+ func fetchWorkspaceConfigs (ctx context.Context ,client * codersdk.Client ) ([]sshWorkspaceConfig ,error ) {
107
+ workspaces ,err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
108
+ Owner :codersdk .Me ,
109
+ })
110
+ if err != nil {
111
+ return nil ,err
112
+ }
113
+
114
+ var errGroup errgroup.Group
115
+ workspaceConfigs := make ([]sshWorkspaceConfig ,len (workspaces ))
116
+ for i ,workspace := range workspaces {
117
+ i := i
118
+ workspace := workspace
119
+ errGroup .Go (func ()error {
120
+ resources ,err := client .TemplateVersionResources (ctx ,workspace .LatestBuild .TemplateVersionID )
114
121
if err != nil {
115
- return nil , err
122
+ return err
116
123
}
117
124
118
- var errGroup errgroup. Group
119
- workspaceConfigs := make ([] sshWorkspaceConfig , len ( workspaces ))
120
- for i , workspace := range workspaces {
121
- i := i
122
- workspace := workspace
123
- errGroup . Go ( func () error {
124
- resources , err := client . TemplateVersionResources ( ctx , workspace .LatestBuild . TemplateVersionID )
125
- if err != nil {
126
- return err
125
+ wc := sshWorkspaceConfig { Name : workspace . Name }
126
+ for _ , resource := range resources {
127
+ if resource . Transition != codersdk . WorkspaceTransitionStart {
128
+ continue
129
+ }
130
+ for _ , agent := range resource . Agents {
131
+ hostname := workspace .Name
132
+ if len ( resource . Agents ) > 1 {
133
+ hostname += "." + agent . Name
127
134
}
135
+ wc .Hosts = append (wc .Hosts ,hostname )
136
+ }
137
+ }
138
+ workspaceConfigs [i ]= wc
128
139
129
- wc := sshWorkspaceConfig {Name :workspace .Name }
130
- for _ ,resource := range resources {
131
- if resource .Transition != codersdk .WorkspaceTransitionStart {
132
- continue
133
- }
134
- for _ ,agent := range resource .Agents {
135
- hostname := workspace .Name
136
- if len (resource .Agents )> 1 {
137
- hostname += "." + agent .Name
138
- }
139
- wc .Hosts = append (wc .Hosts ,hostname )
140
- }
141
- }
142
- workspaceConfigs [i ]= wc
140
+ return nil
141
+ })
142
+ }
143
+ err = errGroup .Wait ()
144
+ if err != nil {
145
+ return nil ,err
146
+ }
143
147
144
- return nil
145
- })
146
- }
147
- err = errGroup .Wait ()
148
- if err != nil {
149
- return nil ,err
150
- }
148
+ return workspaceConfigs ,nil
149
+ }
151
150
152
- return workspaceConfigs ,nil
153
- }()
151
+ func sshPrepareWorkspaceConfigs (ctx context.Context ,client * codersdk.Client ) (receive func () ([]sshWorkspaceConfig ,error )) {
152
+ wcC := make (chan []sshWorkspaceConfig ,1 )
153
+ errC := make (chan error ,1 )
154
+ go func () {
155
+ wc ,err := fetchWorkspaceConfigs (ctx ,client )
154
156
wcC <- wc
155
157
errC <- err
156
158
}()