Skip to content

Commit 06c1d1f

Browse files
committed
v0.1.3 misc fixes
1 parent 021bf29 commit 06c1d1f

File tree

11 files changed

+351
-81
lines changed

11 files changed

+351
-81
lines changed

api/openapi.gen.go

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lcl/clean.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ func (c LclClean) run(ctx context.Context, drv *ui.Driver) error {
5555

5656
cmd := &trust.Clean{
5757
Anc: c.anc,
58-
OrgSlug: orgAPID,
59-
RealmSlug: realmAPID,
58+
OrgAPID: orgAPID,
59+
RealmAPID: realmAPID,
6060
}
6161

6262
err = cmd.Perform(ctx, drv)

service/env.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/anchordotdev/cli/auth"
1515
"github.com/anchordotdev/cli/clipboard"
1616
"github.com/anchordotdev/cli/component"
17+
componentmodels "github.com/anchordotdev/cli/component/models"
1718
"github.com/anchordotdev/cli/service/models"
1819
"github.com/anchordotdev/cli/ui"
1920
)
@@ -273,7 +274,14 @@ func (c *Env) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (str
273274
return c.OrgAPID, nil
274275
}
275276
if cfg.Org.APID != "" {
276-
return cfg.Org.APID, nil
277+
drv.Activate(ctx, &componentmodels.ConfigVia{
278+
Config: cfg,
279+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
280+
Flag: "--org",
281+
Singular: "organization",
282+
})
283+
c.OrgAPID = cfg.Org.APID
284+
return c.OrgAPID, nil
277285
}
278286

279287
selector := &component.Selector[api.Organization]{
@@ -297,7 +305,14 @@ func (c *Env) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, or
297305
return c.RealmAPID, nil
298306
}
299307
if cfg.Realm.APID != "" {
300-
return cfg.Realm.APID, nil
308+
drv.Activate(ctx, &componentmodels.ConfigVia{
309+
Config: cfg,
310+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
311+
Flag: "--realm",
312+
Singular: "realm",
313+
})
314+
c.RealmAPID = cfg.Realm.APID
315+
return c.RealmAPID, nil
301316
}
302317

303318
selector := &component.Selector[api.Realm]{
@@ -321,7 +336,14 @@ func (c *Env) serviceAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver,
321336
return c.ServiceAPID, nil
322337
}
323338
if cfg.Service.APID != "" {
324-
return cfg.Service.APID, nil
339+
drv.Activate(ctx, &componentmodels.ConfigVia{
340+
Config: cfg,
341+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Service.APID },
342+
Flag: "--service",
343+
Singular: "service",
344+
})
345+
c.ServiceAPID = cfg.Service.APID
346+
return c.ServiceAPID, nil
325347
}
326348

327349
selector := &component.Selector[api.Service]{

trust/audit.go

Lines changed: 80 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ package trust
22

33
import (
44
"context"
5+
"fmt"
56

67
"github.com/spf13/cobra"
78

89
"github.com/anchordotdev/cli"
910
"github.com/anchordotdev/cli/api"
1011
"github.com/anchordotdev/cli/auth"
12+
"github.com/anchordotdev/cli/component"
13+
componentmodels "github.com/anchordotdev/cli/component/models"
1114
"github.com/anchordotdev/cli/trust/models"
1215
"github.com/anchordotdev/cli/truststore"
1316
truststoremodels "github.com/anchordotdev/cli/truststore/models"
@@ -25,7 +28,9 @@ var CmdTrustAudit = cli.NewCmd[Audit](CmdTrust, "audit", func(cmd *cobra.Command
2528
})
2629

2730
type Audit struct {
28-
anc *api.Session
31+
Anc *api.Session
32+
33+
OrgAPID, RealmAPID string
2934
}
3035

3136
func (a Audit) UI() cli.UI {
@@ -35,27 +40,34 @@ func (a Audit) UI() cli.UI {
3540
}
3641

3742
func (c *Audit) RunTUI(ctx context.Context, drv *ui.Driver) error {
43+
cfg := cli.ConfigFromContext(ctx)
44+
3845
var err error
3946
cmd := &auth.Client{
40-
Anc: c.anc,
47+
Anc: c.Anc,
4148
Source: "lclhost",
4249
}
43-
c.anc, err = cmd.Perform(ctx, drv)
50+
c.Anc, err = cmd.Perform(ctx, drv)
4451
if err != nil {
4552
return err
4653
}
4754

4855
drv.Activate(ctx, models.TrustAuditHeader)
4956
drv.Activate(ctx, models.TrustAuditHint)
5057

51-
drv.Activate(ctx, &truststoremodels.TrustStoreAudit{})
58+
orgAPID, err := c.orgAPID(ctx, cfg, drv)
59+
if err != nil {
60+
return err
61+
}
5262

53-
org, realm, err := fetchOrgAndRealm(ctx, c.anc)
63+
realmAPID, err := c.realmAPID(ctx, cfg, drv, orgAPID)
5464
if err != nil {
5565
return err
5666
}
5767

58-
expectedCAs, err := FetchExpectedCAs(ctx, c.anc, org, realm)
68+
drv.Activate(ctx, &truststoremodels.TrustStoreAudit{})
69+
70+
expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, orgAPID, realmAPID)
5971
if err != nil {
6072
return err
6173
}
@@ -85,3 +97,65 @@ func (c *Audit) RunTUI(ctx context.Context, drv *ui.Driver) error {
8597

8698
return nil
8799
}
100+
101+
func (c *Audit) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (string, error) {
102+
if c.OrgAPID != "" {
103+
return c.OrgAPID, nil
104+
}
105+
if cfg.Org.APID != "" {
106+
drv.Activate(ctx, &componentmodels.ConfigVia{
107+
Config: cfg,
108+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
109+
Flag: "--org",
110+
Singular: "organization",
111+
})
112+
c.OrgAPID = cfg.Org.APID
113+
return c.OrgAPID, nil
114+
}
115+
116+
selector := &component.Selector[api.Organization]{
117+
Prompt: "Which organization's env do you want to fetch?",
118+
Flag: "--org",
119+
120+
Fetcher: &component.Fetcher[api.Organization]{
121+
FetchFn: func() ([]api.Organization, error) { return c.Anc.GetOrgs(ctx) },
122+
},
123+
}
124+
125+
org, err := selector.Choice(ctx, drv)
126+
if err != nil {
127+
return "", err
128+
}
129+
return org.Apid, nil
130+
}
131+
132+
func (c *Audit) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, orgAPID string) (string, error) {
133+
if c.RealmAPID != "" {
134+
return c.RealmAPID, nil
135+
}
136+
if cfg.Realm.APID != "" {
137+
drv.Activate(ctx, &componentmodels.ConfigVia{
138+
Config: cfg,
139+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
140+
Flag: "--realm",
141+
Singular: "realm",
142+
})
143+
c.RealmAPID = cfg.Realm.APID
144+
return c.RealmAPID, nil
145+
}
146+
147+
selector := &component.Selector[api.Realm]{
148+
Prompt: fmt.Sprintf("Which %s realm's env do you want to fetch?", ui.Emphasize(orgAPID)),
149+
Flag: "--realm",
150+
151+
Fetcher: &component.Fetcher[api.Realm]{
152+
FetchFn: func() ([]api.Realm, error) { return c.Anc.GetOrgRealms(ctx, orgAPID) },
153+
},
154+
}
155+
156+
realm, err := selector.Choice(ctx, drv)
157+
if err != nil {
158+
return "", err
159+
}
160+
return realm.Apid, nil
161+
}

trust/audit_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,14 @@ func TestAudit(t *testing.T) {
8080
t.Fatal(err)
8181
}
8282

83-
org, realm, err := fetchOrgAndRealm(ctx, anc)
83+
userInfo, err := anc.UserInfo(ctx)
8484
if err != nil {
8585
t.Fatal(err)
8686
}
87+
orgAPID := userInfo.PersonalOrg.Slug
88+
realmAPID := "localhost"
8789

88-
expectedCAs, err := FetchExpectedCAs(ctx, anc, org, realm)
90+
expectedCAs, err := FetchExpectedCAs(ctx, anc, orgAPID, realmAPID)
8991
if err != nil {
9092
t.Fatal(err)
9193
}

trust/clean.go

Lines changed: 75 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"github.com/anchordotdev/cli"
1010
"github.com/anchordotdev/cli/api"
1111
"github.com/anchordotdev/cli/auth"
12+
"github.com/anchordotdev/cli/component"
13+
componentmodels "github.com/anchordotdev/cli/component/models"
1214
"github.com/anchordotdev/cli/trust/models"
1315
"github.com/anchordotdev/cli/truststore"
1416
"github.com/anchordotdev/cli/ui"
@@ -31,7 +33,7 @@ var CmdTrustClean = cli.NewCmd[Clean](CmdTrust, "clean", func(cmd *cobra.Command
3133

3234
type Clean struct {
3335
Anc *api.Session
34-
OrgSlug, RealmSlug string
36+
OrgAPID, RealmAPID string
3537
}
3638

3739
func (c Clean) UI() cli.UI {
@@ -66,20 +68,22 @@ func (c *Clean) runTUI(ctx context.Context, drv *ui.Driver) error {
6668
return nil
6769
}
6870

69-
func (c Clean) Perform(ctx context.Context, drv *ui.Driver) error {
71+
func (c *Clean) Perform(ctx context.Context, drv *ui.Driver) error {
7072
cfg := cli.ConfigFromContext(ctx)
7173

72-
var err error
73-
if c.OrgSlug == "" && c.RealmSlug == "" {
74-
c.OrgSlug, c.RealmSlug, err = fetchOrgAndRealm(ctx, c.Anc)
75-
if err != nil {
76-
return err
77-
}
74+
orgAPID, err := c.orgAPID(ctx, cfg, drv)
75+
if err != nil {
76+
return err
77+
}
78+
79+
realmAPID, err := c.realmAPID(ctx, cfg, drv, orgAPID)
80+
if err != nil {
81+
return err
7882
}
7983

8084
drv.Activate(ctx, &models.TrustCleanAudit{})
8185

82-
expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, c.OrgSlug, c.RealmSlug)
86+
expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, orgAPID, realmAPID)
8387
if err != nil {
8488
return err
8589
}
@@ -164,3 +168,65 @@ func classifyError(err error) error {
164168
return err
165169
}
166170
}
171+
172+
func (c *Clean) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (string, error) {
173+
if c.OrgAPID != "" {
174+
return c.OrgAPID, nil
175+
}
176+
if cfg.Org.APID != "" {
177+
drv.Activate(ctx, &componentmodels.ConfigVia{
178+
Config: cfg,
179+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
180+
Flag: "--org",
181+
Singular: "organization",
182+
})
183+
c.OrgAPID = cfg.Org.APID
184+
return c.OrgAPID, nil
185+
}
186+
187+
selector := &component.Selector[api.Organization]{
188+
Prompt: "Which organization's env do you want to fetch?",
189+
Flag: "--org",
190+
191+
Fetcher: &component.Fetcher[api.Organization]{
192+
FetchFn: func() ([]api.Organization, error) { return c.Anc.GetOrgs(ctx) },
193+
},
194+
}
195+
196+
org, err := selector.Choice(ctx, drv)
197+
if err != nil {
198+
return "", err
199+
}
200+
return org.Apid, nil
201+
}
202+
203+
func (c *Clean) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, orgAPID string) (string, error) {
204+
if c.RealmAPID != "" {
205+
return c.RealmAPID, nil
206+
}
207+
if cfg.Realm.APID != "" {
208+
drv.Activate(ctx, &componentmodels.ConfigVia{
209+
Config: cfg,
210+
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
211+
Flag: "--realm",
212+
Singular: "realm",
213+
})
214+
c.RealmAPID = cfg.Realm.APID
215+
return c.RealmAPID, nil
216+
}
217+
218+
selector := &component.Selector[api.Realm]{
219+
Prompt: fmt.Sprintf("Which %s realm's env do you want to fetch?", ui.Emphasize(orgAPID)),
220+
Flag: "--realm",
221+
222+
Fetcher: &component.Fetcher[api.Realm]{
223+
FetchFn: func() ([]api.Realm, error) { return c.Anc.GetOrgRealms(ctx, orgAPID) },
224+
},
225+
}
226+
227+
realm, err := selector.Choice(ctx, drv)
228+
if err != nil {
229+
return "", err
230+
}
231+
return realm.Apid, nil
232+
}

0 commit comments

Comments
 (0)