Skip to content

Commit bc10ca0

Browse files
authored
CA-398138: Handle enum value unknown error for Go SDK (xapi-project#5981)
Bug fix for Go SDK, add an default Enum value to replace raising error for unknown Enum value. Build new SDK and samples, test pass XenRT job: 4100718.
2 parents ba3b3ac + 8cf4d11 commit bc10ca0

File tree

4 files changed

+6
-2
lines changed

4 files changed

+6
-2
lines changed

ocaml/sdk-gen/go/templates/ConvertEnum.mustache

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func deserialize{{func_name_suffix}}(context string, input interface{}) (value {
1717
value = {{name}}
1818
{{/items}}
1919
default:
20-
err = fmt.Errorf("unable to parse XenAPI response: got value %q for enum %s at %s, but this is not any of the known values", strValue, "{{type}}", context)
20+
value = {{type}}Unrecognized
2121
}
2222
return
2323
}

ocaml/sdk-gen/go/templates/Enum.mustache

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ const (
66
//{{#doc}} {{.}}{{/doc}}
77
{{name}} {{type}} = "{{value}}"
88
{{/values}}
9+
// The value does not belong to this enumeration
10+
{{name}}Unrecognized {{name}} = "unrecognized"
911
)
1012

1113
{{/enums}}

ocaml/sdk-gen/go/test_data/enum.go

+2
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ const (
55
VMTelemetryFrequencyDaily VMTelemetryFrequency = "daily"
66
// Run telemetry task weekly
77
VMTelemetryFrequencyWeekly VMTelemetryFrequency = "weekly"
8+
// The value does not belong to this enumeration
9+
VMTelemetryFrequencyUnrecognized VMTelemetryFrequency = "unrecognized"
810
)

ocaml/sdk-gen/go/test_data/enum_convert.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func deserializeEnumTaskStatusType(context string, input interface{}) (value Tas
1414
case "success":
1515
value = TaskStatusTypeSuccess
1616
default:
17-
err = fmt.Errorf("unable to parse XenAPI response: got value %q for enum %s at %s, but this is not any of the known values", strValue, "TaskStatusType", context)
17+
value = TaskStatusTypeUnrecognized
1818
}
1919
return
2020
}

0 commit comments

Comments
 (0)