|
|
@@ -1,119 +0,0 @@
|
|
|
-package processor
|
|
|
-
|
|
|
-// type EventProcessor struct {}
|
|
|
-
|
|
|
-// type Event struct {
|
|
|
-// OrgID string
|
|
|
-// *types.TFLogLine
|
|
|
-// }
|
|
|
-
|
|
|
-// func (e *EventProcessor) GetFileData(ordID string) (bytes.Buffer, error) {
|
|
|
-// var data bytes.Buffer
|
|
|
-
|
|
|
-// reader, err := e.client.GetObject(ordID, "desired.json")
|
|
|
-// if err != nil {
|
|
|
-// return data, err
|
|
|
-// }
|
|
|
-
|
|
|
-// _, err = data.ReadFrom(reader)
|
|
|
-// if err != nil {
|
|
|
-// return data, err
|
|
|
-// }
|
|
|
-
|
|
|
-// return data, nil
|
|
|
-// }
|
|
|
-
|
|
|
-// func (e *EventProcessor) WriteFileData(orgID string, data []byte) error {
|
|
|
-// err := e.client.PutObject(orgID, "desired.json", data)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// return nil
|
|
|
-// }
|
|
|
-
|
|
|
-// func (e *EventProcessor) MarkErroredResourceInDesiredState(event *Event) error {
|
|
|
-// fileData, err := e.GetFileData(event.OrgID)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// var desiredState types.DesiredTFState
|
|
|
-// err = json.Unmarshal(fileData.Bytes(), &desiredState)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// // find the correct matching resource name in the desired state
|
|
|
-// for i, resource := range desiredState {
|
|
|
-// if resource.Resource == event.Hook.Resource.Resource {
|
|
|
-// // add error message to this resource
|
|
|
-// resource.Errored.ErroredOut = true
|
|
|
-// desiredState[i] = resource
|
|
|
-
|
|
|
-// // write back the file
|
|
|
-// data, err := json.Marshal(desiredState)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// return e.client.PutObject(event.OrgID, "desired.json", data)
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// return fmt.Errorf("cannot find a matching resource entry")
|
|
|
-// }
|
|
|
-
|
|
|
-// func (e *EventProcessor) AddErrorContextToResource(event *Event) error {
|
|
|
-// fileData, err := e.GetFileData(event.OrgID)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// var desiredState types.DesiredTFState
|
|
|
-// err = json.Unmarshal(fileData.Bytes(), &desiredState)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// // find and add error context to the matching resource
|
|
|
-// for i, resource := range desiredState {
|
|
|
-// if event.Diagnostic.Address == resource.Resource {
|
|
|
-// resource.Errored.ErrorSummary = event.Diagnostic.Summary
|
|
|
-// desiredState[i] = resource
|
|
|
-
|
|
|
-// // write back
|
|
|
-// data, err := json.Marshal(desiredState)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-
|
|
|
-// return e.client.PutObject(event.OrgID, "desired.json", data)
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// return fmt.Errorf("cannot find a matching resource entry")
|
|
|
-// }
|
|
|
-
|
|
|
-// func (e *EventProcessor) Filter(event *Event) error {
|
|
|
-// switch event.Type {
|
|
|
-// case types.ApplyErrored:
|
|
|
-// return e.MarkErroredResourceInDesiredState(event)
|
|
|
-// case types.Diagnostic:
|
|
|
-// if event.Level == "error" {
|
|
|
-// return e.AddErrorContextToResource(event)
|
|
|
-// }
|
|
|
-
|
|
|
-// return nil
|
|
|
-// default:
|
|
|
-// return nil
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// func NewEventProcessor() *EventProcessor {
|
|
|
-// BUCKET := os.Getenv("BUCKET")
|
|
|
-
|
|
|
-// return &EventProcessor{
|
|
|
-// client: s3.NewS3Client(BUCKET),
|
|
|
-// }
|
|
|
-// }
|