Skip to content

Commit 073fa8f

Browse files
feat: Allow enabling/disabling of benchark tasks (#119)
1 parent c8592a4 commit 073fa8f

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

sysdig/internal/client/secure/benchmark_task.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ func (client *sysdigSecureClient) benchmarkTaskByIdURL(id string) string {
1515
return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s", client.URL, id)
1616
}
1717

18+
func (client *sysdigSecureClient) setBenchmarkTaskEnabledURL(id string, enabled bool) string {
19+
if enabled {
20+
return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s/enable", client.URL, id)
21+
22+
}
23+
24+
return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s/disable", client.URL, id)
25+
}
26+
1827
func (client *sysdigSecureClient) CreateBenchmarkTask(ctx context.Context, task *BenchmarkTask) (*BenchmarkTask, error) {
1928
response, err := client.doSysdigSecureRequest(ctx, http.MethodPost, client.createBenchmarkTaskURL(), task.ToJSON())
2029
if err != nil {
@@ -62,3 +71,15 @@ func (client *sysdigSecureClient) DeleteBenchmarkTask(ctx context.Context, id st
6271
}
6372
return nil
6473
}
74+
75+
func (client *sysdigSecureClient) SetBenchmarkTaskEnabled(ctx context.Context, id string, enabled bool) error {
76+
response, err := client.doSysdigSecureRequest(ctx, http.MethodPut, client.setBenchmarkTaskEnabledURL(id, enabled), nil)
77+
if err != nil {
78+
return err
79+
}
80+
81+
if response.StatusCode != http.StatusOK {
82+
return errorFromResponse(response)
83+
}
84+
return nil
85+
}

sysdig/internal/client/secure/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ type SysdigSecureClient interface {
6262
CreateBenchmarkTask(context.Context, *BenchmarkTask) (*BenchmarkTask, error)
6363
GetBenchmarkTask(context.Context, string) (*BenchmarkTask, error)
6464
DeleteBenchmarkTask(context.Context, string) error
65+
SetBenchmarkTaskEnabled(context.Context, string, bool) error
6566
}
6667

6768
func WithExtraHeaders(client SysdigSecureClient, extraHeaders map[string]string) SysdigSecureClient {

sysdig/resource_sysdig_secure_benchmark_task.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func resourceSysdigSecureBenchmarkTask() *schema.Resource {
1717
return &schema.Resource{
1818
CreateContext: resourceSysdigSecureBenchmarkTaskCreate,
1919
ReadContext: resourceSysdigSecureBenchmarkTaskRead,
20+
UpdateContext: resourceSysdigSecureBenchmarkTaskUpdate,
2021
DeleteContext: resourceSysdigSecureBenchmarkTaskDelete,
2122
Importer: &schema.ResourceImporter{
2223
StateContext: schema.ImportStatePassthroughContext,
@@ -57,7 +58,6 @@ func resourceSysdigSecureBenchmarkTask() *schema.Resource {
5758
Type: schema.TypeBool,
5859
Optional: true,
5960
Default: true,
60-
ForceNew: true,
6161
},
6262
},
6363
}
@@ -107,6 +107,25 @@ func resourceSysdigSecureBenchmarkTaskRead(ctx context.Context, d *schema.Resour
107107
return nil
108108
}
109109

110+
func resourceSysdigSecureBenchmarkTaskUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
111+
client, err := meta.(SysdigClients).sysdigSecureClient()
112+
if err != nil {
113+
d.SetId("")
114+
return diag.FromErr(err)
115+
}
116+
117+
enabled := d.Get("enabled").(bool)
118+
119+
if err := client.SetBenchmarkTaskEnabled(ctx, d.Id(), enabled); err != nil {
120+
d.SetId("")
121+
return diag.FromErr(err)
122+
}
123+
124+
d.Set("enabled", enabled)
125+
126+
return nil
127+
}
128+
110129
func resourceSysdigSecureBenchmarkTaskDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
111130
client, err := meta.(SysdigClients).sysdigSecureClient()
112131
if err != nil {

0 commit comments

Comments
 (0)