mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2026-01-06 06:49:36 -05:00
fix: service endpoint spec flattening
This commit is contained in:
parent
d8b0c139e5
commit
ef47f0cbdb
2 changed files with 25 additions and 5 deletions
|
|
@ -94,6 +94,7 @@ func resourceDockerServiceCreate(d *schema.ResourceData, meta interface{}) error
|
|||
}
|
||||
}
|
||||
|
||||
d.SetId(service.ID)
|
||||
return resourceDockerServiceRead(d, meta)
|
||||
}
|
||||
|
||||
|
|
@ -141,8 +142,8 @@ func resourceDockerServiceReadRefreshFunc(
|
|||
jsonObj, _ := json.MarshalIndent(service, "", "\t")
|
||||
log.Printf("[DEBUG] Docker service inspect: %s", jsonObj)
|
||||
|
||||
if service.Endpoint.Spec.Mode != service.Spec.EndpointSpec.Mode {
|
||||
log.Printf("[DEBUG] endpoint.Spec of Service %s does not match Spec.EndpointSpec yet", serviceID)
|
||||
if string(service.Endpoint.Spec.Mode) == "" && string(service.Spec.EndpointSpec.Mode) == "" {
|
||||
log.Printf("[DEBUG] Service %s does not expose endpoint spec yet", apiService.ID)
|
||||
return serviceID, "pending", nil
|
||||
}
|
||||
|
||||
|
|
@ -162,8 +163,17 @@ func resourceDockerServiceReadRefreshFunc(
|
|||
if err = d.Set("rollback_config", flattenServiceUpdateOrRollbackConfig(service.Spec.RollbackConfig)); err != nil {
|
||||
log.Printf("[WARN] failed to set rollback_config from API: %s", err)
|
||||
}
|
||||
if err = d.Set("endpoint_spec", flattenServiceEndpointSpec(service.Endpoint)); err != nil {
|
||||
log.Printf("[WARN] failed to set endpoint spec from API: %s", err)
|
||||
|
||||
if service.Endpoint.Spec.Mode != "" {
|
||||
if err = d.Set("endpoint_spec", flattenServiceEndpoint(service.Endpoint)); err != nil {
|
||||
log.Printf("[WARN] failed to set endpoint spec from API: %s", err)
|
||||
}
|
||||
} else if service.Spec.EndpointSpec.Mode != "" {
|
||||
if err = d.Set("endpoint_spec", flattenServiceEndpointSpec(service.Spec.EndpointSpec)); err != nil {
|
||||
log.Printf("[WARN] failed to set endpoint spec from API: %s", err)
|
||||
}
|
||||
} else {
|
||||
return serviceID, "", fmt.Errorf("Error no endpoint spec for service %s", apiService.ID)
|
||||
}
|
||||
|
||||
return serviceID, "all_fields", nil
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func flattenServiceUpdateOrRollbackConfig(in *swarm.UpdateConfig) []interface{}
|
|||
return out
|
||||
}
|
||||
|
||||
func flattenServiceEndpointSpec(in swarm.Endpoint) []interface{} {
|
||||
func flattenServiceEndpoint(in swarm.Endpoint) []interface{} {
|
||||
var out = make([]interface{}, 0, 0)
|
||||
m := make(map[string]interface{})
|
||||
m["mode"] = string(in.Spec.Mode)
|
||||
|
|
@ -95,6 +95,16 @@ func flattenServiceEndpointSpec(in swarm.Endpoint) []interface{} {
|
|||
return out
|
||||
}
|
||||
|
||||
func flattenServiceEndpointSpec(in *swarm.EndpointSpec) []interface{} {
|
||||
var out = make([]interface{}, 0, 0)
|
||||
m := make(map[string]interface{})
|
||||
m["mode"] = string(in.Mode)
|
||||
m["ports"] = flattenServicePorts(in.Ports)
|
||||
|
||||
out = append(out, m)
|
||||
return out
|
||||
}
|
||||
|
||||
///// start TaskSpec
|
||||
func flattenContainerSpec(in *swarm.ContainerSpec) []interface{} {
|
||||
var out = make([]interface{}, 0, 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue