resource.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package processor
  2. // type EventProcessor struct {}
  3. // type Event struct {
  4. // OrgID string
  5. // *types.TFLogLine
  6. // }
  7. // func (e *EventProcessor) GetFileData(ordID string) (bytes.Buffer, error) {
  8. // var data bytes.Buffer
  9. // reader, err := e.client.GetObject(ordID, "desired.json")
  10. // if err != nil {
  11. // return data, err
  12. // }
  13. // _, err = data.ReadFrom(reader)
  14. // if err != nil {
  15. // return data, err
  16. // }
  17. // return data, nil
  18. // }
  19. // func (e *EventProcessor) WriteFileData(orgID string, data []byte) error {
  20. // err := e.client.PutObject(orgID, "desired.json", data)
  21. // if err != nil {
  22. // return err
  23. // }
  24. // return nil
  25. // }
  26. // func (e *EventProcessor) MarkErroredResourceInDesiredState(event *Event) error {
  27. // fileData, err := e.GetFileData(event.OrgID)
  28. // if err != nil {
  29. // return err
  30. // }
  31. // var desiredState types.DesiredTFState
  32. // err = json.Unmarshal(fileData.Bytes(), &desiredState)
  33. // if err != nil {
  34. // return err
  35. // }
  36. // // find the correct matching resource name in the desired state
  37. // for i, resource := range desiredState {
  38. // if resource.Resource == event.Hook.Resource.Resource {
  39. // // add error message to this resource
  40. // resource.Errored.ErroredOut = true
  41. // desiredState[i] = resource
  42. // // write back the file
  43. // data, err := json.Marshal(desiredState)
  44. // if err != nil {
  45. // return err
  46. // }
  47. // return e.client.PutObject(event.OrgID, "desired.json", data)
  48. // }
  49. // }
  50. // return fmt.Errorf("cannot find a matching resource entry")
  51. // }
  52. // func (e *EventProcessor) AddErrorContextToResource(event *Event) error {
  53. // fileData, err := e.GetFileData(event.OrgID)
  54. // if err != nil {
  55. // return err
  56. // }
  57. // var desiredState types.DesiredTFState
  58. // err = json.Unmarshal(fileData.Bytes(), &desiredState)
  59. // if err != nil {
  60. // return err
  61. // }
  62. // // find and add error context to the matching resource
  63. // for i, resource := range desiredState {
  64. // if event.Diagnostic.Address == resource.Resource {
  65. // resource.Errored.ErrorSummary = event.Diagnostic.Summary
  66. // desiredState[i] = resource
  67. // // write back
  68. // data, err := json.Marshal(desiredState)
  69. // if err != nil {
  70. // return err
  71. // }
  72. // return e.client.PutObject(event.OrgID, "desired.json", data)
  73. // }
  74. // }
  75. // return fmt.Errorf("cannot find a matching resource entry")
  76. // }
  77. // func (e *EventProcessor) Filter(event *Event) error {
  78. // switch event.Type {
  79. // case types.ApplyErrored:
  80. // return e.MarkErroredResourceInDesiredState(event)
  81. // case types.Diagnostic:
  82. // if event.Level == "error" {
  83. // return e.AddErrorContextToResource(event)
  84. // }
  85. // return nil
  86. // default:
  87. // return nil
  88. // }
  89. // }
  90. // func NewEventProcessor() *EventProcessor {
  91. // BUCKET := os.Getenv("BUCKET")
  92. // return &EventProcessor{
  93. // client: s3.NewS3Client(BUCKET),
  94. // }
  95. // }