-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathresource_sysdig_secure_managed_policy_test.go
133 lines (116 loc) · 3.11 KB
/
resource_sysdig_secure_managed_policy_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//go:build tf_acc_sysdig_secure || tf_acc_policies || tf_acc_onprem_secure
package sysdig_test
import (
"fmt"
"os"
"testing"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/draios/terraform-provider-sysdig/sysdig"
)
func TestAccManagedPolicy(t *testing.T) {
rText := func() string { return acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum) }
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() {
if v := os.Getenv("SYSDIG_SECURE_API_TOKEN"); v == "" {
t.Fatal("SYSDIG_SECURE_API_TOKEN must be set for acceptance tests")
}
},
ProviderFactories: map[string]func() (*schema.Provider, error){
"sysdig": func() (*schema.Provider, error) {
return sysdig.Provider(), nil
},
},
Steps: []resource.TestStep{
{
Config: managedPolicyWithoutNotificationChannels(),
},
{
Config: managedPolicyWithoutActions(rText()),
},
{
Config: managedPolicy(rText()),
},
{
Config: managedPolicyWithMinimumConfiguration(),
},
{
Config: managedPolicyWithKillAction(),
Destroy: true,
},
},
})
}
func managedPolicy(name string) string {
return fmt.Sprintf(`
%s
resource "sysdig_secure_managed_policy" "sample" {
name = "Sysdig Runtime Threat Detection"
enabled = true
scope = "container.id != \"\""
disabled_rules = ["Hexadecimal string detected"]
runbook = "https://sysdig.com"
actions {
container = "stop"
capture {
seconds_before_event = 5
seconds_after_event = 10
name = "testcapture"
}
}
notification_channels = [sysdig_secure_notification_channel_email.sample_email.id]
}
`, secureNotificationChannelEmailWithName(name))
}
func managedPolicyWithoutActions(name string) string {
return fmt.Sprintf(`
%s
resource "sysdig_secure_managed_policy" "sample" {
name = "Sysdig Runtime Threat Detection"
enabled = true
scope = "container.id != \"\""
disabled_rules = ["Hexadecimal string detected"]
runbook = "https://sysdig.com"
actions {}
notification_channels = [sysdig_secure_notification_channel_email.sample_email.id]
}
`, secureNotificationChannelEmailWithName(name))
}
func managedPolicyWithoutNotificationChannels() string {
return `
resource "sysdig_secure_managed_policy" "sample" {
name = "Sysdig Runtime Threat Detection"
enabled = true
scope = "container.id != \"\""
disabled_rules = ["Hexadecimal string detected"]
runbook = "https://sysdig.com"
actions {
container = "stop"
capture {
seconds_before_event = 5
seconds_after_event = 10
name = "testcapture"
}
}
}`
}
func managedPolicyWithMinimumConfiguration() string {
return `
resource "sysdig_secure_managed_policy" "sample" {
name = "Sysdig Runtime Threat Detection"
enabled = true
}`
}
func managedPolicyWithKillAction() string {
return `resource "sysdig_secure_managed_policy" "sample" {
name = "Sysdig Runtime Threat Detection"
enabled = true
scope = "container.id != \"\""
disabled_rules = ["Hexadecimal string detected"]
runbook = "https://sysdig.com"
actions {
container = "kill"
}
}`
}