Skip to content

Commit fddd1b1

Browse files
Merge pull request #110 from chkp-alonshev/master
V1.8.0
2 parents 20e10b3 + 30207f5 commit fddd1b1

File tree

39 files changed

+5058
-164
lines changed

39 files changed

+5058
-164
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
## 1.8.0 (May 22, 2022)
2+
3+
FEATURES
4+
5+
* **New Resource:** `resource_checkpoint_management_threat_ioc_feed`
6+
* **New Resource:** `resource_checkpoint_management_domain`
7+
* **New Resource:** `resource_checkpoint_management_add_repository_package`
8+
* **New Resource:** `resource_checkpoint_management_delete_repository_package`
9+
* **New Resource:** `resource_checkpoint_management_time`
10+
* **New Resource:** `resource_checkpoint_management_trusted_client`
11+
* **New Data Source:** `data_source_checkpoint_management_threat_ioc_feed`
12+
* **New Data Source:** `data_source_checkpoint_management_domain`
13+
* **New Data Source:** `data_source_checkpoint_management_repository_package`
14+
* **New Data Source:** `data_source_checkpoint_management_time`
15+
* **New Data Source:** `data_source_checkpoint_management_trusted_client`
16+
17+
ENHANCEMENTS
18+
19+
* `data_source_checkpoint_management_simple_gateway` - Add support to `application_control_and_url_filtering_settings` field.
20+
* `resource_checkpoint_management_simple_gateway` - Add support to `application_control_and_url_filtering_settings` field.
21+
22+
BUG FIXES
23+
24+
* `resource_checkpoint_management_checkpoint_host` - Fix bug that the `logs_settings` field forced user to put default values as input. Made name field optional and not required.
25+
* `data_source_checkpoint_management_checkpoint_host` - Fix bug that the `logs_settings` field forced user to put default values as input. Made name field optional and not required.
26+
* `resource_checkpoint_management_aws_data_center_server` - Fix bug that the `enable_sts_assume_role` field treated as string instead of bool.
27+
128
## 1.7.0 (February 24, 2022)
229

330
ENHANCEMENTS

