in cfn-resources/network-peering/cmd/resource/resource.go [323:366]
func Delete(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.Debugf("Delete - error err:%+v", err)
return handler.ProgressEvent{
OperationStatus: handler.Failed,
Message: err.Error(),
HandlerErrorCode: cloudformation.HandlerErrorCodeInvalidRequest}, nil
}
if _, ok := req.CallbackContext["stateName"]; ok {
return validateProgress(client, currentModel, "DELETED")
}
projectId := *currentModel.ProjectId
peerId := *currentModel.Id
resp, err := client.Peers.Delete(context.Background(), projectId, peerId)
if err != nil {
if resp != nil && resp.StatusCode == 404 {
log.Warnf("Resource Not Found 404 for DELETE 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 DELETE projectId:%s, err:%+v", projectId, err)
return handler.ProgressEvent{
Message: err.Error(),
OperationStatus: handler.Failed,
HandlerErrorCode: cloudformation.HandlerErrorCodeServiceInternalError}, nil
}
}
return handler.ProgressEvent{
OperationStatus: handler.InProgress,
Message: "Delete Inprogess",
ResourceModel: currentModel,
CallbackDelaySeconds: 10,
CallbackContext: map[string]interface{}{
"stateName": "DELETING",
},
}, nil
}