)]}'
{"metropolis/node/core/rpc/resolver.go":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"183f452ded434aa94673bb4fb6a857e503486c06","unresolved":true,"context_lines":[{"line_number":16,"context_line":")"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"const ("},{"line_number":19,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///cluster\""},{"line_number":20,"context_line":")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":3,"id":"adecf6b7_c88b2ff4","line":19,"range":{"start_line":19,"start_character":1,"end_line":19,"end_character":25},"updated":"2022-03-31 11:24:19.000000000","message":"IMO this should be called something like `metropolis://controlplane` because the resolver only resolves control plane nodes. Or even `metropolis://curator`.","commit_id":"618672b68d716732e906784fdb9ae9e1d9eca4ca"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dcfdb9fde8eff9e009a1261bf3665a8321cb4460","unresolved":true,"context_lines":[{"line_number":16,"context_line":")"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"const ("},{"line_number":19,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///cluster\""},{"line_number":20,"context_line":")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":3,"id":"90e5e468_89b0f9a9","line":19,"range":{"start_line":19,"start_character":1,"end_line":19,"end_character":25},"in_reply_to":"88f9a2b2_810b86f4","updated":"2022-04-04 13:20:49.000000000","message":"Sounds good, let\u0027s go with that.","commit_id":"618672b68d716732e906784fdb9ae9e1d9eca4ca"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b405e43b3b14887e954f6b6ba17b45377e83b042","unresolved":false,"context_lines":[{"line_number":16,"context_line":")"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"const ("},{"line_number":19,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///cluster\""},{"line_number":20,"context_line":")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":3,"id":"1140054e_24a7aec2","line":19,"range":{"start_line":19,"start_character":1,"end_line":19,"end_character":25},"in_reply_to":"90e5e468_89b0f9a9","updated":"2022-04-04 13:48:01.000000000","message":"Done","commit_id":"618672b68d716732e906784fdb9ae9e1d9eca4ca"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ce4336c278db590bf4572e5e87cca4b9785ab140","unresolved":true,"context_lines":[{"line_number":16,"context_line":")"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"const ("},{"line_number":19,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///cluster\""},{"line_number":20,"context_line":")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":3,"id":"88f9a2b2_810b86f4","line":19,"range":{"start_line":19,"start_character":1,"end_line":19,"end_character":25},"in_reply_to":"adecf6b7_c88b2ff4","updated":"2022-04-04 11:42:56.000000000","message":"How about metropolis://control? metropolis://curator is a bit leaky in terms of abstractions (after all, the fact that the control plane API is served by the curator is an implementation detail), and controlplane is a bit long.","commit_id":"618672b68d716732e906784fdb9ae9e1d9eca4ca"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f314e5745653088a588dc66b26b4b82462452efe","unresolved":true,"context_lines":[{"line_number":23,"context_line":"// grpc.WithResolvers() when dialing a gRPC endpoint."},{"line_number":24,"context_line":"//"},{"line_number":25,"context_line":"// It\u0027s responsible for resolving the magic MetropolisClusterAddress"},{"line_number":26,"context_line":"// (metropolis:///cluster) into all Metropolis nodes running control plane"},{"line_number":27,"context_line":"// services, ie. the Curator."},{"line_number":28,"context_line":"//"},{"line_number":29,"context_line":"// To function, the ClusterResolver needs to be provided with at least one node"}],"source_content_type":"text/x-go","patch_set":4,"id":"0489d813_a087938f","line":26,"range":{"start_line":26,"start_character":18,"end_line":26,"end_character":25},"updated":"2022-04-05 10:47:29.000000000","message":"Needs to be updated","commit_id":"01e74e9aff7a2e8b1dc652ba2460eb79222f5f02"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d9dbcf6e08a5ec5bb7f1c8c94086bdc9ea864094","unresolved":false,"context_lines":[{"line_number":23,"context_line":"// grpc.WithResolvers() when dialing a gRPC endpoint."},{"line_number":24,"context_line":"//"},{"line_number":25,"context_line":"// It\u0027s responsible for resolving the magic MetropolisClusterAddress"},{"line_number":26,"context_line":"// (metropolis:///cluster) into all Metropolis nodes running control plane"},{"line_number":27,"context_line":"// services, ie. the Curator."},{"line_number":28,"context_line":"//"},{"line_number":29,"context_line":"// To function, the ClusterResolver needs to be provided with at least one node"}],"source_content_type":"text/x-go","patch_set":4,"id":"f7cdbc01_ac203a61","line":26,"range":{"start_line":26,"start_character":18,"end_line":26,"end_character":25},"in_reply_to":"0489d813_a087938f","updated":"2022-04-05 11:54:03.000000000","message":"Done","commit_id":"01e74e9aff7a2e8b1dc652ba2460eb79222f5f02"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f314e5745653088a588dc66b26b4b82462452efe","unresolved":true,"context_lines":[{"line_number":264,"context_line":"// parent ClusterResolver and actually updates a given gRPC client connection"},{"line_number":265,"context_line":"// with information about the current set of nodes."},{"line_number":266,"context_line":"func (b *ClusterResolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {"},{"line_number":267,"context_line":"\t// We can only connect to \"metropolis://cluster\"."},{"line_number":268,"context_line":"\tif target.Scheme !\u003d \"metropolis\" || target.Authority !\u003d \"\" || target.Endpoint !\u003d \"control\" {"},{"line_number":269,"context_line":"\t\treturn nil, fmt.Errorf(\"invalid target: must be %s, is: %s\", MetropolisClusterAddress, target.Endpoint)"},{"line_number":270,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"fda23d30_15e9578e","line":267,"range":{"start_line":267,"start_character":28,"end_line":267,"end_character":48},"updated":"2022-04-05 10:47:29.000000000","message":"Needs to be updated","commit_id":"01e74e9aff7a2e8b1dc652ba2460eb79222f5f02"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d9dbcf6e08a5ec5bb7f1c8c94086bdc9ea864094","unresolved":false,"context_lines":[{"line_number":264,"context_line":"// parent ClusterResolver and actually updates a given gRPC client connection"},{"line_number":265,"context_line":"// with information about the current set of nodes."},{"line_number":266,"context_line":"func (b *ClusterResolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {"},{"line_number":267,"context_line":"\t// We can only connect to \"metropolis://cluster\"."},{"line_number":268,"context_line":"\tif target.Scheme !\u003d \"metropolis\" || target.Authority !\u003d \"\" || target.Endpoint !\u003d \"control\" {"},{"line_number":269,"context_line":"\t\treturn nil, fmt.Errorf(\"invalid target: must be %s, is: %s\", MetropolisClusterAddress, target.Endpoint)"},{"line_number":270,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"a7ef7abc_d5a02a93","line":267,"range":{"start_line":267,"start_character":28,"end_line":267,"end_character":48},"in_reply_to":"fda23d30_15e9578e","updated":"2022-04-05 11:54:03.000000000","message":"Done","commit_id":"01e74e9aff7a2e8b1dc652ba2460eb79222f5f02"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bf3729e1548bfadff21765b23f76a7f0e0b7b3de","unresolved":true,"context_lines":[{"line_number":15,"context_line":")"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"const ("},{"line_number":18,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///control\""},{"line_number":19,"context_line":")"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":5,"id":"a4934a79_527fc411","line":18,"range":{"start_line":18,"start_character":1,"end_line":18,"end_character":25},"updated":"2022-04-05 15:02:16.000000000","message":"I think that one should now also be called `MetropolisControlAddress`","commit_id":"d445a30f069a089ebf96f79d02b3ada37db693f8"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"73447b699dfa160276946c5ab0e669d724a9ba64","unresolved":false,"context_lines":[{"line_number":15,"context_line":")"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"const ("},{"line_number":18,"context_line":"\tMetropolisClusterAddress \u003d \"metropolis:///control\""},{"line_number":19,"context_line":")"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"// ClusterResolver is a gRPC resolver Builder that can be passed to"}],"source_content_type":"text/x-go","patch_set":5,"id":"50cc9b16_219ba4b4","line":18,"range":{"start_line":18,"start_character":1,"end_line":18,"end_character":25},"in_reply_to":"a4934a79_527fc411","updated":"2022-04-06 13:31:49.000000000","message":"Done","commit_id":"d445a30f069a089ebf96f79d02b3ada37db693f8"}]}