checkpoint/data_source_checkpoint_management_checkpoint_host.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,7 @@ func dataSourceManagementCheckpointHostRead(d *schema.ResourceData, m interface{
479479
}
480480
interfacesListToReturn = append(interfacesListToReturn, interfacesMapToAdd)
481481
}
482+
_ = d.Set("interfaces", interfacesListToReturn)
482483
}
483484
}
484485
}
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
package checkpoint
2+
3+
import (
4+
"fmt"
5+
checkpoint "github.com/CheckPointSW/cp-mgmt-api-go-sdk/APIFiles"
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
7+
"log"
8+
"strconv"
9+
)
10+
11+
func dataSourceManagementDomain() *schema.Resource {
12+
return &schema.Resource{
13+
Read: dataSourceManagementDomainRead,
14+
Schema: map[string]*schema.Schema{
15+
"name": {
16+
Type: schema.TypeString,
17+
Optional: true,
18+
Description: "Object name.",
19+
},
20+
"uid": {
21+
Type: schema.TypeString,
22+
Computed: true,
23+
Description: "Object unique identifier.",
24+
},
25+
"servers": {
26+
Type: schema.TypeList,
27+
Computed: true,
28+
Description: "Domain servers.",
29+
Elem: &schema.Resource{
30+
Schema: map[string]*schema.Schema{
31+
"name": {
32+
Type: schema.TypeString,
33+
Computed: true,
34+
Description: "Object name. Must be unique in the domain.",
35+
},
36+
"ipv4_address": {
37+
Type: schema.TypeString,
38+
Computed: true,
39+
Description: "IPv4 address.",
40+
},
41+
"ipv6_address": {
42+
Type: schema.TypeString,
43+
Computed: true,
44+
Description: "IPv6 address.",
45+
},
46+
"multi_domain_server": {
47+
Type: schema.TypeString,
48+
Required: true,
49+
Description: "Multi Domain server name or UID.",
50+
},
51+
"active": {
52+
Type: schema.TypeBool,
53+
Computed: true,
54+
Description: "Activate domain server. Only one domain server is allowed to be active.",
55+
},
56+
"skip_start_domain_server": {
57+
Type: schema.TypeBool,
58+
Computed: true,
59+
Description: "Set this value to be true to prevent starting the new created domain.",
60+
},
61+
"type": {
62+
Type: schema.TypeString,
63+
Computed: true,
64+
Description: "Domain server type.",
65+
},
66+
},
67+
},
68+
},
69+
"color": {
70+
Type: schema.TypeString,
71+
Computed: true,
72+
Description: "Color of the object. Should be one of existing colors.",
73+
},
74+
"comments": {
75+
Type: schema.TypeString,
76+
Computed: true,
77+
Description: "Comments string.",
78+
},
79+
},
80+
}
81+
}
82+
83+
func dataSourceManagementDomainRead(d *schema.ResourceData, m interface{}) error {
84+
client := m.(*checkpoint.ApiClient)
85+
86+
name := d.Get("name").(string)
87+
uid := d.Get("uid").(string)
88+
89+
payload := make(map[string]interface{})
90+
91+
if name != "" {
92+
payload["name"] = name
93+
} else if uid != "" {
94+
payload["uid"] = uid
95+
}
96+
97+
showDomainRes, err := client.ApiCall("show-domain", payload, client.GetSessionID(), true, client.IsProxyUsed())
98+
if err != nil {
99+
return fmt.Errorf(err.Error())
100+
}
101+
if !showDomainRes.Success {
102+
return fmt.Errorf(showDomainRes.ErrorMsg)
103+
}
104+
105+
domain := showDomainRes.GetData()
106+
107+
log.Println("Read Domain - Show JSON = ", domain)
108+
109+
if v := domain["uid"]; v != nil {
110+
_ = d.Set("uid", v)
111+
d.SetId(v.(string))
112+
}
113+
114+
if v := domain["name"]; v != nil {
115+
_ = d.Set("name", v)
116+
}
117+
118+
if domain["servers"] != nil {
119+
120+
serversList, ok := domain["servers"].([]interface{})
121+
122+
if ok {
123+
124+
if len(serversList) > 0 {
125+
126+
var serversListToReturn []map[string]interface{}
127+
128+
for i := range serversList {
129+
130+
serversMap := serversList[i].(map[string]interface{})
131+
132+
serversMapToAdd := make(map[string]interface{})
133+
134+
if v, _ := serversMap["name"]; v != nil {
135+
serversMapToAdd["name"] = v
136+
}
137+
if v, _ := serversMap["ipv4-address"]; v != nil {
138+
serversMapToAdd["ipv4_address"] = v
139+
}
140+
if v, _ := serversMap["ipv6-address"]; v != nil {
141+
serversMapToAdd["ipv4_address"] = v
142+
}
143+
if v, _ := serversMap["multi-domain-server"]; v != nil {
144+
serversMapToAdd["multi_domain_server"] = v
145+
}
146+
if v, _ := serversMap["active"]; v != nil {
147+
serversMapToAdd["active"] = strconv.FormatBool(v.(bool))
148+
} else {
149+
serversMapToAdd["active"] = true
150+
}
151+
if v, _ := serversMap["skip-start-domain-server"]; v != nil {
152+
serversMapToAdd["skip_start_domain_server"] = strconv.FormatBool(v.(bool))
153+
} else {
154+
serversMapToAdd["skip_start_domain_server"] = false
155+
}
156+
if v, _ := serversMap["type"]; v != nil {
157+
serversMapToAdd["type"] = v
158+
}
159+
160+
serversListToReturn = append(serversListToReturn, serversMapToAdd)
161+
}
162+
_ = d.Set("servers", serversListToReturn)
163+
}
164+
}
165+
}
166+
167+
if v := domain["color"]; v != nil {
168+
_ = d.Set("color", v)
169+
}
170+
171+
if v := domain["comments"]; v != nil {
172+
_ = d.Set("comments", v)
173+
}
174+
175+
return nil
176+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package checkpoint
2+
3+
import (
4+
"fmt"
5+
"github.com/hashicorp/terraform-plugin-sdk/helper/acctest"
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
7+
"os"
8+
"testing"
9+
)
10+
11+
func TestAccDataSourceCheckpointManagementDomain_basic(t *testing.T) {
12+
objName := "tfTestManagementDomain_" + acctest.RandString(6)
13+
resourceName := "checkpoint_management_domain.test"
14+
dataSourceName := "data.checkpoint_management_domain.data_test"
15+
16+
context := os.Getenv("CHECKPOINT_CONTEXT")
17+
if context != "web_api" {
18+
t.Skip("Skipping management test")
19+
} else if context == "" {
20+
t.Skip("Env CHECKPOINT_CONTEXT must be specified to run this acc test")
21+
}
22+
23+
resource.Test(t, resource.TestCase{
24+
PreCheck: func() { testAccPreCheck(t) },
25+
Providers: testAccProviders,
26+
Steps: []resource.TestStep{
27+
{
28+
Config: testAccDataSourceManagementDomainConfig(objName),
29+
Check: resource.ComposeTestCheckFunc(
30+
resource.TestCheckResourceAttrPair(dataSourceName, "name", resourceName, "name"),
31+
),
32+
},
33+
},
34+
})
35+
}
36+
37+
func testAccDataSourceManagementDomainConfig(name string) string {
38+
return fmt.Sprintf(`
39+
resource "checkpoint_management_domain" "test" {
40+
name = "%s"
41+
servers {
42+
name = "serv"
43+
ipv4_address = "1.2.3.4"
44+
multi_domain_server = "5.5.5.5"
45+
}
46+
47+
}
48+
49+
data "checkpoint_management_domain" "data_test" {
50+
name = "${checkpoint_management_domain.test.name}"
51+
}
52+
`, name)
53+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package checkpoint
2+
3+
import (
4+
"fmt"
5+
checkpoint "github.com/CheckPointSW/cp-mgmt-api-go-sdk/APIFiles"
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
7+
"log"
8+
)
9+
10+
func dataSourceManagementRepositoryPackage() *schema.Resource {
11+
return &schema.Resource{
12+
Read: dataSourceManagementRepositoryPackageRead,
13+
Schema: map[string]*schema.Schema{
14+
"name": {
15+
Type: schema.TypeString,
16+
Required: true,
17+
Description: "The name of the repository package.",
18+
},
19+
"task_id": {
20+
Type: schema.TypeString,
21+
Computed: true,
22+
Description: "Unique identifier of the 'show-repository-package' task. Use the 'show-task' command to check the progress of the task.",
23+
},
24+
},
25+
}
26+
}
27+
28+
func dataSourceManagementRepositoryPackageRead(d *schema.ResourceData, m interface{}) error {
29+
client := m.(*checkpoint.ApiClient)
30+
31+
name := d.Get("name").(string)
32+
33+
payload := make(map[string]interface{})
34+
35+
payload["name"] = name
36+
37+
showRepositoryPackageRes, err := client.ApiCall("show-repository-package", payload, client.GetSessionID(), true, client.IsProxyUsed())
38+
if err != nil {
39+
return fmt.Errorf(err.Error())
40+
}
41+
if !showRepositoryPackageRes.Success {
42+
return fmt.Errorf(showRepositoryPackageRes.ErrorMsg)
43+
}
44+
45+
RepositoryPackage := showRepositoryPackageRes.GetData()
46+
47+
log.Println("Read RepositoryPackage - Show JSON = ", RepositoryPackage)
48+
49+
if v := RepositoryPackage["uid"]; v != nil {
50+
_ = d.Set("uid", v)
51+
d.SetId(v.(string))
52+
} else {
53+
d.SetId("ff")
54+
}
55+
56+
if v, ok := d.GetOk("name"); ok {
57+
_ = d.Set("name", v.(string))
58+
}
59+
60+
if v, ok := d.GetOk("task_id"); ok {
61+
_ = d.Set("task_id", v.(string))
62+
}
63+
64+
return nil
65+
}

0 commit comments

Comments
 (0)