ssm-browse: new utility to browse SSM parameters

This is more of an exercise to work out how best to use controllers
This commit is contained in:
Leon Mika 2022-03-29 08:41:27 +11:00
parent 46be54b5fb
commit 0b745a6dfa
14 changed files with 348 additions and 5 deletions

View file

@ -0,0 +1,42 @@
package awsssm
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/ssm"
"github.com/lmika/awstools/internal/ssm-browse/models"
"github.com/pkg/errors"
)
type Provider struct {
client *ssm.Client
}
func NewProvider(client *ssm.Client) *Provider {
return &Provider{
client: client,
}
}
func (p *Provider) List(ctx context.Context) (*models.SSMParameters, error) {
pars, err := p.client.GetParametersByPath(ctx, &ssm.GetParametersByPathInput{
Path: aws.String("/"),
MaxResults: 10,
Recursive: true,
})
if err != nil {
return nil, errors.Wrap(err, "cannot get parameters from path")
}
res := &models.SSMParameters{
Items: make([]models.SSMParameter, len(pars.Parameters)),
}
for i, p := range pars.Parameters {
res.Items[i] = models.SSMParameter{
Name: aws.ToString(p.Name),
Value: aws.ToString(p.Value),
}
}
return res, nil
}