Skip to content

Commit dd2c931

Browse files
committed
make gofmt and other linters happy.
1 parent d17a4f2 commit dd2c931

6 files changed

Lines changed: 412 additions & 368 deletions

client/client_bun.go

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -279,20 +279,30 @@ func (c *BunClient) CreateAccount(ctx context.Context, targetID ID, name string,
279279
} else {
280280
return Account{}, errors.New("unknown target")
281281
}
282-
am := core.DefaultAccountManager()
283-
if am == nil {
284-
return Account{}, errors.New("no account manager available")
282+
// Prefer package-level AccountManager when available so that created
283+
// accounts are visible to package-level helpers (key manager, deployer).
284+
if am := core.DefaultAccountManager(); am != nil {
285+
acctID, err := am.AddAccount(name, hostname, "", "")
286+
if err != nil {
287+
return Account{}, err
288+
}
289+
return Account{ID(acctID), targetID, name, deploymentKey}, nil
285290
}
286-
// label and tags are UI-level; pass empty
287-
acctID, err := am.AddAccount(name, hostname, "", "")
291+
if c.store == nil {
292+
return Account{}, errors.New("no store available")
293+
}
294+
acctID, err := c.store.AddAccount(name, hostname, "", "")
288295
if err != nil {
289296
return Account{}, err
290297
}
291298
return Account{ID(acctID), targetID, name, deploymentKey}, nil
292299
}
293300

