logs.go 769 B

12345678910111213141516171819202122232425262728
  1. package amazon
  2. import (
  3. "fmt"
  4. "github.com/aws/aws-sdk-go/aws"
  5. "github.com/aws/aws-sdk-go/service/cloudwatchlogs"
  6. "github.com/docker/ecs-plugin/pkg/compose"
  7. "github.com/sirupsen/logrus"
  8. )
  9. // GetOrCreateLogGroup retrieve a pre-existing log group for project or create one
  10. func (c client) GetOrCreateLogGroup(project *compose.Project) (*string, error) {
  11. logrus.Debug("Create Log Group")
  12. logGroup := fmt.Sprintf("/ecs/%s", project.Name)
  13. _, err := c.CW.CreateLogGroup(&cloudwatchlogs.CreateLogGroupInput{
  14. LogGroupName: aws.String(logGroup),
  15. Tags: map[string]*string{
  16. ProjectTag: aws.String(project.Name),
  17. },
  18. })
  19. if err != nil {
  20. if _, ok := err.(*cloudwatchlogs.ResourceAlreadyExistsException); !ok {
  21. return nil, err
  22. }
  23. }
  24. return &logGroup, nil
  25. }