Skip to content

Commit f0f7581

Browse files
committed
Add dependency between prepare and acknowledge resources
This dependency is required as it will force execution of acknowledgement after the preparation is complete. Signed-off-by: Kobi Samoray <[email protected]>
1 parent e43e952 commit f0f7581

4 files changed

+32
-10
lines changed

nsxt/resource_nsxt_upgrade_precheck_acknowledge.go

+6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ func resourceNsxtUpgradePrecheckAcknowledge() *schema.Resource {
5151
},
5252
Computed: true,
5353
},
54+
"target_version": {
55+
Type: schema.TypeString,
56+
Description: "Target system version",
57+
Required: true,
58+
ForceNew: true,
59+
},
5460
},
5561
}
5662
}

nsxt/resource_nsxt_upgrade_prepare.go

+18-8
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ func resourceNsxtUpgradePrepare() *schema.Resource {
117117
},
118118
Computed: true,
119119
},
120+
"target_version": {
121+
Type: schema.TypeString,
122+
Description: "Target system version",
123+
Computed: true,
124+
},
120125
},
121126
}
122127
}
@@ -153,32 +158,37 @@ func prepareForUpgrade(d *schema.ResourceData, m interface{}) error {
153158
return nil
154159
}
155160

156-
func precheckNeeded(m interface{}) (bool, error) {
161+
func getSummaryInfo(m interface{}) (string, bool, error) {
157162
connector := getPolicyConnector(m)
158163
summaryClient := upgrade.NewSummaryClient(connector)
159164
summary, err := summaryClient.Get()
160165
if err != nil {
161-
return false, err
166+
return "", false, err
167+
}
168+
var targetVersion string
169+
if summary.TargetVersion != nil {
170+
targetVersion = *summary.TargetVersion
162171
}
163172
if summary.UpgradeCoordinatorUpdated == nil || !(*summary.UpgradeCoordinatorUpdated) {
164173
log.Printf("Upgrade coordinated is not upgraded, skip running precheck")
165-
return false, nil
174+
return targetVersion, false, nil
166175
}
167176
if summary.UpgradeStatus == nil || (*summary.UpgradeStatus) != nsxModel.UpgradeSummary_UPGRADE_STATUS_NOT_STARTED {
168177
log.Printf("Upgrade process has started, skip running precheck")
169-
return false, nil
178+
return targetVersion, false, nil
170179
}
171-
return true, nil
180+
return targetVersion, true, nil
172181
}
173182

174183
func resourceNsxtUpgradePrepareRead(d *schema.ResourceData, m interface{}) error {
175184
id := d.Id()
176185
var err error
177186
// Execute precheck in Read function if upload bundle has been uploaded and upgrade not started
178-
precheckNeeded, err := precheckNeeded(m)
187+
targetVersion, precheckNeeded, err := getSummaryInfo(m)
179188
if err != nil {
180189
return logAPIError("Failed to get previous precheck result", err)
181190
}
191+
d.Set("target_version", targetVersion)
182192
if precheckNeeded {
183193
previousAcknowledgedPrecheckIDs, err := getAcknowledgedPrecheckIDs(m)
184194
if err != nil {
@@ -363,9 +373,9 @@ func getPrecheckErrors(m interface{}, typeParam *string) ([]nsxModel.UpgradeChec
363373
return resultList.Results, nil
364374
}
365375

366-
func setFailedPrechecksInSchema(d *schema.ResourceData, precheckErros []nsxModel.UpgradeCheckFailure) error {
376+
func setFailedPrechecksInSchema(d *schema.ResourceData, precheckErrors []nsxModel.UpgradeCheckFailure) error {
367377
var failedPrechecksList []map[string]interface{}
368-
for _, precheckError := range precheckErros {
378+
for _, precheckError := range precheckErrors {
369379
elem := make(map[string]interface{})
370380
elem["id"] = precheckError.Id
371381
elem["message"] = precheckError.Message.Message

website/docs/r/upgrade_precheck_acknowledge.html.markdown

+6-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ for NSXT upgrade.
1414

1515
```hcl
1616
resource "nsxt_upgrade_precheck_acknowledge" "test" {
17-
precheck_ids = ["backupOperationCheck", "pUBCheck"]
17+
precheck_ids = ["backupOperationCheck", "pUBCheck"]
18+
target_version = nsxt_upgrade_prepare.test.target_version
1819
}
1920
```
2021

@@ -23,6 +24,10 @@ resource "nsxt_upgrade_precheck_acknowledge" "test" {
2324
The following arguments are supported:
2425

2526
* `precheck_ids` - (Required) List of ids of failed prechecks user wants to acknowledge.
27+
* `target_version` - (Required) Target system version
28+
29+
## Attributes Reference
30+
2631
* `precheck_warnings` - (Computed) State of all precheck warnings.
2732
* `id` - ID of the precheck warning.
2833
* `message` - Message of the precheck warning.

website/docs/r/upgrade_prepare.html.markdown

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ The following arguments are supported:
4242
* `uc_upgrade_timeout` - (Optional) Timeout for upgrading upgrade coordinator in seconds. Default is `1800`.
4343
* `precheck_timeout` - (Optional) Timeout for executing pre-upgrade checks in seconds. Default is `3600`.
4444

45-
## Argument Reference
45+
## Attributes Reference
4646

4747
In addition to arguments listed above, the following attributes are exported:
4848

@@ -54,6 +54,7 @@ In addition to arguments listed above, the following attributes are exported:
5454
* `needs_resolve` - Boolean value identifies if resolution is required for the precheck.
5555
* `acked` - Boolean value which identifies if precheck has been acknowledged.
5656
* `resolution_status` - The resolution status of precheck failure.
57+
* `target_version` - Target system version
5758

5859
## Importing
5960

0 commit comments

Comments
 (0)