github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/uniter/runner/jujuc/jujuctesting/secrets.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package jujuctesting 5 6 import ( 7 "github.com/juju/names/v5" 8 9 "github.com/juju/juju/core/secrets" 10 "github.com/juju/juju/worker/uniter/runner/jujuc" 11 ) 12 13 // ContextSecrets is a test double for jujuc.ContextSecrets. 14 type ContextSecrets struct { 15 contextBase 16 17 SecretValue secrets.SecretValue 18 Access []secrets.AccessInfo 19 } 20 21 // GetSecret implements jujuc.ContextSecrets. 22 func (c *ContextSecrets) GetSecret(uri *secrets.URI, label string, refresh, peek bool) (secrets.SecretValue, error) { 23 c.stub.AddCall("GetSecret", uri.String(), label, refresh, peek) 24 return c.SecretValue, nil 25 } 26 27 // CreateSecret implements jujuc.ContextSecrets. 28 func (c *ContextSecrets) CreateSecret(args *jujuc.SecretCreateArgs) (*secrets.URI, error) { 29 c.stub.AddCall("CreateSecret", args) 30 uri, _ := secrets.ParseURI("secret:9m4e2mr0ui3e8a215n4g") 31 return uri, nil 32 } 33 34 // UpdateSecret implements jujuc.ContextSecrets. 35 func (c *ContextSecrets) UpdateSecret(uri *secrets.URI, args *jujuc.SecretUpdateArgs) error { 36 c.stub.AddCall("UpdateSecret", uri.String(), args) 37 return nil 38 } 39 40 // RemoveSecret implements jujuc.ContextSecrets. 41 func (c *ContextSecrets) RemoveSecret(uri *secrets.URI, revision *int) error { 42 c.stub.AddCall("RemoveSecret", uri.String(), revision) 43 return nil 44 } 45 46 // SecretMetadata gets the metadata for secrets created by the charm. 47 func (c *ContextSecrets) SecretMetadata() (map[string]jujuc.SecretMetadata, error) { 48 c.stub.AddCall("SecretMetadata") 49 return map[string]jujuc.SecretMetadata{ 50 "9m4e2mr0ui3e8a215n4g": { 51 LatestRevision: 666, 52 Label: "label", 53 Owner: names.NewApplicationTag("mariadb"), 54 Description: "description", 55 RotatePolicy: secrets.RotateHourly, 56 Access: c.Access, 57 }, 58 }, nil 59 } 60 61 // GrantSecret implements jujuc.ContextSecrets. 62 func (c *ContextSecrets) GrantSecret(uri *secrets.URI, args *jujuc.SecretGrantRevokeArgs) error { 63 c.stub.AddCall("GrantSecret", uri.String(), args) 64 return nil 65 } 66 67 // RevokeSecret implements jujuc.ContextSecrets. 68 func (c *ContextSecrets) RevokeSecret(uri *secrets.URI, args *jujuc.SecretGrantRevokeArgs) error { 69 c.stub.AddCall("RevokeSecret", uri.String(), args) 70 return nil 71 }