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:
parent
46be54b5fb
commit
0b745a6dfa
14 changed files with 348 additions and 5 deletions
42
internal/ssm-browse/providers/awsssm/provider.go
Normal file
42
internal/ssm-browse/providers/awsssm/provider.go
Normal 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue