6
6
"github.com/go-openapi/strfmt"
7
7
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8
8
"github.com/vmware/vra-sdk-go/pkg/client/deployments"
9
- "github.com/vmware/vra-sdk-go/pkg/models"
10
9
11
10
"log"
12
11
)
@@ -138,50 +137,6 @@ func dataSourceDeploymentRead(d *schema.ResourceData, m interface{}) error {
138
137
return fmt .Errorf ("one of id or name must be assigned" )
139
138
}
140
139
141
- expandLastRequest := d .Get ("expand_last_request" ).(bool )
142
- expandProject := d .Get ("expand_project" ).(bool )
143
- expandResources := d .Get ("expand_resources" ).(bool )
144
-
145
- setFields := func (deployment * models.Deployment ) error {
146
- d .SetId (deployment .ID .String ())
147
- d .Set ("blueprint_id" , deployment .BlueprintID )
148
- d .Set ("blueprint_version" , deployment .BlueprintVersion )
149
- d .Set ("catalog_item_id" , deployment .CatalogItemID )
150
- d .Set ("catalog_item_version" , deployment .CatalogItemVersion )
151
- d .Set ("created_at" , deployment .CreatedAt )
152
- d .Set ("created_by" , deployment .CreatedBy )
153
- d .Set ("description" , deployment .Description )
154
- d .Set ("last_updated_at" , deployment .LastUpdatedAt )
155
- d .Set ("last_updated_by" , deployment .LastUpdatedBy )
156
- d .Set ("lease_expire_at" , deployment .LeaseExpireAt )
157
- d .Set ("name" , deployment .Name )
158
- d .Set ("org_id" , deployment .OrgID )
159
- d .Set ("owner" , deployment .OwnedBy )
160
- d .Set ("project_id" , deployment .ProjectID )
161
- d .Set ("status" , deployment .Status )
162
-
163
- if err := d .Set ("expense" , flattenExpense (deployment .Expense )); err != nil {
164
- return fmt .Errorf ("error setting deployment expense - error: %#v" , err )
165
- }
166
-
167
- if err := d .Set ("inputs" , expandInputs (deployment .Inputs )); err != nil {
168
- return fmt .Errorf ("error setting deployment inputs - error: %#v" , err )
169
- }
170
-
171
- if err := d .Set ("last_request" , flattenDeploymentRequest (deployment .LastRequest )); err != nil {
172
- return fmt .Errorf ("error setting deployment last_request - error: %#v" , err )
173
- }
174
-
175
- if err := d .Set ("project" , flattenResourceReference (deployment .Project )); err != nil {
176
- return fmt .Errorf ("error setting project in deployment - error: %#v" , err )
177
- }
178
-
179
- if err := d .Set ("resources" , flattenResources (deployment .Resources )); err != nil {
180
- return fmt .Errorf ("error setting resources in deployment - error: %#v" , err )
181
- }
182
- return nil
183
- }
184
-
185
140
if nameOk {
186
141
getAllResp , err := apiClient .Deployments .GetDeploymentsV3UsingGET (
187
142
deployments .NewGetDeploymentsV3UsingGETParams ().WithName (withString (name .(string ))))
@@ -200,12 +155,15 @@ func dataSourceDeploymentRead(d *schema.ResourceData, m interface{}) error {
200
155
201
156
// Get the deployment details with all the user provided flags
202
157
expand := []string {}
158
+ expandProject := d .Get ("expand_project" ).(bool )
203
159
if expandProject {
204
160
expand = append (expand , "project" )
205
161
}
162
+ expandResources := d .Get ("expand_resources" ).(bool )
206
163
if expandResources {
207
164
expand = append (expand , "resources" )
208
165
}
166
+ expandLastRequest := d .Get ("expand_last_request" ).(bool )
209
167
if expandLastRequest {
210
168
expand = append (expand , "lastRequest" )
211
169
}
@@ -222,5 +180,54 @@ func dataSourceDeploymentRead(d *schema.ResourceData, m interface{}) error {
222
180
}
223
181
224
182
deployment := getResp .Payload
225
- return setFields (deployment )
183
+ d .SetId (deployment .ID .String ())
184
+ d .Set ("blueprint_id" , deployment .BlueprintID )
185
+ d .Set ("blueprint_version" , deployment .BlueprintVersion )
186
+ d .Set ("catalog_item_id" , deployment .CatalogItemID )
187
+ d .Set ("catalog_item_version" , deployment .CatalogItemVersion )
188
+ d .Set ("created_at" , deployment .CreatedAt )
189
+ d .Set ("created_by" , deployment .CreatedBy )
190
+ d .Set ("description" , deployment .Description )
191
+ d .Set ("last_updated_at" , deployment .LastUpdatedAt )
192
+ d .Set ("last_updated_by" , deployment .LastUpdatedBy )
193
+ d .Set ("lease_expire_at" , deployment .LeaseExpireAt )
194
+ d .Set ("name" , deployment .Name )
195
+ d .Set ("org_id" , deployment .OrgID )
196
+ d .Set ("owner" , deployment .OwnedBy )
197
+ d .Set ("project_id" , deployment .ProjectID )
198
+ d .Set ("status" , deployment .Status )
199
+
200
+ if err := d .Set ("expense" , flattenExpense (deployment .Expense )); err != nil {
201
+ return fmt .Errorf ("error setting deployment expense - error: %#v" , err )
202
+ }
203
+
204
+ if err := d .Set ("inputs" , expandInputs (deployment .Inputs )); err != nil {
205
+ return fmt .Errorf ("error setting deployment inputs - error: %#v" , err )
206
+ }
207
+
208
+ if err := d .Set ("last_request" , flattenDeploymentRequest (deployment .LastRequest )); err != nil {
209
+ return fmt .Errorf ("error setting deployment last_request - error: %#v" , err )
210
+ }
211
+
212
+ if err := d .Set ("project" , flattenResourceReference (deployment .Project )); err != nil {
213
+ return fmt .Errorf ("error setting project in deployment - error: %#v" , err )
214
+ }
215
+
216
+ if expandResources {
217
+ getResourcesResp , err := apiClient .Deployments .GetDeploymentResourcesUsingGET2 (
218
+ deployments .NewGetDeploymentResourcesUsingGET2Params ().
219
+ WithDeploymentID (strfmt .UUID (id .(string ))).
220
+ WithExpand ([]string {"currentRequest" }).
221
+ WithAPIVersion (withString (DeploymentsAPIVersion )).
222
+ WithTimeout (IncreasedTimeOut ))
223
+ if err != nil {
224
+ return fmt .Errorf ("error retrieving deployment resources - error: %#v" , err )
225
+ }
226
+
227
+ if err := d .Set ("resources" , flattenResources (getResourcesResp .GetPayload ())); err != nil {
228
+ return fmt .Errorf ("error setting resources in deployment - error: %#v" , err )
229
+ }
230
+ }
231
+
232
+ return nil
226
233
}
0 commit comments