Skip to content

Commit bb51cc6

Browse files
committed
refactor: buildingblock status constants
1 parent 9faeee9 commit bb51cc6

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

client/buildingblock_v2.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ import (
1414

1515
const (
1616
CONTENT_TYPE_BUILDING_BLOCK_V2 = "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json"
17+
18+
// Building Block Status Constants
19+
BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT = "WAITING_FOR_DEPENDENT_INPUT"
20+
BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT = "WAITING_FOR_OPERATOR_INPUT"
21+
BUILDING_BLOCK_STATUS_PENDING = "PENDING"
22+
BUILDING_BLOCK_STATUS_IN_PROGRESS = "IN_PROGRESS"
23+
BUILDING_BLOCK_STATUS_SUCCEEDED = "SUCCEEDED"
24+
BUILDING_BLOCK_STATUS_FAILED = "FAILED"
1725
)
1826

1927
type MeshBuildingBlockV2 struct {
@@ -172,10 +180,10 @@ func (c *MeshStackProviderClient) waitForBuildingBlockV2CompletionFunc(uuid stri
172180
// Check if we've reached a terminal state
173181
status := current.Status.Status
174182
switch status {
175-
case "SUCCEEDED":
183+
case BUILDING_BLOCK_STATUS_SUCCEEDED:
176184
*result = current
177185
return nil // Success, stop retrying
178-
case "FAILED":
186+
case BUILDING_BLOCK_STATUS_FAILED:
179187
return retry.NonRetryableError(fmt.Errorf("building block %s reached FAILED state", uuid))
180188
}
181189

@@ -204,7 +212,7 @@ func (c *MeshStackProviderClient) waitForBuildingBlockV2DeletionFunc(uuid string
204212
}
205213

206214
// If building block is in FAILED state during deletion, consider it a terminal state
207-
if current.Status.Status == "FAILED" {
215+
if current.Status.Status == BUILDING_BLOCK_STATUS_FAILED {
208216
return retry.NonRetryableError(fmt.Errorf("building block %s reached FAILED state during deletion. For more details, check the building block run logs in meshStack", uuid))
209217
}
210218

internal/provider/building_block_v2_data_source.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,23 @@ func (d *buildingBlockV2DataSource) Schema(ctx context.Context, req datasource.S
188188
Computed: true,
189189
Attributes: map[string]schema.Attribute{
190190
"status": schema.StringAttribute{
191-
MarkdownDescription: "Execution status. One of `WAITING_FOR_DEPENDENT_INPUT`, `WAITING_FOR_OPERATOR_INPUT`, `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`.",
192-
Computed: true,
191+
MarkdownDescription: fmt.Sprintf("Execution status. One of `%s`, `%s`, `%s`, `%s`, `%s`, `%s`.",
192+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT,
193+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT,
194+
client.BUILDING_BLOCK_STATUS_PENDING,
195+
client.BUILDING_BLOCK_STATUS_IN_PROGRESS,
196+
client.BUILDING_BLOCK_STATUS_SUCCEEDED,
197+
client.BUILDING_BLOCK_STATUS_FAILED),
198+
Computed: true,
193199
Validators: []validator.String{
194-
stringvalidator.OneOf([]string{"WAITING_FOR_DEPENDENT_INPUT", "WAITING_FOR_OPERATOR_INPUT", "PENDING", "IN_PROGRESS", "SUCCEEDED", "FAILED"}...),
200+
stringvalidator.OneOf([]string{
201+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT,
202+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT,
203+
client.BUILDING_BLOCK_STATUS_PENDING,
204+
client.BUILDING_BLOCK_STATUS_IN_PROGRESS,
205+
client.BUILDING_BLOCK_STATUS_SUCCEEDED,
206+
client.BUILDING_BLOCK_STATUS_FAILED,
207+
}...),
195208
},
196209
},
197210
"force_purge": schema.BoolAttribute{

internal/provider/building_block_v2_resource.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,10 +266,23 @@ func (r *buildingBlockV2Resource) Schema(ctx context.Context, req resource.Schem
266266
PlanModifiers: []planmodifier.Object{objectplanmodifier.UseStateForUnknown()},
267267
Attributes: map[string]schema.Attribute{
268268
"status": schema.StringAttribute{
269-
MarkdownDescription: "Execution status. One of `WAITING_FOR_DEPENDENT_INPUT`, `WAITING_FOR_OPERATOR_INPUT`, `PENDING`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`.",
270-
Computed: true,
269+
MarkdownDescription: fmt.Sprintf("Execution status. One of `%s`, `%s`, `%s`, `%s`, `%s`, `%s`.",
270+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT,
271+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT,
272+
client.BUILDING_BLOCK_STATUS_PENDING,
273+
client.BUILDING_BLOCK_STATUS_IN_PROGRESS,
274+
client.BUILDING_BLOCK_STATUS_SUCCEEDED,
275+
client.BUILDING_BLOCK_STATUS_FAILED),
276+
Computed: true,
271277
Validators: []validator.String{
272-
stringvalidator.OneOf([]string{"WAITING_FOR_DEPENDENT_INPUT", "WAITING_FOR_OPERATOR_INPUT", "PENDING", "IN_PROGRESS", "SUCCEEDED", "FAILED"}...),
278+
stringvalidator.OneOf([]string{
279+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT,
280+
client.BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT,
281+
client.BUILDING_BLOCK_STATUS_PENDING,
282+
client.BUILDING_BLOCK_STATUS_IN_PROGRESS,
283+
client.BUILDING_BLOCK_STATUS_SUCCEEDED,
284+
client.BUILDING_BLOCK_STATUS_FAILED,
285+
}...),
273286
},
274287
},
275288
"force_purge": schema.BoolAttribute{
@@ -381,7 +394,7 @@ func (r *buildingBlockV2Resource) Create(ctx context.Context, req resource.Creat
381394
// Always store the initial state, even if the building block was created in a failed state
382395
// This allows Terraform to track the resource and handle recreates appropriately
383396
resp.Diagnostics.Append(setStateFromResponseV2(&ctx, &resp.State, created)...)
384-
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("status").AtName("status"), "FAILED")...)
397+
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("status").AtName("status"), client.BUILDING_BLOCK_STATUS_FAILED)...)
385398
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("spec").AtName("inputs"), plan.Spec.Inputs)...)
386399
resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("wait_for_completion"), plan.WaitForCompletion)...)
387400

0 commit comments

Comments
 (0)