Skip to content

Commit 3fd092e

Browse files
author
Josh Williams
committed
Merge branch 'master' of github.com:SumoLogic/terraform-provider-sumologic into cse-rule-resource
2 parents 12ece15 + a029d59 commit 3fd092e

14 files changed

+1159
-20
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ on:
1414
- 'README.md'
1515
- 'CHANGELOG.md'
1616
# For systems with an upstream API that could drift unexpectedly (like most SaaS systems, etc.),
17-
# we recommend testing at a regular interval not necessarily tied to code changes. This will
17+
# we recommend testing at a regular interval not necessarily tied to code changes. This will
1818
# ensure you are alerted to something breaking due to an API change, even if the code did not
1919
# change.
2020
schedule:
@@ -47,7 +47,7 @@ jobs:
4747
name: Matrix Test
4848
needs: build
4949
runs-on: ubuntu-latest
50-
timeout-minutes: 15
50+
timeout-minutes: 20
5151
strategy:
5252
fail-fast: false
5353
matrix:
@@ -68,9 +68,9 @@ jobs:
6868
- name: Get dependencies
6969
run: |
7070
go mod download
71-
71+
7272
- name: TF acceptance tests
73-
timeout-minutes: 10
73+
timeout-minutes: 15
7474
env:
7575
TF_ACC: "1"
7676
TF_ACC_TERRAFORM_VERSION: ${{ matrix.terraform }}

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
* **New Resource:** sumologic_cse_match_rule (GH-287)
1416
* **New Resource:** sumologic_cse_threshold_rule (GH-287)
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(),
@@ -92,13 +93,14 @@ func Provider() terraform.ResourceProvider {
9293
"sumologic_hierarchy": resourceSumologicHierarchy(),
9394
},
9495
DataSourcesMap: map[string]*schema.Resource{
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(),
96+
"sumologic_cse_log_mapping_vendor_product": dataSourceCSELogMappingVendorAndProduct(),
97+
"sumologic_admin_recommended_folder": dataSourceSumologicAdminRecommendedFolder(),
98+
"sumologic_caller_identity": dataSourceSumologicCallerIdentity(),
99+
"sumologic_collector": dataSourceSumologicCollector(),
100+
"sumologic_http_source": dataSourceSumologicHTTPSource(),
101+
"sumologic_personal_folder": dataSourceSumologicPersonalFolder(),
102+
"sumologic_my_user_id": dataSourceSumologicMyUserId(),
103+
"sumologic_role": dataSourceSumologicRole(),
102104
},
103105
ConfigureFunc: providerConfigure,
104106
}

0 commit comments

Comments
 (0)