in cfn-resources/network-peering/cmd/resource/resource.go [192:251]
func Read(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
setup()
client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
if err != nil {
log.Warnf("Delete err:%+v", err)
return handler.ProgressEvent{
OperationStatus: handler.Failed,
Message: err.Error(),
HandlerErrorCode: cloudformation.HandlerErrorCodeInvalidRequest}, nil
}
log.Debugf("Read - currentModel:%+v", currentModel)
projectID := *currentModel.ProjectId
if currentModel.Id == nil {
return handler.ProgressEvent{
Message: fmt.Sprintf("No Id found in model:%+v for Update", currentModel),
OperationStatus: handler.Failed,
HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, nil
}
peerID := *currentModel.Id
peerResponse, resp, err := client.Peers.Get(context.Background(), projectID, peerID)
if err != nil {
if resp != nil && resp.StatusCode == 404 {
log.Warnf("Resource Not Found 404 for READ projectId:%s, peerID:%+v, err:%+v", projectID, peerID, err)
return handler.ProgressEvent{
Message: err.Error(),
OperationStatus: handler.Failed,
HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, nil
} else {
log.Warnf("Error READ projectId:%s, err:%+v", projectID, err)
return handler.ProgressEvent{
Message: err.Error(),
OperationStatus: handler.Failed,
HandlerErrorCode: cloudformation.HandlerErrorCodeServiceInternalError}, nil
}
}
log.Debugf("Read: peerResponse:%+v", peerResponse)
currentModel.AwsAccountId = &peerResponse.AWSAccountID
currentModel.RouteTableCIDRBlock = &peerResponse.RouteTableCIDRBlock
currentModel.VpcId = &peerResponse.VpcID
currentModel.Id = &peerResponse.ID
currentModel.ConnectionId = &peerResponse.ConnectionID
currentModel.ErrorStateName = &peerResponse.ErrorStateName
if currentModel.ErrorStateName != nil {
currentModel.ErrorStateName = &peerResponse.ErrorStateName
}
if currentModel.StatusName != nil {
currentModel.StatusName = &peerResponse.StatusName
}
currentModel.ProviderName = &peerResponse.ProviderName
return handler.ProgressEvent{
OperationStatus: handler.Success,
Message: "Read Complete",
ResourceModel: currentModel,
}, nil
}