providers/opal/on_call_schedule.go (37 lines of code) (raw):
package opal
import (
"context"
"fmt"
"github.com/GoogleCloudPlatform/terraformer/terraformutils"
)
type OnCallScheduleGenerator struct {
OpalService
}
func (g *OnCallScheduleGenerator) InitResources() error {
client, err := g.newClient()
if err != nil {
return fmt.Errorf("unable to list opal on call schedules: %v", err)
}
onCallSchedules, _, err := client.OnCallSchedulesApi.GetOnCallSchedules(context.TODO()).Execute()
if err != nil {
return fmt.Errorf("unable to list opal on call schedules: %v", err)
}
countByName := make(map[string]int)
for _, onCallSchedule := range onCallSchedules.OnCallSchedules {
name := normalizeResourceName(*onCallSchedule.Name)
if count, ok := countByName[name]; ok {
countByName[name] = count + 1
name = normalizeResourceName(fmt.Sprintf("%s_%d", *onCallSchedule.Name, count+1))
} else {
countByName[name] = 1
}
g.Resources = append(g.Resources, terraformutils.NewSimpleResource(
*onCallSchedule.OnCallScheduleId,
name,
"opal_on_call_schedule",
"opal",
[]string{},
))
}
return nil
}