func resourceFWRuleV1Update(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) networkingClient, err := config.networkingV2Client(d.Get("region").(string)) if err != nil { return fmt.Errorf("Error creating OpenStack networking client: %s", err) } opts := rules.UpdateOpts{} if d.HasChange("name") { opts.Name = d.Get("name").(string) } if d.HasChange("description") { opts.Description = d.Get("description").(string) } if d.HasChange("protocol") { opts.Protocol = d.Get("protocol").(string) } if d.HasChange("action") { opts.Action = d.Get("action").(string) } if d.HasChange("ip_version") { opts.IPVersion = d.Get("ip_version").(int) } if d.HasChange("source_ip_address") { sourceIPAddress := d.Get("source_ip_address").(string) opts.SourceIPAddress = &sourceIPAddress } if d.HasChange("destination_ip_address") { destinationIPAddress := d.Get("destination_ip_address").(string) opts.DestinationIPAddress = &destinationIPAddress } if d.HasChange("source_port") { sourcePort := d.Get("source_port").(string) opts.SourcePort = &sourcePort } if d.HasChange("destination_port") { destinationPort := d.Get("destination_port").(string) opts.DestinationPort = &destinationPort } if d.HasChange("enabled") { enabled := d.Get("enabled").(bool) opts.Enabled = &enabled } log.Printf("[DEBUG] Updating firewall rules: %#v", opts) err = rules.Update(networkingClient, d.Id(), opts).Err if err != nil { return err } return resourceFWRuleV1Read(d, meta) }
func updateRule(t *testing.T, ruleID string, opts *rules.UpdateOpts) { r, err := rules.Update(base.Client, ruleID, *opts).Extract() th.AssertNoErr(t, err) t.Logf("Updated rule ID [%s]", r.ID) }