CodeBleu commented on issue #106:
URL: 
https://github.com/apache/cloudstack-terraform-provider/issues/106#issuecomment-2147673784

   I wish I new more Go so I could write a proper go test for this.  I was able 
to do a basic test of adding descriptions to Rules and also adding Rules with a 
Rule ID # ( as along as the existing Rule ID #  doesn't exist).  Updating 
existing rule with a Rule ID # that already exists produces the following:
   
   > * CloudStack API error 431 (CSExceptionErrorCode: 4350): ACL item with 
number 1 already exists in ACL: 8590d921-9972-4a71-9d28-e4b5616faed2
   
   I would have submitted a PR if I had some better logic to handle existing 
Rule ID #'s and proper testing, but since I'm a n00b at this Go stuff I figured 
I'd at least post the git diff patch :smile: 
   
   ```
   diff --git a/cloudstack/resource_cloudstack_network_acl_rule.go 
b/cloudstack/resource_cloudstack_network_acl_rule.go
   index f2daac7..12590ac 100644
   --- a/cloudstack/resource_cloudstack_network_acl_rule.go
   +++ b/cloudstack/resource_cloudstack_network_acl_rule.go
   @@ -63,6 +63,16 @@ func resourceCloudStackNetworkACLRule() *schema.Resource {
                               Default:  "allow",
                           },
   
   +                       "description": {
   +                           Type:     schema.TypeString,
   +                           Optional: true,
   +                       },
   +
   +                       "rule_id": {
   +                           Type:     schema.TypeInt,
   +                           Optional: true,
   +                       },
   +
                           "cidr_list": {
                               Type:     schema.TypeSet,
                               Required: true,
   @@ -198,6 +208,14 @@ func createNetworkACLRule(d *schema.ResourceData, meta 
interface{}, rule map[str
       // Create a new parameter struct
       p := cs.NetworkACL.NewCreateNetworkACLParams(rule["protocol"].(string))
   
   +   if desc, ok := rule["description"]; ok {
   +       p.SetReason(desc.(string))
   +   }
   +
   +   if ruleId, ok := rule["rule_id"]; ok {
   +       p.SetNumber(ruleId.(int))
   +   }
   +
       // Set the acl ID
       p.SetAclid(d.Id())
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to