Make the concurrence for applying rules configurable
This commit is contained in:
parent
a83d1bab23
commit
3385100f56
|
@ -81,6 +81,12 @@ func resourceCloudStackEgressFirewall() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"parallelism": &schema.Schema{
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
Default: 2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,7 +136,7 @@ func createEgressFirewallRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(nrs.Len())
|
wg.Add(nrs.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range nrs.List() {
|
for _, rule := range nrs.List() {
|
||||||
// Put in a tiny sleep here to avoid DoS'ing the API
|
// Put in a tiny sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
@ -437,7 +443,7 @@ func deleteEgressFirewallRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(ors.Len())
|
wg.Add(ors.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range ors.List() {
|
for _, rule := range ors.List() {
|
||||||
// Put a sleep here to avoid DoS'ing the API
|
// Put a sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
|
@ -81,6 +81,12 @@ func resourceCloudStackFirewall() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"parallelism": &schema.Schema{
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
Default: 2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +135,7 @@ func createFirewallRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(nrs.Len())
|
wg.Add(nrs.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range nrs.List() {
|
for _, rule := range nrs.List() {
|
||||||
// Put in a tiny sleep here to avoid DoS'ing the API
|
// Put in a tiny sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
@ -438,7 +444,7 @@ func deleteFirewallRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(ors.Len())
|
wg.Add(ors.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range ors.List() {
|
for _, rule := range ors.List() {
|
||||||
// Put a sleep here to avoid DoS'ing the API
|
// Put a sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
|
@ -93,6 +93,12 @@ func resourceCloudStackNetworkACLRule() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"parallelism": &schema.Schema{
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
Default: 2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,7 +140,7 @@ func createNetworkACLRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(nrs.Len())
|
wg.Add(nrs.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range nrs.List() {
|
for _, rule := range nrs.List() {
|
||||||
// Put in a tiny sleep here to avoid DoS'ing the API
|
// Put in a tiny sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
@ -491,7 +497,7 @@ func deleteNetworkACLRules(
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(ors.Len())
|
wg.Add(ors.Len())
|
||||||
|
|
||||||
sem := make(chan struct{}, 10)
|
sem := make(chan struct{}, d.Get("parallelism").(int))
|
||||||
for _, rule := range ors.List() {
|
for _, rule := range ors.List() {
|
||||||
// Put a sleep here to avoid DoS'ing the API
|
// Put a sleep here to avoid DoS'ing the API
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
|
@ -38,6 +38,9 @@ The following arguments are supported:
|
||||||
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
||||||
fields documented below. If `managed = false` at least one rule is required!
|
fields documented below. If `managed = false` at least one rule is required!
|
||||||
|
|
||||||
|
* `parallelism` (Optional) Specifies how much rules will be created or deleted
|
||||||
|
concurrently. (defaults 2)
|
||||||
|
|
||||||
The `rule` block supports:
|
The `rule` block supports:
|
||||||
|
|
||||||
* `cidr_list` - (Required) A CIDR list to allow access to the given ports.
|
* `cidr_list` - (Required) A CIDR list to allow access to the given ports.
|
||||||
|
|
|
@ -38,6 +38,9 @@ The following arguments are supported:
|
||||||
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
||||||
fields documented below. If `managed = false` at least one rule is required!
|
fields documented below. If `managed = false` at least one rule is required!
|
||||||
|
|
||||||
|
* `parallelism` (Optional) Specifies how much rules will be created or deleted
|
||||||
|
concurrently. (defaults 2)
|
||||||
|
|
||||||
The `rule` block supports:
|
The `rule` block supports:
|
||||||
|
|
||||||
* `cidr_list` - (Required) A CIDR list to allow access to the given ports.
|
* `cidr_list` - (Required) A CIDR list to allow access to the given ports.
|
||||||
|
|
|
@ -40,6 +40,9 @@ The following arguments are supported:
|
||||||
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
* `rule` - (Optional) Can be specified multiple times. Each rule block supports
|
||||||
fields documented below. If `managed = false` at least one rule is required!
|
fields documented below. If `managed = false` at least one rule is required!
|
||||||
|
|
||||||
|
* `parallelism` (Optional) Specifies how much rules will be created or deleted
|
||||||
|
concurrently. (defaults 2)
|
||||||
|
|
||||||
The `rule` block supports:
|
The `rule` block supports:
|
||||||
|
|
||||||
* `action` - (Optional) The action for the rule. Valid options are: `allow` and
|
* `action` - (Optional) The action for the rule. Valid options are: `allow` and
|
||||||
|
|
Loading…
Reference in New Issue