294301
func (c *BunClient) GetAccount(ctx context.Context, id ID) (Account, error) {
295-
m, err := core.GetAccount(int(id))
302+
if c.store == nil {
303+
return Account{}, errors.New("no store available")
304+
}
305+
m, err := c.store.GetAccount(int(id))
296306
if err != nil {
297307
return Account{}, err
298308
}
@@ -331,7 +341,10 @@ func (c *BunClient) ListAccountsByTarget(ctx context.Context, targetID ID) ([]Ac
331341
if !ok {
332342
return nil, errors.New("target not found")
333343
}
334-
accounts, err := core.GetAccounts()
344+
if c.store == nil {
345+
return nil, errors.New("no store available")
346+
}
347+
accounts, err := c.store.GetAccounts()
335348
if err != nil {
336349
return nil, err
337350
}
@@ -347,15 +360,22 @@ func (c *BunClient) ListAccountsByTarget(ctx context.Context, targetID ID) ([]Ac
347360

348361
func (c *BunClient) DeleteAccounts(ctx context.Context, ids ...ID) error {
349362
for _, id := range ids {
350-
if err := core.DeleteAccount(int(id)); err != nil {
351-
return err
363+
if c.store != nil {
364+
if err := c.store.DeleteAccount(int(id)); err != nil {
365+
return err
366+
}
367+
} else {
368+
return errors.New("no store available")
352369
}
353370
}
354371
return nil
355372
}
356373

357374
func (c *BunClient) GetDirtyAccounts(ctx context.Context) ([]Account, error) {
358-
accounts, err := core.GetAccounts()
375+
if c.store == nil {
376+
return nil, errors.New("no store available")
377+
}
378+
accounts, err := c.store.GetAccounts()
359379
if err != nil {
360380
return nil, err
361381
}
@@ -444,6 +464,27 @@ func (c *BunClient) ResolveAccountsForPublicKey(ctx context.Context, publicKeyID
444464
if err != nil {
445465
return nil, err
446466
}
467+
// Fallback: if direct reverse lookup returned no accounts (some adapters
468+
// may not implement it), scan all accounts and check their assigned keys.
469+
if len(accs) == 0 {
470+
if c.store != nil {
471+
all, aerr := c.store.GetAccounts()
472+
if aerr == nil {
473+
for _, am := range all {
474+
keysFor, kerr := km.GetKeysForAccount(am.ID)
475+
if kerr != nil {
476+
continue
477+
}
478+
for _, k := range keysFor {
479+
if k.ID == int(publicKeyID) {
480+
accs = append(accs, am)
481+
break
482+
}
483+
}
484+
}
485+
}
486+
}
487+
}
447488
var out []Account
448489
for _, a := range accs {
449490
// ensure target exists

client/client_bun_accounts_test.go

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -10,70 +10,70 @@ import (
1010
)
1111

1212
func TestBunClient_AccountsCRUD(t *testing.T) {
13-
cfg := config.Config{Database: config.ConfigDatabase{Type: "sqlite", Dsn: ":memory:"}}
14-
logger := log.New(io.Discard, "", 0)
13+
cfg := config.Config{Database: config.ConfigDatabase{Type: "sqlite", Dsn: ":memory:"}}
14+
logger := log.New(io.Discard, "", 0)
1515

16-
c, err := NewBunClient(cfg, logger)
17-
if err != nil {
18-
t.Fatalf("NewBunClient failed: %v", err)
19-
}
20-
defer func() { _ = c.Close(context.Background()) }()
16+
c, err := NewBunClient(cfg, logger)
17+
if err != nil {
18+
t.Fatalf("NewBunClient failed: %v", err)
19+
}
20+
defer func() { _ = c.Close(context.Background()) }()
2121

22-
ctx := context.Background()
22+
ctx := context.Background()
2323

24-
// Create target then account
25-
tgt, err := c.CreateTarget(ctx, "acct.example.com", 22)
26-
if err != nil {
27-
t.Fatalf("CreateTarget failed: %v", err)
28-
}
24+
// Create target then account
25+
tgt, err := c.CreateTarget(ctx, "acct.example.com", 22)
26+
if err != nil {
27+
t.Fatalf("CreateTarget failed: %v", err)
28+
}
2929

30-
acct, err := c.CreateAccount(ctx, tgt.id, "deploy", "")
31-
if err != nil {
32-
t.Fatalf("CreateAccount failed: %v", err)
33-
}
34-
if acct.id == 0 {
35-
t.Fatalf("expected non-zero account id")
36-
}
37-
if acct.name != "deploy" {
38-
t.Fatalf("unexpected account name: %s", acct.name)
39-
}
30+
acct, err := c.CreateAccount(ctx, tgt.id, "deploy", "")
31+
if err != nil {
32+
t.Fatalf("CreateAccount failed: %v", err)
33+
}
34+
if acct.id == 0 {
35+
t.Fatalf("expected non-zero account id")
36+
}
37+
if acct.name != "deploy" {
38+
t.Fatalf("unexpected account name: %s", acct.name)
39+
}
4040

41-
// GetAccount
42-
got, err := c.GetAccount(ctx, acct.id)
43-
if err != nil {
44-
t.Fatalf("GetAccount failed: %v", err)
45-
}
46-
if got.id != acct.id || got.name != acct.name {
47-
t.Fatalf("GetAccount mismatch: %#v vs %#v", got, acct)
48-
}
41+
// GetAccount
42+
got, err := c.GetAccount(ctx, acct.id)
43+
if err != nil {
44+
t.Fatalf("GetAccount failed: %v", err)
45+
}
46+
if got.id != acct.id || got.name != acct.name {
47+
t.Fatalf("GetAccount mismatch: %#v vs %#v", got, acct)
48+
}
4949

50-
// ListAccountsByTarget
51-
list, err := c.ListAccountsByTarget(ctx, tgt.id)
52-
if err != nil {
53-
t.Fatalf("ListAccountsByTarget failed: %v", err)
54-
}
55-
if len(list) != 1 || list[0].id != acct.id {
56-
t.Fatalf("ListAccountsByTarget unexpected: %#v", list)
57-
}
50+
// ListAccountsByTarget
51+
list, err := c.ListAccountsByTarget(ctx, tgt.id)
52+
if err != nil {
53+
t.Fatalf("ListAccountsByTarget failed: %v", err)
54+
}
55+
if len(list) != 1 || list[0].id != acct.id {
56+
t.Fatalf("ListAccountsByTarget unexpected: %#v", list)
57+
}
5858

59-
// GetAccounts
60-
many, err := c.GetAccounts(ctx, acct.id)
61-
if err != nil {
62-
t.Fatalf("GetAccounts failed: %v", err)
63-
}
64-
if len(many) != 1 || many[0].id != acct.id {
65-
t.Fatalf("GetAccounts unexpected: %#v", many)
66-
}
59+
// GetAccounts
60+
many, err := c.GetAccounts(ctx, acct.id)
61+
if err != nil {
62+
t.Fatalf("GetAccounts failed: %v", err)
63+
}
64+
if len(many) != 1 || many[0].id != acct.id {
65+
t.Fatalf("GetAccounts unexpected: %#v", many)
66+
}
6767

68-
// DeleteAccounts
69-
if err := c.DeleteAccounts(ctx, acct.id); err != nil {
70-
t.Fatalf("DeleteAccounts failed: %v", err)
71-
}
72-
after, err := c.ListAccountsByTarget(ctx, tgt.id)
73-
if err != nil {
74-
t.Fatalf("ListAccountsByTarget after delete failed: %v", err)
75-
}
76-
if len(after) != 0 {
77-
t.Fatalf("expected zero accounts after delete, got: %#v", after)
78-
}
68+
// DeleteAccounts
69+
if err := c.DeleteAccounts(ctx, acct.id); err != nil {
70+
t.Fatalf("DeleteAccounts failed: %v", err)
71+
}
72+
after, err := c.ListAccountsByTarget(ctx, tgt.id)
73+
if err != nil {
74+
t.Fatalf("ListAccountsByTarget after delete failed: %v", err)
75+
}
76+
if len(after) != 0 {
77+
t.Fatalf("expected zero accounts after delete, got: %#v", after)
78+
}
7979
}

0 commit comments

Comments
 (0)