GetReturnCode checks for deprecated versions and returns a code. takes a boolean to ignore any errors. exit 2 - version deprecated exit 3 - version removed exit 4 - replacement is unavailable in target version
()
| 309 | // exit 3 - version removed |
| 310 | // exit 4 - replacement is unavailable in target version |
| 311 | func (instance *Instance) GetReturnCode() int { |
| 312 | returnCode := 0 |
| 313 | var deprecations int |
| 314 | var removals int |
| 315 | var unavailableReplacements int |
| 316 | for _, output := range instance.Outputs { |
| 317 | if output.APIVersion.isRemovedIn(instance.TargetVersions) { |
| 318 | removals = removals + 1 |
| 319 | } |
| 320 | if output.APIVersion.isDeprecatedIn(instance.TargetVersions) { |
| 321 | if output.APIVersion.isReplacementAvailableIn(instance.TargetVersions) || !instance.IgnoreUnavailableReplacements { |
| 322 | deprecations = deprecations + 1 |
| 323 | } |
| 324 | } |
| 325 | if !output.APIVersion.isReplacementAvailableIn(instance.TargetVersions) { |
| 326 | unavailableReplacements = unavailableReplacements + 1 |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | if deprecations > 0 && !instance.IgnoreDeprecations { |
| 331 | returnCode = 2 |
| 332 | } |
| 333 | if removals > 0 && !instance.IgnoreRemovals { |
| 334 | returnCode = 3 |
| 335 | } |
| 336 | if unavailableReplacements > 0 && !instance.IgnoreUnavailableReplacements { |
| 337 | returnCode = 4 |
| 338 | } |
| 339 | return returnCode |
| 340 | } |