From c0a216ac7c7ec1ca3eee140bd025588dc2281e6b Mon Sep 17 00:00:00 2001 From: Robert Gogolok Date: Tue, 17 Dec 2024 16:49:14 +0100 Subject: [PATCH] Remove duplicate mapping key The error codes `60003` and `290013` appear twice. While many YAML parsers can cope with duplicate mapping keys, many parser will error out. External tools, like for example [go-cfclient's gen_error.go](https://github.com/cloudfoundry/go-cfclient/blob/main/tools/gen_error.go), cannot update to more recent major versions of their YAML parser library: ```shell yaml: unmarshal errors: line 221: mapping key "60003" already defined at line 216 line 1036: mapping key "290013" already defined at line 1026 panic: yaml: unmarshal errors: line 221: mapping key "60003" already defined at line 216 line 1036: mapping key "290013" already defined at line 1026 ``` Cloud Controller uses `psych` to parse the errors/*.yml files. Psych uses the latest occurence of a key. Therefore, the most recent duplicate key can be picked to stay in the errors files. ``` irb(main):001> require 'psych' => true irb(main):002> filepath = "errors/v2.yml" => "errors/v2.yml" irb(main):003* content = File.open(filepath) do |f| irb(main):004* Psych.safe_load(f, strict_integer: true) irb(main):005> end; nil => nil irb(main):006> content[60003] => {"name"=>"ServiceInstanceInvalid", "http_code"=>400, "message"=>"The service instance is invalid: %s"} irb(main):007> content[290013] => {"name"=>"SpaceRolesDeletionTimeout", "http_code"=>524, "message"=>"Deletion of roles for space %s timed out before all roles could be deleted"} ``` --- errors/v2.yml | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/errors/v2.yml b/errors/v2.yml index e57c6b48dac..c17ff9a47bd 100644 --- a/errors/v2.yml +++ b/errors/v2.yml @@ -213,11 +213,6 @@ http_code: 400 message: "The service instance name is taken: %s" -60003: - name: ServiceInstanceServiceBindingWrongSpace - http_code: 400 - message: "The service instance and the service binding are in different app spaces: %s" - 60003: name: ServiceInstanceInvalid http_code: 400 @@ -1024,20 +1019,15 @@ message: "Resource inside space %s must first be deleted, or specify recursive delete." 290013: - name: OrganizationRolesDeletionTimeout + name: SpaceRolesDeletionTimeout http_code: 524 - message: "Deletion of roles for organization %s timed out before all roles could be deleted" + message: "Deletion of roles for space %s timed out before all roles could be deleted" 290014: name: OrganizationRolesDeletionFailed http_code: 502 message: "Failed to delete one or more roles for organization %s" -290013: - name: SpaceRolesDeletionTimeout - http_code: 524 - message: "Deletion of roles for space %s timed out before all roles could be deleted" - 290016: name: SpaceRolesDeletionFailed http_code: 502