-
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_machine_learning_workspace_network_outbound_rule_service_tag
#27931
base: main
Are you sure you want to change the base?
Conversation
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.
Local test passed. The API throttling not happed in my test env. Will retry running the test
|
var model machineLearningWorkspaceServiceTagOutboundRuleModel | ||
if err := metadata.Decode(&model); err != nil { | ||
return fmt.Errorf("decoding: %+v", err) | ||
} | ||
|
||
client := metadata.Client.MachineLearning.ManagedNetwork | ||
subscriptionId := metadata.Client.Account.SubscriptionId |
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.
Ordering here is not consistent with the vast majority of the provider, please order these correctly going forward
var model machineLearningWorkspaceServiceTagOutboundRuleModel | |
if err := metadata.Decode(&model); err != nil { | |
return fmt.Errorf("decoding: %+v", err) | |
} | |
client := metadata.Client.MachineLearning.ManagedNetwork | |
subscriptionId := metadata.Client.Account.SubscriptionId | |
client := metadata.Client.MachineLearning.ManagedNetwork | |
subscriptionId := metadata.Client.Account.SubscriptionId | |
var model machineLearningWorkspaceServiceTagOutboundRuleModel | |
if err := metadata.Decode(&model); err != nil { | |
return fmt.Errorf("decoding: %+v", err) | |
} |
var model machineLearningWorkspaceServiceTagOutboundRuleModel | ||
if err := metadata.Decode(&model); err != nil { | ||
return fmt.Errorf("decoding: %+v", err) | ||
} | ||
|
||
client := metadata.Client.MachineLearning.ManagedNetwork |
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.
Please fix the ordering here
serviceTagOutboundRule := managednetwork.ServiceTagOutboundRule{ | ||
Type: managednetwork.RuleTypeServiceTag, | ||
Category: pointer.To(managednetwork.RuleCategoryUserDefined), | ||
Destination: &managednetwork.ServiceTagDestination{}, | ||
} |
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.
Why do we need to define this, it should already exist under payload.Properties
model := resp.Model | ||
if model == nil { | ||
return fmt.Errorf("retrieving %s: model was nil", id) | ||
} | ||
|
||
state := machineLearningWorkspaceServiceTagOutboundRuleModel{ | ||
Name: id.OutboundRuleName, | ||
} | ||
|
||
if props := model.Properties; props != nil { | ||
if prop, ok := props.(managednetwork.ServiceTagOutboundRule); ok && prop.Destination != nil { | ||
if prop.Destination.ServiceTag != nil { | ||
state.ServiceTag = *prop.Destination.ServiceTag | ||
} | ||
|
||
if prop.Destination.Protocol != nil { | ||
state.Protocol = *prop.Destination.Protocol | ||
} | ||
|
||
if prop.Destination.PortRanges != nil { | ||
state.PortRanges = *prop.Destination.PortRanges | ||
} | ||
} | ||
} |
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.
Please review how we nil check model and properties in the read when setting values into state in the contributor guidelines and update this accordingly
future, err := client.SettingsRuleDelete(ctx, *id) | ||
if err != nil { | ||
return fmt.Errorf("deleting Machine Learning Workspace Service Tag Network Outbound Rule %q (Resource Group %q, Workspace %q): %+v", id.OutboundRuleName, id.ResourceGroupName, id.WorkspaceName, err) | ||
} | ||
|
||
if err = future.Poller.PollUntilDone(ctx); err != nil { | ||
return fmt.Errorf("waiting for deletion of Machine Learning Workspace Service Tag Network Outbound Rule %q (Resource Group %q, Workspace %q): %+v", id.OutboundRuleName, id.ResourceGroupName, id.WorkspaceName, err) | ||
} |
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.
future, err := client.SettingsRuleDelete(ctx, *id) | |
if err != nil { | |
return fmt.Errorf("deleting Machine Learning Workspace Service Tag Network Outbound Rule %q (Resource Group %q, Workspace %q): %+v", id.OutboundRuleName, id.ResourceGroupName, id.WorkspaceName, err) | |
} | |
if err = future.Poller.PollUntilDone(ctx); err != nil { | |
return fmt.Errorf("waiting for deletion of Machine Learning Workspace Service Tag Network Outbound Rule %q (Resource Group %q, Workspace %q): %+v", id.OutboundRuleName, id.ResourceGroupName, id.WorkspaceName, err) | |
} | |
if err := client.SettingsRuleDeleteThenPoll(ctx, *id); err != nil { | |
return fmt.Errorf("deleting %s: %+v", id, err) | |
} |
layout: "azurerm" | ||
page_title: "Azure Resource Manager: azurerm_machine_learning_workspace_network_outbound_rule_service_tag" | ||
description: |- | ||
Manages an Azure Machine Learning Workspace Service Tag Network Outbound Rule . |
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.
The resource is called network outbound rule service tag, but here we're saying manages a service tag network outbound rule. Is this a tag or a rule?
Manages an Azure Machine Learning Workspace Service Tag Network Outbound Rule . | |
Manages an Azure Machine Learning Workspace Service Tag Network Outbound Rule. |
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.
Service Tag is a type of the network rule. Others are FQNN, Private Endpoint
resource_group { | ||
prevent_deletion_if_contains_resources = false | ||
} |
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.
This should never be set in acceptance tests
resource_group { | |
prevent_deletion_if_contains_resources = false | |
} |
resource_group { | ||
prevent_deletion_if_contains_resources = false | ||
} |
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.
resource_group { | |
prevent_deletion_if_contains_resources = false | |
} |
|
||
The following arguments are supported: | ||
|
||
* `name` - (Required) Specifies the name of the Machine Learning Workspace FQDN Network Outbound Rule. Changing this forces a new resource to be created. |
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.
Now we're calling this an FQDN Network Outbound Rule here when there was no mention of it before. Is FQDN relevant here?
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.
We're referring to this resource in 4 different ways
resource name: azurerm_machine_learning_workspace_network_outbound_rule_service_tag
description: azure machine learning workspace service tag network outbound rule
id attributes: Machine Learning Workspace Network Outbound Rule
imports and name attribute: Machine Learning Workspace FQDN Network Outbound Rule
Can you please update the doc to refer to the resource consistently
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.
Docs has been updated as suggested
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.
Thanks @xuzhang3 I had a look through this and spotted a few minor things that I commented inline, but once those are fixed up I can take another look. Thanks!
|
||
var _ sdk.ResourceWithUpdate = WorkspaceNetworkOutboundRuleServiceTag{} | ||
|
||
type machineLearningWorkspaceServiceTagOutboundRuleModel struct { |
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.
type machineLearningWorkspaceServiceTagOutboundRuleModel struct { | |
type MachineLearningWorkspaceServiceTagOutboundRuleModel struct { |
if prop.Destination.ServiceTag != nil { | ||
state.ServiceTag = *prop.Destination.ServiceTag | ||
} | ||
|
||
if prop.Destination.Protocol != nil { | ||
state.Protocol = *prop.Destination.Protocol | ||
} | ||
|
||
if prop.Destination.PortRanges != nil { | ||
state.PortRanges = *prop.Destination.PortRanges | ||
} |
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.
if prop.Destination.ServiceTag != nil { | |
state.ServiceTag = *prop.Destination.ServiceTag | |
} | |
if prop.Destination.Protocol != nil { | |
state.Protocol = *prop.Destination.Protocol | |
} | |
if prop.Destination.PortRanges != nil { | |
state.PortRanges = *prop.Destination.PortRanges | |
} | |
state.ServiceTag = pointer.From(prop.Destination.ServiceTag) | |
state.Protocol = pointer.From(prop.Destination.Protocol) | |
state.PortRanges = pointer.From(prop.Destination.PortRanges) |
|
||
* `protocol` - (Required) Specifies the network protocol. Possible values are `*`, `TCP`, `UDP` and `ICMP` | ||
|
||
* `port_ranges` - (Required) Specifies which ports traffic will be allowed by this rule. Provide a single port, such as 80; a port range, such as 1024-655535; or a comma-separated list of single ports and/or port ranges, such as 80,1024-655535. Provide an asterisk(*) to allow traffic on any port. |
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.
* `port_ranges` - (Required) Specifies which ports traffic will be allowed by this rule. Provide a single port, such as 80; a port range, such as 1024-655535; or a comma-separated list of single ports and/or port ranges, such as 80,1024-655535. Provide an asterisk(*) to allow traffic on any port. | |
* `port_ranges` - (Required) Specifies which ports traffic will be allowed by this rule. You can specify a single port (e.g. ` 80`) , a port range (e.g. `1024-655535`) or a comma-separated list of single ports and/or port ranges(e.g. `80,1024-655535`). `*` can be used to allow traffic on any port. |
Thanks for reviewing, updated as suggested |
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.
Thanks @xuzhang3 this is looking good now, however it appears there are some conflicts needing resolved before this can be merged.
Community Note
Description
Add support for Machine Learning Workspace Service Tag Network Outbound Rule :
azurerm_machine_learning_workspace_network_outbound_rule_service_tag
PR Checklist
For example: “
resource_name_here
- description of change e.g. adding propertynew_property_name_here
”Changes to existing Resource / Data Source
Testing
Change Log
Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.
azurerm_resource
- support for thething1
property [GH-00000]This is a (please select all that apply):
Related Issue(s)
Fixes #0000
Note
If this PR changes meaningfully during the course of review please update the title and description as required.