Skip to content

Commit

Permalink
Merge pull request #38 from zambien/allow_multiple_deployments
Browse files Browse the repository at this point in the history
Allow multiple deployments
  • Loading branch information
zambien authored Nov 5, 2019
2 parents d334236 + 8a77f05 commit db97c32
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions apigee/resource_api_proxy_deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func resourceApiProxyDeploymentRead(d *schema.ResourceData, meta interface{}) (e
client := meta.(*apigee.EdgeClient)

found := false
latestRevision := "0"
matchedRevision := "0"

if deployments, _, err := client.Proxies.GetDeployments(d.Get("proxy_name").(string)); err != nil {
log.Printf("[ERROR] resourceApiProxyDeploymentRead error getting deployments: %s", err.Error())
Expand All @@ -105,16 +105,22 @@ func resourceApiProxyDeploymentRead(d *schema.ResourceData, meta interface{}) (e
//We don't break. Always get the last one if there are multiple deployments.
for _, revision := range environment.Revision {
log.Printf("[DEBUG] resourceApiProxyDeploymentRead checking deployed revision: %#v for expected revision: %#v\n", revision.Number.String(), d.Get("revision").(string))
latestRevision = revision.Number.String()
if (d.Get("revision").(string) != "latest" && d.Get("revision").(string) == revision.Number.String()) {
matchedRevision = revision.Number.String()
found = true
break
} else {
matchedRevision = revision.Number.String()
}
found = true
}
}
}
}

if found {
log.Printf("[DEBUG] resourceApiProxyDeploymentRead - deployment found. Revision is: %#v", latestRevision)
d.Set("revision", latestRevision)
log.Printf("[DEBUG] resourceApiProxyDeploymentRead - deployment found. Revision is: %#v", matchedRevision)
d.Set("revision", matchedRevision)
} else {
log.Print("[DEBUG] resourceApiProxyDeploymentRead - no deployment found")
d.SetId("")
Expand Down Expand Up @@ -198,6 +204,9 @@ func resourceApiProxyDeploymentUpdate(d *schema.ResourceData, meta interface{})
}
_, _, err = client.Proxies.ReDeploy(proxy_name, env, apigee.Revision(rev), delay, override)
if err != nil {
if strings.Contains(err.Error(), " is already deployed ") {
return resourceApiProxyDeploymentRead(d, meta)
}
return fmt.Errorf("[ERROR] resourceApiProxyDeploymentUpdate error deploying: %v", err)
}
log.Printf("[DEBUG] resourceApiProxyDeploymentUpdate Deployed revision %d of %s", rev, proxy_name)
Expand Down

0 comments on commit db97c32

Please sign in to comment.