)]}'
{"cloud/agent/e2e/main_test.go":[{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"const GiB \u003d 1024 * 1024 * 1024"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"func TestE2E(t *testing.T) {"},{"line_number":60,"context_line":"\tvar f fakeServer"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"\t// Address inside fake QEMU userspace networking"}],"source_content_type":"text/x-go","patch_set":3,"id":"d49d60aa_7528f199","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":12},"updated":"2023-03-28 09:51:35.000000000","message":"```suggestion\n// TestMetropolisInstallE2E exercises the agent communicating against a test cloud \n// API server. This server requests the installation of the Metropolis \u0027TestOS\u0027,\n// which we then validate by looking for a string it outputs on boot.\nfunc TestMetropolisInstallE2E(t *testing.T) {\n```","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"const GiB \u003d 1024 * 1024 * 1024"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"func TestE2E(t *testing.T) {"},{"line_number":60,"context_line":"\tvar f fakeServer"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"\t// Address inside fake QEMU userspace networking"}],"source_content_type":"text/x-go","patch_set":3,"id":"0b857eec_36c21bce","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":12},"in_reply_to":"d49d60aa_7528f199","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"}],"cloud/agent/main.go":[{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"package main"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import ("},{"line_number":4,"context_line":"\t\"archive/zip\""}],"source_content_type":"text/x-go","patch_set":3,"id":"8be53f2a_0736a8b7","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":12},"updated":"2023-03-28 09:51:35.000000000","message":"Split this file up a bit, eg. into install.go, agent.go, etc.","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package main"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import ("},{"line_number":4,"context_line":"\t\"archive/zip\""}],"source_content_type":"text/x-go","patch_set":3,"id":"95bb4c47_39177fff","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":12},"in_reply_to":"8be53f2a_0736a8b7","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":95,"context_line":"\t\t}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"\t// Mount all available CGroups for v1 (v2 uses a single unified hierarchy"},{"line_number":99,"context_line":"\t// and is not supported by our runtimes yet)"},{"line_number":100,"context_line":"\tif err :\u003d unix.Mount(\"tmpfs\", \"/sys/fs/cgroup\", \"tmpfs\", unix.MS_NOEXEC|unix.MS_NOSUID|unix.MS_NODEV, \"\"); err !\u003d nil {"},{"line_number":101,"context_line":"\t\tpanic(err)"}],"source_content_type":"text/x-go","patch_set":3,"id":"45e6f47a_6327b33c","line":98,"range":{"start_line":98,"start_character":1,"end_line":98,"end_character":74},"updated":"2023-03-28 09:51:35.000000000","message":"Do we need this for the installer?","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":95,"context_line":"\t\t}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"\t// Mount all available CGroups for v1 (v2 uses a single unified hierarchy"},{"line_number":99,"context_line":"\t// and is not supported by our runtimes yet)"},{"line_number":100,"context_line":"\tif err :\u003d unix.Mount(\"tmpfs\", \"/sys/fs/cgroup\", \"tmpfs\", unix.MS_NOEXEC|unix.MS_NOSUID|unix.MS_NODEV, \"\"); err !\u003d nil {"},{"line_number":101,"context_line":"\t\tpanic(err)"}],"source_content_type":"text/x-go","patch_set":3,"id":"31ddff3c_f50da5fe","line":98,"range":{"start_line":98,"start_character":1,"end_line":98,"end_character":74},"in_reply_to":"45e6f47a_6327b33c","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":164,"context_line":"\t}"},{"line_number":165,"context_line":"\tagentInitRaw, err :\u003d os.ReadFile(\"/init.pb\")"},{"line_number":166,"context_line":"\tif err !\u003d nil {"},{"line_number":167,"context_line":"\t\treturn fmt.Errorf(\"Unable to read spec file from takeover: %v\", err)"},{"line_number":168,"context_line":"\t}"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"\tvar agentInit apb.AgentInit"}],"source_content_type":"text/x-go","patch_set":3,"id":"5ec977f5_aea659f4","line":167,"range":{"start_line":167,"start_character":61,"end_line":167,"end_character":63},"updated":"2023-03-28 09:51:35.000000000","message":"```suggestion\n\t\treturn fmt.Errorf(\"Unable to read spec file from takeover: %w\", err)\n```","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"\t}"},{"line_number":165,"context_line":"\tagentInitRaw, err :\u003d os.ReadFile(\"/init.pb\")"},{"line_number":166,"context_line":"\tif err !\u003d nil {"},{"line_number":167,"context_line":"\t\treturn fmt.Errorf(\"Unable to read spec file from takeover: %v\", err)"},{"line_number":168,"context_line":"\t}"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"\tvar agentInit apb.AgentInit"}],"source_content_type":"text/x-go","patch_set":3,"id":"ac9babcb_e061f612","line":167,"range":{"start_line":167,"start_character":61,"end_line":167,"end_character":63},"in_reply_to":"5ec977f5_aea659f4","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"\tvar agentInit apb.AgentInit"},{"line_number":171,"context_line":"\tif err :\u003d proto.Unmarshal(agentInitRaw, \u0026agentInit); err !\u003d nil {"},{"line_number":172,"context_line":"\t\treturn fmt.Errorf(\"unable to parse spec file from takeover: %v\", err)"},{"line_number":173,"context_line":"\t}"},{"line_number":174,"context_line":"\tl.Info(\"Monogon BMaaS Agent started\")"},{"line_number":175,"context_line":"\tif agentInit.TakeoverInit \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"1021276f_9cf6ee38","line":172,"range":{"start_line":172,"start_character":63,"end_line":172,"end_character":64},"updated":"2023-03-28 09:51:35.000000000","message":"```suggestion\n\t\treturn fmt.Errorf(\"unable to parse spec file from takeover: %w\", err)\n```","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"\tvar agentInit apb.AgentInit"},{"line_number":171,"context_line":"\tif err :\u003d proto.Unmarshal(agentInitRaw, \u0026agentInit); err !\u003d nil {"},{"line_number":172,"context_line":"\t\treturn fmt.Errorf(\"unable to parse spec file from takeover: %v\", err)"},{"line_number":173,"context_line":"\t}"},{"line_number":174,"context_line":"\tl.Info(\"Monogon BMaaS Agent started\")"},{"line_number":175,"context_line":"\tif agentInit.TakeoverInit \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"66e67f0f_ec7e80d1","line":172,"range":{"start_line":172,"start_character":63,"end_line":172,"end_character":64},"in_reply_to":"1021276f_9cf6ee38","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":200,"context_line":"\t\tRootCAs:      rootCAs,"},{"line_number":201,"context_line":"\t})))"},{"line_number":202,"context_line":"\tif err !\u003d nil {"},{"line_number":203,"context_line":"\t\treturn fmt.Errorf(\"error dialing BMaaS gRPC endpoint, rebooting: %w\", err)"},{"line_number":204,"context_line":"\t}"},{"line_number":205,"context_line":"\tc :\u003d bpb.NewAgentCallbackClient(conn)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"6260b013_7c98535b","line":203,"range":{"start_line":203,"start_character":54,"end_line":203,"end_character":65},"updated":"2023-03-28 09:51:35.000000000","message":"The \u0027rebooting\u0027 message should be handled by whatever actually does the rebooting.","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"\t\tRootCAs:      rootCAs,"},{"line_number":201,"context_line":"\t})))"},{"line_number":202,"context_line":"\tif err !\u003d nil {"},{"line_number":203,"context_line":"\t\treturn fmt.Errorf(\"error dialing BMaaS gRPC endpoint, rebooting: %w\", err)"},{"line_number":204,"context_line":"\t}"},{"line_number":205,"context_line":"\tc :\u003d bpb.NewAgentCallbackClient(conn)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"64d69d10_c0abb1e2","line":203,"range":{"start_line":203,"start_character":54,"end_line":203,"end_character":65},"in_reply_to":"6260b013_7c98535b","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":238,"context_line":"\t\t\tcontinue"},{"line_number":239,"context_line":"\t\t}"},{"line_number":240,"context_line":"\t\tb.Reset()"},{"line_number":241,"context_line":"\t\tif !hwReportSent {"},{"line_number":242,"context_line":"\t\t\thwReportSent \u003d true"},{"line_number":243,"context_line":"\t\t}"},{"line_number":244,"context_line":"\t\tif installationReport !\u003d nil {"},{"line_number":245,"context_line":"\t\t\tl.Infof(\"Installation report sent successfully, rebooting\")"},{"line_number":246,"context_line":"\t\t\t// Close connection and wait 1s to make sure that the RST"}],"source_content_type":"text/x-go","patch_set":3,"id":"bb872131_cd62633f","line":243,"range":{"start_line":241,"start_character":0,"end_line":243,"end_character":3},"updated":"2023-03-28 09:51:35.000000000","message":"```suggestion\n\t\thwReportSent \u003d true\n```","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":false,"context_lines":[{"line_number":238,"context_line":"\t\t\tcontinue"},{"line_number":239,"context_line":"\t\t}"},{"line_number":240,"context_line":"\t\tb.Reset()"},{"line_number":241,"context_line":"\t\tif !hwReportSent {"},{"line_number":242,"context_line":"\t\t\thwReportSent \u003d true"},{"line_number":243,"context_line":"\t\t}"},{"line_number":244,"context_line":"\t\tif installationReport !\u003d nil {"},{"line_number":245,"context_line":"\t\t\tl.Infof(\"Installation report sent successfully, rebooting\")"},{"line_number":246,"context_line":"\t\t\t// Close connection and wait 1s to make sure that the RST"}],"source_content_type":"text/x-go","patch_set":3,"id":"e8871d65_32765f11","line":243,"range":{"start_line":241,"start_character":0,"end_line":243,"end_character":3},"in_reply_to":"bb872131_cd62633f","updated":"2023-03-28 11:53:58.000000000","message":"Done","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"6c91fed98550bdd4a272ccd16bf400861a9a35e2","unresolved":true,"context_lines":[{"line_number":311,"context_line":"\t\t}"},{"line_number":312,"context_line":"\t\tdefer bundleRes.Body.Close()"},{"line_number":313,"context_line":"\t\tswitch bundleRes.StatusCode {"},{"line_number":314,"context_line":"\t\tcase http.StatusTooEarly, http.StatusTooManyRequests,"},{"line_number":315,"context_line":"\t\t\thttp.StatusInternalServerError, http.StatusBadGateway,"},{"line_number":316,"context_line":"\t\t\thttp.StatusServiceUnavailable, http.StatusGatewayTimeout:"},{"line_number":317,"context_line":"\t\t\tl.Warningf(\"Metropolis bundle request HTTP %d error, retrying\", bundleRes.StatusCode)"}],"source_content_type":"text/x-go","patch_set":3,"id":"ee2c4131_7ef5c81c","line":314,"range":{"start_line":314,"start_character":2,"end_line":314,"end_character":6},"updated":"2023-03-28 09:51:35.000000000","message":"You can probably switch this behaviour by the topmost decimal digit of the code instead.\n\n5xx \u003d\u003e retry\n4xx \u003d\u003e abort","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"d5a213f464067f58e2ca0c4a9e5d9a07c03ca577","unresolved":false,"context_lines":[{"line_number":311,"context_line":"\t\t}"},{"line_number":312,"context_line":"\t\tdefer bundleRes.Body.Close()"},{"line_number":313,"context_line":"\t\tswitch bundleRes.StatusCode {"},{"line_number":314,"context_line":"\t\tcase http.StatusTooEarly, http.StatusTooManyRequests,"},{"line_number":315,"context_line":"\t\t\thttp.StatusInternalServerError, http.StatusBadGateway,"},{"line_number":316,"context_line":"\t\t\thttp.StatusServiceUnavailable, http.StatusGatewayTimeout:"},{"line_number":317,"context_line":"\t\t\tl.Warningf(\"Metropolis bundle request HTTP %d error, retrying\", bundleRes.StatusCode)"}],"source_content_type":"text/x-go","patch_set":3,"id":"2ef32e60_973db74d","line":314,"range":{"start_line":314,"start_character":2,"end_line":314,"end_character":6},"in_reply_to":"e6bb87ab_3b70365b","updated":"2023-03-28 14:46:01.000000000","message":"Ack","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"},{"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":"bfb7db370d6c4f9727e65ae91c5b7f661a47331f","unresolved":true,"context_lines":[{"line_number":311,"context_line":"\t\t}"},{"line_number":312,"context_line":"\t\tdefer bundleRes.Body.Close()"},{"line_number":313,"context_line":"\t\tswitch bundleRes.StatusCode {"},{"line_number":314,"context_line":"\t\tcase http.StatusTooEarly, http.StatusTooManyRequests,"},{"line_number":315,"context_line":"\t\t\thttp.StatusInternalServerError, http.StatusBadGateway,"},{"line_number":316,"context_line":"\t\t\thttp.StatusServiceUnavailable, http.StatusGatewayTimeout:"},{"line_number":317,"context_line":"\t\t\tl.Warningf(\"Metropolis bundle request HTTP %d error, retrying\", bundleRes.StatusCode)"}],"source_content_type":"text/x-go","patch_set":3,"id":"e6bb87ab_3b70365b","line":314,"range":{"start_line":314,"start_character":2,"end_line":314,"end_character":6},"in_reply_to":"ee2c4131_7ef5c81c","updated":"2023-03-28 11:53:58.000000000","message":"Issue is with things like 429 Too Many Requests which should clearly be retried as well as things like 501 Not Implemented which IMO shouldn\u0027t be retried.","commit_id":"648fe18bceb19b24d4fbc33bffb7a762c330ee12"}]}
