Skip to content

Commit ea7e64a

Browse files
committed
fix for moving monitors between folders
1 parent b0c2d00 commit ea7e64a

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

sumologic/resource_sumologic_monitors_library_monitor.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,12 +380,21 @@ func resourceSumologicMonitorsLibraryMonitorRead(d *schema.ResourceData, meta in
380380
func resourceSumologicMonitorsLibraryMonitorUpdate(d *schema.ResourceData, meta interface{}) error {
381381
c := meta.(*Client)
382382
monitor := resourceToMonitorsLibraryMonitor(d)
383+
if d.HasChange("parentId") {
384+
// monitor.ParentID = d.Get("parentId").(string)
385+
err := c.MoveMonitorsLibraryMonitor(monitor)
386+
if err != nil {
387+
return err
388+
}
389+
}
383390
monitor.Type = "MonitorsLibraryMonitorUpdate"
384391
err := c.UpdateMonitorsLibraryMonitor(monitor)
385392
if err != nil {
386393
return err
387394
}
388-
return resourceSumologicMonitorsLibraryMonitorRead(d, meta)
395+
updatedMonitor := resourceSumologicMonitorsLibraryMonitorRead(d, meta)
396+
397+
return updatedMonitor
389398
}
390399

391400
func resourceSumologicMonitorsLibraryMonitorDelete(d *schema.ResourceData, meta interface{}) error {

sumologic/sumologic_monitors_library_monitor.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ func (s *Client) MonitorsRead(id string) (*MonitorsLibraryMonitor, error) {
6464
}
6565

6666
return &monitorsLibraryMonitor, nil
67-
6867
}
6968

7069
func (s *Client) DeleteMonitorsLibraryMonitor(id string) error {
@@ -93,7 +92,25 @@ func (s *Client) UpdateMonitorsLibraryMonitor(monitorsLibraryMonitor MonitorsLib
9392
_, err := s.Put(urlWithParams, monitorsLibraryMonitor)
9493

9594
return err
95+
}
96+
97+
func (s *Client) MoveMonitorsLibraryMonitor(monitorsLibraryMonitor MonitorsLibraryMonitor) error {
98+
urlWithoutParams := "v1/monitors/%s"
99+
paramString := ""
100+
sprintfArgs := []interface{}{}
101+
sprintfArgs = append(sprintfArgs, monitorsLibraryMonitor.ID)
102+
103+
paramString += "?"
104+
queryParam := fmt.Sprintf("parentId=%s&", monitorsLibraryMonitor.ParentID)
105+
paramString += queryParam
106+
107+
urlWithParams := fmt.Sprintf(urlWithoutParams+paramString, sprintfArgs...)
108+
109+
monitorsLibraryMonitor.ID = ""
110+
111+
_, err := s.Put(urlWithParams, monitorsLibraryMonitor)
96112

113+
return err
97114
}
98115

99116
// ---------- TYPES ----------

0 commit comments

Comments
 (0)