Skip to content

Commit a029d59

Browse files
authored
#284 Add support for CSE Log mapping
Add support for CSE Log mapping
2 parents 4e0a1e0 + bc00285 commit a029d59

12 files changed

+1153
-16
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ FEATURES:
1010
* **New Resource:** sumologic_cse_insights_resolution (GH-274)
1111
* **New Resource:** sumologic_cse_insights_status (GH-274)
1212
* **New Resource:** sumologic_cse_insights_configuration (GH-274)
13+
* **New Resource:** sumologic_cse_log_mapping (GH-284)
14+
* **New Datasource:** sumologic_cse_log_mapping_vendor_product (GH-284)
1315

1416
BUG FIXES:
1517

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package sumologic
2+
3+
import (
4+
"fmt"
5+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
6+
)
7+
8+
func dataSourceCSELogMappingVendorAndProduct() *schema.Resource {
9+
10+
return &schema.Resource{
11+
Read: dataSourceCSELogMappingVendorAndProductRead,
12+
Schema: map[string]*schema.Schema{
13+
"guid": {
14+
Type: schema.TypeString,
15+
Optional: true,
16+
Computed: true,
17+
},
18+
"product": {
19+
Type: schema.TypeString,
20+
Required: true,
21+
},
22+
"vendor": {
23+
Type: schema.TypeString,
24+
Required: true,
25+
},
26+
},
27+
}
28+
29+
}
30+
31+
func dataSourceCSELogMappingVendorAndProductRead(d *schema.ResourceData, meta interface{}) error {
32+
c := meta.(*Client)
33+
34+
id := d.Id()
35+
36+
vendorAndProduct, err := c.GetCSELogMappingVendorsAndProducts(d.Get("product").(string), d.Get("vendor").(string))
37+
38+
if err != nil {
39+
return err
40+
}
41+
42+
if vendorAndProduct == nil {
43+
d.SetId("")
44+
return fmt.Errorf("Vendor product not found, removing from state: %v", id)
45+
}
46+
47+
d.SetId(vendorAndProduct.GUID)
48+
d.Set("guid", vendorAndProduct.GUID)
49+
d.Set("product", vendorAndProduct.Product)
50+
d.Set("vendor", vendorAndProduct.Vendor)
51+
52+
return nil
53+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package sumologic
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
7+
)
8+
9+
func TestAccDataSourceCSELogMappingVendorProduct_basic(t *testing.T) {
10+
resource.Test(t, resource.TestCase{
11+
PreCheck: func() { testAccPreCheck(t) },
12+
Providers: testAccProviders,
13+
Steps: []resource.TestStep{
14+
{
15+
Config: testDataSourceSumologicCSELogMappingVendorProduct,
16+
Check: resource.ComposeTestCheckFunc(
17+
testAccDataSourceSumologicCSELogMappingVendorProductCheck("data.sumologic_cse_log_mapping_vendor_product.web_gateway"),
18+
),
19+
},
20+
},
21+
})
22+
}
23+
24+
func testAccDataSourceSumologicCSELogMappingVendorProductCheck(name string) resource.TestCheckFunc {
25+
return resource.ComposeTestCheckFunc(
26+
resource.TestCheckResourceAttrSet(name, "product"),
27+
resource.TestCheckResourceAttr(name, "product", "Web Gateway"),
28+
resource.TestCheckResourceAttrSet(name, "vendor"),
29+
resource.TestCheckResourceAttr(name, "vendor", "McAfee"),
30+
resource.TestCheckResourceAttrSet(name, "guid"),
31+
)
32+
}
33+
34+
var testDataSourceSumologicCSELogMappingVendorProduct = `
35+
data "sumologic_cse_log_mapping_vendor_product" "web_gateway" {
36+
product = "Web Gateway"
37+
vendor = "McAfee"
38+
}
39+
`

sumologic/provider.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ func Provider() terraform.ResourceProvider {
4343
},
4444
},
4545
ResourcesMap: map[string]*schema.Resource{
46+
"sumologic_cse_log_mapping": resourceSumologicCSELogMapping(),
4647
"sumologic_cse_rule_tuning_expression": resourceSumologicCSERuleTuningExpression(),
4748
"sumologic_cse_network_block": resourceSumologicCSENetworkBlock(),
4849
"sumologic_cse_custom_entity_type": resourceSumologicCSECustomEntityType(),
@@ -90,13 +91,14 @@ func Provider() terraform.ResourceProvider {
9091
"sumologic_hierarchy": resourceSumologicHierarchy(),
9192
},
9293
DataSourcesMap: map[string]*schema.Resource{
93-
"sumologic_admin_recommended_folder": dataSourceSumologicAdminRecommendedFolder(),
94-
"sumologic_caller_identity": dataSourceSumologicCallerIdentity(),
95-
"sumologic_collector": dataSourceSumologicCollector(),
96-
"sumologic_http_source": dataSourceSumologicHTTPSource(),
97-
"sumologic_personal_folder": dataSourceSumologicPersonalFolder(),
98-
"sumologic_my_user_id": dataSourceSumologicMyUserId(),
99-
"sumologic_role": dataSourceSumologicRole(),
94+
"sumologic_cse_log_mapping_vendor_product": dataSourceCSELogMappingVendorAndProduct(),
95+
"sumologic_admin_recommended_folder": dataSourceSumologicAdminRecommendedFolder(),
96+
"sumologic_caller_identity": dataSourceSumologicCallerIdentity(),
97+
"sumologic_collector": dataSourceSumologicCollector(),
98+
"sumologic_http_source": dataSourceSumologicHTTPSource(),
99+
"sumologic_personal_folder": dataSourceSumologicPersonalFolder(),
100+
"sumologic_my_user_id": dataSourceSumologicMyUserId(),
101+
"sumologic_role": dataSourceSumologicRole(),
100102
},
101103
ConfigureFunc: providerConfigure,
102104
}

0 commit comments

Comments
 (0)