Skip to content

Commit

Permalink
v0.1.3 misc fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
benburkert committed Sep 26, 2024
1 parent 021bf29 commit 06c1d1f
Show file tree
Hide file tree
Showing 11 changed files with 351 additions and 81 deletions.
14 changes: 7 additions & 7 deletions api/openapi.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions lcl/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ func (c LclClean) run(ctx context.Context, drv *ui.Driver) error {

cmd := &trust.Clean{
Anc: c.anc,
OrgSlug: orgAPID,
RealmSlug: realmAPID,
OrgAPID: orgAPID,
RealmAPID: realmAPID,
}

err = cmd.Perform(ctx, drv)
Expand Down
28 changes: 25 additions & 3 deletions service/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/anchordotdev/cli/auth"
"github.com/anchordotdev/cli/clipboard"
"github.com/anchordotdev/cli/component"
componentmodels "github.com/anchordotdev/cli/component/models"
"github.com/anchordotdev/cli/service/models"
"github.com/anchordotdev/cli/ui"
)
Expand Down Expand Up @@ -273,7 +274,14 @@ func (c *Env) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (str
return c.OrgAPID, nil
}
if cfg.Org.APID != "" {
return cfg.Org.APID, nil
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
Flag: "--org",
Singular: "organization",
})
c.OrgAPID = cfg.Org.APID
return c.OrgAPID, nil
}

selector := &component.Selector[api.Organization]{
Expand All @@ -297,7 +305,14 @@ func (c *Env) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, or
return c.RealmAPID, nil
}
if cfg.Realm.APID != "" {
return cfg.Realm.APID, nil
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
Flag: "--realm",
Singular: "realm",
})
c.RealmAPID = cfg.Realm.APID
return c.RealmAPID, nil
}

selector := &component.Selector[api.Realm]{
Expand All @@ -321,7 +336,14 @@ func (c *Env) serviceAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver,
return c.ServiceAPID, nil
}
if cfg.Service.APID != "" {
return cfg.Service.APID, nil
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Service.APID },
Flag: "--service",
Singular: "service",
})
c.ServiceAPID = cfg.Service.APID
return c.ServiceAPID, nil
}

selector := &component.Selector[api.Service]{
Expand Down
86 changes: 80 additions & 6 deletions trust/audit.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@ package trust

import (
"context"
"fmt"

"github.com/spf13/cobra"

"github.com/anchordotdev/cli"
"github.com/anchordotdev/cli/api"
"github.com/anchordotdev/cli/auth"
"github.com/anchordotdev/cli/component"
componentmodels "github.com/anchordotdev/cli/component/models"
"github.com/anchordotdev/cli/trust/models"
"github.com/anchordotdev/cli/truststore"
truststoremodels "github.com/anchordotdev/cli/truststore/models"
Expand All @@ -25,7 +28,9 @@ var CmdTrustAudit = cli.NewCmd[Audit](CmdTrust, "audit", func(cmd *cobra.Command
})

type Audit struct {
anc *api.Session
Anc *api.Session

OrgAPID, RealmAPID string
}

func (a Audit) UI() cli.UI {
Expand All @@ -35,27 +40,34 @@ func (a Audit) UI() cli.UI {
}

func (c *Audit) RunTUI(ctx context.Context, drv *ui.Driver) error {
cfg := cli.ConfigFromContext(ctx)

var err error
cmd := &auth.Client{
Anc: c.anc,
Anc: c.Anc,
Source: "lclhost",
}
c.anc, err = cmd.Perform(ctx, drv)
c.Anc, err = cmd.Perform(ctx, drv)
if err != nil {
return err
}

drv.Activate(ctx, models.TrustAuditHeader)
drv.Activate(ctx, models.TrustAuditHint)

drv.Activate(ctx, &truststoremodels.TrustStoreAudit{})
orgAPID, err := c.orgAPID(ctx, cfg, drv)
if err != nil {
return err
}

org, realm, err := fetchOrgAndRealm(ctx, c.anc)
realmAPID, err := c.realmAPID(ctx, cfg, drv, orgAPID)
if err != nil {
return err
}

expectedCAs, err := FetchExpectedCAs(ctx, c.anc, org, realm)
drv.Activate(ctx, &truststoremodels.TrustStoreAudit{})

expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, orgAPID, realmAPID)
if err != nil {
return err
}
Expand Down Expand Up @@ -85,3 +97,65 @@ func (c *Audit) RunTUI(ctx context.Context, drv *ui.Driver) error {

return nil
}

func (c *Audit) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (string, error) {
if c.OrgAPID != "" {
return c.OrgAPID, nil
}
if cfg.Org.APID != "" {
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
Flag: "--org",
Singular: "organization",
})
c.OrgAPID = cfg.Org.APID
return c.OrgAPID, nil
}

selector := &component.Selector[api.Organization]{
Prompt: "Which organization's env do you want to fetch?",
Flag: "--org",

Fetcher: &component.Fetcher[api.Organization]{
FetchFn: func() ([]api.Organization, error) { return c.Anc.GetOrgs(ctx) },
},
}

org, err := selector.Choice(ctx, drv)
if err != nil {
return "", err
}
return org.Apid, nil
}

func (c *Audit) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, orgAPID string) (string, error) {
if c.RealmAPID != "" {
return c.RealmAPID, nil
}
if cfg.Realm.APID != "" {
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
Flag: "--realm",
Singular: "realm",
})
c.RealmAPID = cfg.Realm.APID
return c.RealmAPID, nil
}

