Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit 37dfbee

Browse files
authored
Add orgid to wac envs create (#255)
Wac requests require orgid. Was removed from yaml
1 parent 192b49e commit 37dfbee

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

internal/cmd/ceapi.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,22 @@ func getImgs(ctx context.Context, client coder.Client, conf getImgsConf) ([]code
183183
}
184184

185185
func isMultiOrgMember(ctx context.Context, client coder.Client, email string) (bool, error) {
186+
orgs, err := getUserOrgs(ctx, client, email)
187+
if err != nil {
188+
return false, err
189+
}
190+
return len(orgs) > 1, nil
191+
}
192+
193+
func getUserOrgs(ctx context.Context, client coder.Client, email string) ([]coder.Organization, error) {
186194
u, err := client.UserByEmail(ctx, email)
187195
if err != nil {
188-
return false, xerrors.New("email not found")
196+
return nil, xerrors.New("email not found")
189197
}
190198

191199
orgs, err := client.Organizations(ctx)
192200
if err != nil {
193-
return false, err
201+
return nil, xerrors.New("no organizations found")
194202
}
195-
return len(lookupUserOrgs(u, orgs)) > 1, nil
203+
return lookupUserOrgs(u, orgs), nil
196204
}

internal/cmd/envs.go

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,37 @@ coder envs create-from-repo -f coder.yaml`,
288288
}
289289
}
290290

291-
multiOrgMember, err := isMultiOrgMember(ctx, client, coder.Me)
291+
orgs, err := getUserOrgs(ctx, client, coder.Me)
292292
if err != nil {
293293
return err
294294
}
295295

296+
multiOrgMember := len(orgs) > 1
296297
if multiOrgMember && org == "" {
297298
return xerrors.New("org is required for multi-org members")
298299
}
299300

301+
var userOrg *coder.Organization
302+
for i := range orgs {
303+
// Look for org by name
304+
if orgs[i].Name == org {
305+
userOrg = &orgs[i]
306+
break
307+
}
308+
// Or use default if the provided is blank
309+
if org == "" && orgs[i].Default {
310+
userOrg = &orgs[i]
311+
break
312+
}
313+
}
314+
315+
if userOrg == nil {
316+
if org != "" {
317+
return xerrors.Errorf("Unable to locate org '%s'", org)
318+
}
319+
return xerrors.Errorf("Unable to locate a default organization for the user")
320+
}
321+
300322
var rd io.Reader
301323
if filepath != "" {
302324
b, err := ioutil.ReadFile(filepath)
@@ -318,6 +340,7 @@ coder envs create-from-repo -f coder.yaml`,
318340
}
319341

320342
env, err := client.CreateEnvironment(ctx, coder.CreateEnvironmentRequest{
343+
OrgID: userOrg.ID,
321344
Template: tpl,
322345
})
323346
if err != nil {

0 commit comments

Comments
 (0)