in cfn-resources/network-container/cmd/resource/resource.go [185:230]
func List(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
log.SetFlags(log.LstdFlags | log.Lshortfile)
log.Printf("List currentModel:%+v", currentModel)
client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
if err != nil {
return handler.ProgressEvent{}, err
}
projectId := *currentModel.ProjectId
providerName := currentModel.ProviderName
if providerName == nil || *providerName == "" {
aws := defaultProviderName
providerName = &aws
}
log.Printf("projectId:%v", projectId)
log.Printf("providerName:%v", providerName)
containerRequest := &mongodbatlas.ContainersListOptions{
ProviderName: *providerName,
ListOptions: mongodbatlas.ListOptions{},
}
log.Printf("List projectId:%v, containerRequest:%v", projectId, containerRequest)
containerResponse, _, err := client.Containers.List(context.TODO(), projectId, containerRequest)
if err != nil {
log.Printf("Error %v", err)
return handler.ProgressEvent{}, err
}
log.Printf("containerResponse:%v", containerResponse)
var models []Model
for _, container := range containerResponse {
var model Model
model.RegionName = &container.RegionName
model.Provisioned = container.Provisioned
model.Id = &container.ID
model.VpcId = &container.VPCID
model.AtlasCIDRBlock = &container.AtlasCIDRBlock
models = append(models, model)
}
return handler.ProgressEvent{
OperationStatus: handler.Success,
Message: "List Complete",
ResourceModel: models,
}, nil
}