Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Commit

Permalink
More error handling improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
fgsch committed Feb 25, 2019
1 parent 757ac49 commit 33c5693
Showing 1 changed file with 15 additions and 34 deletions.
49 changes: 15 additions & 34 deletions waflyctl.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,23 +299,16 @@ func getActiveVersion(client fastly.Client, serviceID string, config TOMLConfig)
return 0
}

func cloneVersion(client fastly.Client, serviceID, apiKey string, config TOMLConfig, activeVersion int) (bool, int) {

Info.Printf("cloning current service version #%v", activeVersion)
func cloneVersion(client fastly.Client, serviceID string, config TOMLConfig, activeVersion int) int {
version, err := client.CloneVersion(&fastly.CloneVersionInput{
Service: serviceID,
Version: activeVersion,
})
if err != nil {
Error.Println(err)
Error.Printf("Error Cloning Service %s", serviceID)
os.Exit(1)
return false, 0
Error.Fatalf("Cannot clone version %d: CloneVersion: %v\n", activeVersion, err)
}

Info.Printf("new working service version #%v", version.Number)
return true, version.Number

Info.Printf("New version %d created\n", version.Number)
return version.Number
}

func prefetchCondition(client fastly.Client, serviceID string, version int, config TOMLConfig) bool {
Expand Down Expand Up @@ -505,21 +498,18 @@ func FastlyLogging(client fastly.Client, serviceID string, version int, config T
return true
}

func wafContainer(client fastly.Client, serviceID string, version int, config TOMLConfig) (bool, string) {
func wafContainer(client fastly.Client, serviceID string, config TOMLConfig, version int) string {
waf, err := client.CreateWAF(&fastly.CreateWAFInput{
Service: serviceID,
Version: version,
PrefetchCondition: config.Prefetch.Name,
Response: config.Response.Name,
})
if err != nil {
Error.Fatal(err)
return false, waf.ID
Error.Fatalf("Cannot create WAF: CreateWAF: %v\n", err)
}

Info.Printf("WAF created with ID: %v", waf.ID)
return true, waf.ID

Info.Printf("WAF %q created\n", waf.ID)
return waf.ID
}

func createOWASP(client fastly.Client, serviceID, wafID string, version int, config TOMLConfig) {
Expand Down Expand Up @@ -778,13 +768,7 @@ func provisionWAF(client fastly.Client, serviceID, apiKey string, config TOMLCon
}

//create WAF container
wafContainerStatus, wafID := wafContainer(client, serviceID, version, config)
if wafContainerStatus {
Info.Println("successfully created WAF container")
} else {
Error.Printf("Issue creating WAF container..")
os.Exit(1)
}
wafID := wafContainer(client, serviceID, config, version)

//set OWASP parameters
createOWASP(client, serviceID, wafID, version, config)
Expand Down Expand Up @@ -1923,7 +1907,7 @@ func main() {

Info.Println("Adding logging endpoints only")

_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

//create VCL Snippet
if vclSnippet(*serviceID, *apiKey, version, config) {
Expand Down Expand Up @@ -1958,7 +1942,7 @@ func main() {
}
// check if is a de-provisioning call
if *deprovision {
_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

result := DeprovisionWAF(*client, *serviceID, *apiKey, config, version)
if result {
Expand All @@ -1974,9 +1958,7 @@ func main() {

// check if is a delete logs parameter was called
if *deleteLogs {

//clone current version
_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

//delete the logs
result := DeleteLogsCall(*client, *serviceID, *apiKey, config, version)
Expand Down Expand Up @@ -2101,16 +2083,15 @@ func main() {
case *withPX:
Info.Printf("WAF enabled with PerimeterX, adding logging condition")

//clone current version
_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

WithPXCondition(*client, *serviceID, version, config)

case *withShielding:
Info.Printf("WAF enabled with shielding, adding logging condition")

//clone current version
_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

WithShieldingCondition(*client, *serviceID, version, config)

Expand Down Expand Up @@ -2157,7 +2138,7 @@ func main() {
Warning.Println("Provisioning a new WAF on Service ID: " + *serviceID)

//clone current version
_, version := cloneVersion(*client, *serviceID, *apiKey, config, activeVersion)
version := cloneVersion(*client, *serviceID, config, activeVersion)

//provision a new WAF service
wafID := provisionWAF(*client, *serviceID, *apiKey, config, version)
Expand Down

0 comments on commit 33c5693

Please sign in to comment.