-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[New Resource:] azurerm_databricks_virtual_network_peering
#20728
Changes from 1 commit
b8e3272
54c4add
9bfdd46
37dd29f
7dd41e2
d25ed01
a7edac1
cffd531
7ddaec2
99fff59
05838f0
c2cef32
4d9c7e4
93d5d18
361abde
51dd98a
b833626
42dab33
ad7868d
4073635
390cbf1
ff03612
d5a2ee6
31efc4d
c42e391
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
…l locks package...
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -4,14 +4,14 @@ import ( | |||||||||||||||||||||||||||||||||||||||||||||||||||
"fmt" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"log" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"strings" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"sync" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"time" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-helpers/lang/response" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/go-azure-sdk/resource-manager/databricks/2023-02-01/vnetpeering" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/helpers/tf" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/clients" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/locks" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/services/databricks/validate" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
"github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -21,7 +21,9 @@ import ( | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
// peerMutex is used to prevent multiple Peering resources being created, updated | ||||||||||||||||||||||||||||||||||||||||||||||||||||
// or deleted at the same time | ||||||||||||||||||||||||||||||||||||||||||||||||||||
var peerMutex = &sync.Mutex{} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
const resourceLock string = "databricks.VnetPeerings" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
var peerMutex = locks.NewMutexKV() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we can use
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
func resourceDatabricksVirtualNetworkPeering() *pluginsdk.Resource { | ||||||||||||||||||||||||||||||||||||||||||||||||||||
return &pluginsdk.Resource{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -173,8 +175,8 @@ func resourceDatabricksVirtualNetworkPeeringCreateUpdate(d *pluginsdk.ResourceDa | |||||||||||||||||||||||||||||||||||||||||||||||||||
Id: utils.String(virtualNetworkId), | ||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
peerMutex.Lock() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
defer peerMutex.Unlock() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
peerMutex.Lock(resourceLock) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
defer peerMutex.Unlock(resourceLock) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this lock should be at the top of the create function, else the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
if err := pluginsdk.Retry(300*time.Second, retryDatabricksVnetPeeringsClientCreateUpdate(d, id, peer, meta)); err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Two things:
If this is still needed, can we instead update this to use a
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -258,8 +260,8 @@ func resourceDatabricksVirtualNetworkPeeringDelete(d *pluginsdk.ResourceData, me | |||||||||||||||||||||||||||||||||||||||||||||||||||
return nil | ||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
peerMutex.Lock() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
defer peerMutex.Unlock() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
peerMutex.Lock(resourceLock) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
defer peerMutex.Unlock(resourceLock) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
// this is a workaround for the SDK issue: https://github.com/hashicorp/go-azure-sdk/issues/351 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
// and will be cleaned up once the fix has been implemented. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
every other lock in the provider uses the resource type here, can we update this to match:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.