Documentation
¶
Index ¶
Examples ¶
Constants ¶
const (
TerraformProviderFake = "fake-sync"
)
TerraformProviderFake is the name of a fake Terraform provider
const (
// TerraformProviderPanos is the name of a Palo Alto PANOS Terraform provider.
TerraformProviderPanos = "panos"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Fake ¶
type Fake struct {
// contains filtered or unexported fields
}
Fake is the handler for out-of-band actions for a fake Terraform provider. Intended to be used for testing and examples.
type Handler ¶
type Handler interface {
// Do executes the handler. Receives previous error and returns previous
// error wrapped in any new errors.
Do(context.Context, error) error
// SetNext sets the next handler that should be called
SetNext(Handler)
}
Handler handles additional actions that need to be executed. These can be at any level. Handlers can be chained such that they execute and continue to the next handler. A chain of handlers will return an aggregate of any errors after the handlers are all executed.
func TerraformProviderHandler ¶
TerraformProviderHandler returns the handler for providers that require post-Apply, out-of-band actions for a Terraform driver.
Returned handler may be nil even if returned err is nil. This happens when no providers have a handler.
Example ¶
providers := make([]map[string]interface{}, 0)
fourth := make(map[string]interface{})
fourth[TerraformProviderFake] = map[string]interface{}{
"name": "4",
"err": true,
}
providers = append(providers, fourth)
third := make(map[string]interface{})
third[TerraformProviderFake] = map[string]interface{}{
"name": "3",
}
providers = append(providers, third)
second := make(map[string]interface{})
second[TerraformProviderFake] = map[string]interface{}{
"name": "2",
"err": true,
}
providers = append(providers, second)
first := make(map[string]interface{})
first[TerraformProviderFake] = map[string]interface{}{
"name": "1",
}
providers = append(providers, first)
var next Handler = nil
for _, p := range providers {
for k, v := range p {
h, err := TerraformProviderHandler(k, v)
if err != nil {
fmt.Println(err)
return
}
if h != nil {
h.SetNext(next)
next = h
}
}
}
fmt.Println("Handler Errors:", next.Do(context.Background(), nil))
Output: FakeHandler: '1' FakeHandler: '2' FakeHandler: '3' FakeHandler: '4' Handler Errors: error 4: error 2
type Panos ¶
type Panos struct {
// contains filtered or unexported fields
}
Panos is the post-apply handler for the panos Terraform Provider. It performs the out-of-band Commit API request needed after a Terraform apply.
See https://registry.terraform.io/providers/PaloAltoNetworks/panos/latest/docs for details on Commit and panos provider (outdated use of SDK at the time). See https://github.com/PaloAltoNetworks/pango for latest version of SDK.