Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for ADO audit stream resources #509

Draft
wants to merge 22 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
0409594
feat: add ado org audit streams
ksh5022 Jan 4, 2022
3604288
test: ado audit stream acceptance tests
ksh5022 Jan 4, 2022
df858c4
docs: resource docs for audit streams
ksh5022 Jan 4, 2022
e59be66
docs: updated shell import ref
ksh5022 Jan 7, 2022
e37babc
refactor: rename splunk token and remove unused function input
ksh5022 Jan 7, 2022
b7db962
feat: enable resource flag for audit streams
ksh5022 Jan 8, 2022
a49ccb6
refactor: add display name to state
ksh5022 Jan 9, 2022
a04b71b
test: testacc to change and validate status
ksh5022 Jan 10, 2022
44c94e4
refactor: fmt repeated error messages
ksh5022 Jan 10, 2022
e05e7e3
docs: update provider docs for new arg and attribute
ksh5022 Jan 10, 2022
dfc22c0
style: apply linting fix
ksh5022 Jan 11, 2022
d2e4410
feat: add ado org audit streams
ksh5022 Jan 4, 2022
4a41dfb
test: ado audit stream acceptance tests
ksh5022 Jan 4, 2022
3ed21c8
refactor: rename splunk token and remove unused function input
ksh5022 Jan 7, 2022
933307c
feat: enable resource flag for audit streams
ksh5022 Jan 8, 2022
7efd92e
refactor: add display name to state
ksh5022 Jan 9, 2022
22d1afe
test: testacc to change and validate status
ksh5022 Jan 10, 2022
1182c7f
patch: get stream status
ksh5022 Sep 18, 2022
04eb323
fix: state change conf for created streams
ksh5022 Mar 28, 2023
a5f976e
test: fix test function format
ksh5022 Mar 29, 2023
5256452
patch: upgrade terraform resource packages
ksh5022 Mar 29, 2023
0967e4f
test: skip acceptance test requiring infra
ksh5022 Mar 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions azdosdkmocks/audit_sdk_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
//go:build (all || resource_auditstream_azureeventgrid) && !exclude_auditstreams
// +build all resource_auditstream_azureeventgrid
// +build !exclude_auditstreams

package acceptancetests

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/microsoft/terraform-provider-azuredevops/azuredevops/internal/acceptancetests/testutils"
)

func TestAccAuditStreamAzureEventGrid_CreateAndUpdate(t *testing.T) {
t.Skip("Skipping test TestAccAuditStreamAzureEventGrid_CreateAndUpdate: event grid not provisioned on test infrastructure")
streamType := "AzureEventGrid"

resourceType := "azuredevops_auditstream_azureeventgrid"
tfNode := resourceType + ".test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testutils.PreCheck(t, nil) },
Providers: testutils.GetProviders(),
CheckDestroy: testutils.CheckAuditStreamDestroyed(resourceType),
Steps: []resource.TestStep{
{
Config: testutils.HclAuditStreamAzureEventGrid(true),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "topic_url"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "true"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, true),
),
},
{
Config: testutils.HclAuditStreamAzureEventGrid(false),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "topic_url"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "false"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, false),
),
},
},
})
}

func TestAccAuditStreamAzureEventGrid_CreateDisabled(t *testing.T) {
t.Skip("Skipping test TestAccAuditStreamAzureEventGrid_CreateDisabled: event grid not provisioned on test infrastructure")
streamType := "AzureEventGrid"

resourceType := "azuredevops_auditstream_azureeventgrid"
tfNode := resourceType + ".test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testutils.PreCheck(t, nil) },
Providers: testutils.GetProviders(),
CheckDestroy: testutils.CheckAuditStreamDestroyed(resourceType),
Steps: []resource.TestStep{
{
Config: testutils.HclAuditStreamAzureEventGrid(false),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "topic_url"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "false"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, false),
),
},
{
Config: testutils.HclAuditStreamAzureEventGrid(true),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "topic_url"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "true"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, true),
),
},
},
})
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
//go:build (all || resource_auditstream_azuremonitorlogs) && !exclude_auditstreams
// +build all resource_auditstream_azuremonitorlogs
// +build !exclude_auditstreams

package acceptancetests

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/microsoft/terraform-provider-azuredevops/azuredevops/internal/acceptancetests/testutils"
)

func TestAccAuditStreamAzureMonitorLogs_CreateAndUpdate(t *testing.T) {
t.Skip("Skipping test TestAccAuditStreamAzureMonitorLogs_CreateAndUpdate: Azure Monitor not provisioned on test infrastructure")
streamType := "AzureMonitorLogs"

resourceType := "azuredevops_auditstream_azuremonitorlogs"
tfNode := resourceType + ".test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testutils.PreCheck(t, nil) },
Providers: testutils.GetProviders(),
CheckDestroy: testutils.CheckAuditStreamDestroyed(resourceType),
Steps: []resource.TestStep{
{
Config: testutils.HclAuditStreamAzureMonitorLogs(true),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "workspace_id"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "true"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, true),
),
},
{
Config: testutils.HclAuditStreamAzureMonitorLogs(false),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "workspace_id"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "false"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, false),
),
},
},
})
}

func TestAccAuditStreamAzureMonitorLogs_CreateDisabled(t *testing.T) {
t.Skip("Skipping test TestAccAuditStreamAzureMonitorLogs_CreateDisabled: Azure Monitor not provisioned on test infrastructure")
streamType := "AzureMonitorLogs"

resourceType := "azuredevops_auditstream_azuremonitorlogs"
tfNode := resourceType + ".test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testutils.PreCheck(t, nil) },
Providers: testutils.GetProviders(),
CheckDestroy: testutils.CheckAuditStreamDestroyed(resourceType),
Steps: []resource.TestStep{
{
Config: testutils.HclAuditStreamAzureMonitorLogs(false),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "workspace_id"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "false"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, false),
),
},
{
Config: testutils.HclAuditStreamAzureMonitorLogs(true),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(tfNode, "workspace_id"),
resource.TestCheckResourceAttrSet(tfNode, "enabled"),
resource.TestCheckResourceAttrSet(tfNode, "name"),
resource.TestCheckResourceAttr(tfNode, "enabled", "true"),
testutils.CheckAuditStreamExists(tfNode, streamType),
testutils.CheckAuditStreamStatus(tfNode, true),
),
},
},
})
}
Loading