Skip to content

Commit

Permalink
feat: Allow enabling/disabling of benchark tasks (#119)
Browse files Browse the repository at this point in the history
  • Loading branch information
nkraemer-sysdig authored Aug 27, 2021
1 parent c8592a4 commit 073fa8f
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 1 deletion.
21 changes: 21 additions & 0 deletions sysdig/internal/client/secure/benchmark_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ func (client *sysdigSecureClient) benchmarkTaskByIdURL(id string) string {
return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s", client.URL, id)
}

func (client *sysdigSecureClient) setBenchmarkTaskEnabledURL(id string, enabled bool) string {
if enabled {
return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s/enable", client.URL, id)

}

return fmt.Sprintf("%s/api/benchmarks/v2/tasks/%s/disable", client.URL, id)
}

func (client *sysdigSecureClient) CreateBenchmarkTask(ctx context.Context, task *BenchmarkTask) (*BenchmarkTask, error) {
response, err := client.doSysdigSecureRequest(ctx, http.MethodPost, client.createBenchmarkTaskURL(), task.ToJSON())
if err != nil {
Expand Down Expand Up @@ -62,3 +71,15 @@ func (client *sysdigSecureClient) DeleteBenchmarkTask(ctx context.Context, id st
}
return nil
}

func (client *sysdigSecureClient) SetBenchmarkTaskEnabled(ctx context.Context, id string, enabled bool) error {
response, err := client.doSysdigSecureRequest(ctx, http.MethodPut, client.setBenchmarkTaskEnabledURL(id, enabled), nil)
if err != nil {
return err
}

if response.StatusCode != http.StatusOK {
return errorFromResponse(response)
}
return nil
}
1 change: 1 addition & 0 deletions sysdig/internal/client/secure/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ type SysdigSecureClient interface {
CreateBenchmarkTask(context.Context, *BenchmarkTask) (*BenchmarkTask, error)
GetBenchmarkTask(context.Context, string) (*BenchmarkTask, error)
DeleteBenchmarkTask(context.Context, string) error
SetBenchmarkTaskEnabled(context.Context, string, bool) error
}

func WithExtraHeaders(client SysdigSecureClient, extraHeaders map[string]string) SysdigSecureClient {
Expand Down
21 changes: 20 additions & 1 deletion sysdig/resource_sysdig_secure_benchmark_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ func resourceSysdigSecureBenchmarkTask() *schema.Resource {
return &schema.Resource{
CreateContext: resourceSysdigSecureBenchmarkTaskCreate,
ReadContext: resourceSysdigSecureBenchmarkTaskRead,
UpdateContext: resourceSysdigSecureBenchmarkTaskUpdate,
DeleteContext: resourceSysdigSecureBenchmarkTaskDelete,
Importer: &schema.ResourceImporter{
StateContext: schema.ImportStatePassthroughContext,
Expand Down Expand Up @@ -57,7 +58,6 @@ func resourceSysdigSecureBenchmarkTask() *schema.Resource {
Type: schema.TypeBool,
Optional: true,
Default: true,
ForceNew: true,
},
},
}
Expand Down Expand Up @@ -107,6 +107,25 @@ func resourceSysdigSecureBenchmarkTaskRead(ctx context.Context, d *schema.Resour
return nil
}

func resourceSysdigSecureBenchmarkTaskUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := meta.(SysdigClients).sysdigSecureClient()
if err != nil {
d.SetId("")
return diag.FromErr(err)
}

enabled := d.Get("enabled").(bool)

if err := client.SetBenchmarkTaskEnabled(ctx, d.Id(), enabled); err != nil {
d.SetId("")
return diag.FromErr(err)
}

d.Set("enabled", enabled)

return nil
}

func resourceSysdigSecureBenchmarkTaskDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := meta.(SysdigClients).sysdigSecureClient()
if err != nil {
Expand Down

0 comments on commit 073fa8f

Please sign in to comment.