@@ -94,6 +94,7 @@ func resourceDockerServiceCreate(d *schema.ResourceData, meta interface{}) error
94
94
}
95
95
}
96
96
97
+ d .SetId (service .ID )
97
98
return resourceDockerServiceRead (d , meta )
98
99
}
99
100
@@ -141,8 +142,8 @@ func resourceDockerServiceReadRefreshFunc(
141
142
jsonObj , _ := json .MarshalIndent (service , "" , "\t " )
142
143
log .Printf ("[DEBUG] Docker service inspect: %s" , jsonObj )
143
144
144
- if service .Endpoint .Spec .Mode != service .Spec .EndpointSpec .Mode {
145
- log .Printf ("[DEBUG] endpoint.Spec of Service %s does not match Spec.EndpointSpec yet" , serviceID )
145
+ if string ( service .Endpoint .Spec .Mode ) == "" && string ( service .Spec .EndpointSpec .Mode ) == "" {
146
+ log .Printf ("[DEBUG] Service %s does not expose endpoint spec yet" , apiService . ID )
146
147
return serviceID , "pending" , nil
147
148
}
148
149
@@ -162,8 +163,17 @@ func resourceDockerServiceReadRefreshFunc(
162
163
if err = d .Set ("rollback_config" , flattenServiceUpdateOrRollbackConfig (service .Spec .RollbackConfig )); err != nil {
163
164
log .Printf ("[WARN] failed to set rollback_config from API: %s" , err )
164
165
}
165
- if err = d .Set ("endpoint_spec" , flattenServiceEndpointSpec (service .Endpoint )); err != nil {
166
- log .Printf ("[WARN] failed to set endpoint spec from API: %s" , err )
166
+
167
+ if service .Endpoint .Spec .Mode != "" {
168
+ if err = d .Set ("endpoint_spec" , flattenServiceEndpoint (service .Endpoint )); err != nil {
169
+ log .Printf ("[WARN] failed to set endpoint spec from API: %s" , err )
170
+ }
171
+ } else if service .Spec .EndpointSpec .Mode != "" {
172
+ if err = d .Set ("endpoint_spec" , flattenServiceEndpointSpec (service .Spec .EndpointSpec )); err != nil {
173
+ log .Printf ("[WARN] failed to set endpoint spec from API: %s" , err )
174
+ }
175
+ } else {
176
+ return serviceID , "" , fmt .Errorf ("Error no endpoint spec for service %s" , apiService .ID )
167
177
}
168
178
169
179
return serviceID , "all_fields" , nil
0 commit comments