selector := &component.Selector[api.Realm]{
Prompt: fmt.Sprintf("Which %s realm's env do you want to fetch?", ui.Emphasize(orgAPID)),
Flag: "--realm",

Fetcher: &component.Fetcher[api.Realm]{
FetchFn: func() ([]api.Realm, error) { return c.Anc.GetOrgRealms(ctx, orgAPID) },
},
}

realm, err := selector.Choice(ctx, drv)
if err != nil {
return "", err
}
return realm.Apid, nil
}
6 changes: 4 additions & 2 deletions trust/audit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,14 @@ func TestAudit(t *testing.T) {
t.Fatal(err)
}

org, realm, err := fetchOrgAndRealm(ctx, anc)
userInfo, err := anc.UserInfo(ctx)
if err != nil {
t.Fatal(err)
}
orgAPID := userInfo.PersonalOrg.Slug
realmAPID := "localhost"

expectedCAs, err := FetchExpectedCAs(ctx, anc, org, realm)
expectedCAs, err := FetchExpectedCAs(ctx, anc, orgAPID, realmAPID)
if err != nil {
t.Fatal(err)
}
Expand Down
84 changes: 75 additions & 9 deletions trust/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"github.com/anchordotdev/cli"
"github.com/anchordotdev/cli/api"
"github.com/anchordotdev/cli/auth"
"github.com/anchordotdev/cli/component"
componentmodels "github.com/anchordotdev/cli/component/models"
"github.com/anchordotdev/cli/trust/models"
"github.com/anchordotdev/cli/truststore"
"github.com/anchordotdev/cli/ui"
Expand All @@ -31,7 +33,7 @@ var CmdTrustClean = cli.NewCmd[Clean](CmdTrust, "clean", func(cmd *cobra.Command

type Clean struct {
Anc *api.Session
OrgSlug, RealmSlug string
OrgAPID, RealmAPID string
}

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

func (c Clean) Perform(ctx context.Context, drv *ui.Driver) error {
func (c *Clean) Perform(ctx context.Context, drv *ui.Driver) error {
cfg := cli.ConfigFromContext(ctx)

var err error
if c.OrgSlug == "" && c.RealmSlug == "" {
c.OrgSlug, c.RealmSlug, err = fetchOrgAndRealm(ctx, c.Anc)
if err != nil {
return err
}
orgAPID, err := c.orgAPID(ctx, cfg, drv)
if err != nil {
return err
}

realmAPID, err := c.realmAPID(ctx, cfg, drv, orgAPID)
if err != nil {
return err
}

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

expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, c.OrgSlug, c.RealmSlug)
expectedCAs, err := FetchExpectedCAs(ctx, c.Anc, orgAPID, realmAPID)
if err != nil {
return err
}
Expand Down Expand Up @@ -164,3 +168,65 @@ func classifyError(err error) error {
return err
}
}

func (c *Clean) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (string, error) {
if c.OrgAPID != "" {
return c.OrgAPID, nil
}
if cfg.Org.APID != "" {
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID },
Flag: "--org",
Singular: "organization",
})
c.OrgAPID = cfg.Org.APID
return c.OrgAPID, nil
}

selector := &component.Selector[api.Organization]{
Prompt: "Which organization's env do you want to fetch?",
Flag: "--org",

Fetcher: &component.Fetcher[api.Organization]{
FetchFn: func() ([]api.Organization, error) { return c.Anc.GetOrgs(ctx) },
},
}

org, err := selector.Choice(ctx, drv)
if err != nil {
return "", err
}
return org.Apid, nil
}

func (c *Clean) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, orgAPID string) (string, error) {
if c.RealmAPID != "" {
return c.RealmAPID, nil
}
if cfg.Realm.APID != "" {
drv.Activate(ctx, &componentmodels.ConfigVia{
Config: cfg,
ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Realm.APID },
Flag: "--realm",
Singular: "realm",
})
c.RealmAPID = cfg.Realm.APID
return c.RealmAPID, nil
}

selector := &component.Selector[api.Realm]{
Prompt: fmt.Sprintf("Which %s realm's env do you want to fetch?", ui.Emphasize(orgAPID)),
Flag: "--realm",

Fetcher: &component.Fetcher[api.Realm]{
FetchFn: func() ([]api.Realm, error) { return c.Anc.GetOrgRealms(ctx, orgAPID) },
},
}

realm, err := selector.Choice(ctx, drv)
if err != nil {
return "", err
}
return realm.Apid, nil
}
Loading

0 comments on commit 06c1d1f

Please sign in to comment.