)]}'
{"openstack/compute/v2/server.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"986adf1bc4868d4c28f0a7d20e8beedc45eedb83","unresolved":true,"context_lines":[{"line_number":552,"context_line":"    def fetch_topology(self, session):"},{"line_number":553,"context_line":"        url \u003d utils.urljoin(Server.base_path, self.id, \u0027topology\u0027)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        response \u003d session.get(url)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        exceptions.raise_from_response(response)"},{"line_number":558,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"0c9970ac_5874a986","line":555,"updated":"2021-05-12 07:27:24.000000000","message":"isn\u0027t it required for this call to specify microversion? @stephenfin?","commit_id":"21ea5be15403f6f0e66f2aae62bea571863bacd2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f66b688c012e7a24aa8e3a7b897dba39bf4b1148","unresolved":true,"context_lines":[{"line_number":552,"context_line":"    def fetch_topology(self, session):"},{"line_number":553,"context_line":"        url \u003d utils.urljoin(Server.base_path, self.id, \u0027topology\u0027)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        response \u003d session.get(url)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        exceptions.raise_from_response(response)"},{"line_number":558,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e7097186_3530bbba","line":555,"in_reply_to":"0c9970ac_5874a986","updated":"2021-05-12 13:57:35.000000000","message":"Yeah, this isn\u0027t available before microversion 2.78 as the title of the commit message suggests","commit_id":"21ea5be15403f6f0e66f2aae62bea571863bacd2"},{"author":{"_account_id":33012,"name":"Ryan Zimmerman","email":"zimmerry@osuosl.org","username":"zimmerry"},"change_message_id":"e45b4dc95337a4dd043c0ab76be45639d1ef5bdb","unresolved":false,"context_lines":[{"line_number":552,"context_line":"    def fetch_topology(self, session):"},{"line_number":553,"context_line":"        url \u003d utils.urljoin(Server.base_path, self.id, \u0027topology\u0027)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        response \u003d session.get(url)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        exceptions.raise_from_response(response)"},{"line_number":558,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3da86607_2be562c2","line":555,"in_reply_to":"e7097186_3530bbba","updated":"2021-05-19 16:01:49.000000000","message":"Fixed.","commit_id":"21ea5be15403f6f0e66f2aae62bea571863bacd2"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"09486cc10d0f58a6cac48acb21021bcf63868803","unresolved":true,"context_lines":[{"line_number":563,"context_line":"                    self.topology \u003d data[\u0027topology\u0027]"},{"line_number":564,"context_line":"            except ValueError:"},{"line_number":565,"context_line":"                pass"},{"line_number":566,"context_line":"        else:"},{"line_number":567,"context_line":"            message \u003d (\"API version %s is required to get NUMA \""},{"line_number":568,"context_line":"                       \"topology, but it is not available.\") % 2.78"},{"line_number":569,"context_line":"            raise exceptions.NotSupported(message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"f82b5246_9c0ac3b0","line":566,"updated":"2021-05-20 16:26:17.000000000","message":"that can be replaced with require_microversion, which would take care of verifying and raising exception (https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/utils.py#L148)","commit_id":"9a9ce54de5808ab6701c443f52205e63c30508d3"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"5a5dbc30c27cadba5c74f27b325e98cd29324ad4","unresolved":true,"context_lines":[{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            data \u003d response.json()"},{"line_number":563,"context_line":"            if \u0027topology\u0027 in data:"},{"line_number":564,"context_line":"                self.topology \u003d data[\u0027topology\u0027]"},{"line_number":565,"context_line":"        except ValueError:"},{"line_number":566,"context_line":"            pass"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"f7d37270_859520ea","line":564,"updated":"2021-05-23 08:45:28.000000000","message":"now you try to set resource property which doesn\u0027t exist. I cant see at the moment why this doesn\u0027t fail actually.\nI am not sure topology should be a property of the server. Before the last PS it was returning dict and I personally find this better.\n@stephenfin, your thoughts?","commit_id":"d1c574914ef7dfe9973f84dc6de3aa74f44832fa"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"119e0652bcf4f122bebba7bdda502bc1b23c020b","unresolved":true,"context_lines":[{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            data \u003d response.json()"},{"line_number":563,"context_line":"            if \u0027topology\u0027 in data:"},{"line_number":564,"context_line":"                self.topology \u003d data[\u0027topology\u0027]"},{"line_number":565,"context_line":"        except ValueError:"},{"line_number":566,"context_line":"            pass"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fb0cc751_833d6049","line":564,"in_reply_to":"69da5d34_9ec3ef30","updated":"2021-05-26 17:07:03.000000000","message":"I would tend for this. It doesn\u0027t behave like any other attribute of the resource (i.e. tags, security_groups, which are returned in the GET request, but can be also fetched separately)","commit_id":"d1c574914ef7dfe9973f84dc6de3aa74f44832fa"},{"author":{"_account_id":33012,"name":"Ryan Zimmerman","email":"zimmerry@osuosl.org","username":"zimmerry"},"change_message_id":"89d5cc33d76251b9608cd693727e23bbcbc6e99b","unresolved":true,"context_lines":[{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            data \u003d response.json()"},{"line_number":563,"context_line":"            if \u0027topology\u0027 in data:"},{"line_number":564,"context_line":"                self.topology \u003d data[\u0027topology\u0027]"},{"line_number":565,"context_line":"        except ValueError:"},{"line_number":566,"context_line":"            pass"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"69da5d34_9ec3ef30","line":564,"in_reply_to":"f760c415_19aa360e","updated":"2021-05-26 16:46:34.000000000","message":"So if I\u0027m understanding correctly, I should replace line 564 with return data[\u0027topology\u0027], and then fix the test to work with that?","commit_id":"d1c574914ef7dfe9973f84dc6de3aa74f44832fa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7122d542a718764f0692dd605d9171d17df2491e","unresolved":true,"context_lines":[{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            data \u003d response.json()"},{"line_number":563,"context_line":"            if \u0027topology\u0027 in data:"},{"line_number":564,"context_line":"                self.topology \u003d data[\u0027topology\u0027]"},{"line_number":565,"context_line":"        except ValueError:"},{"line_number":566,"context_line":"            pass"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"f760c415_19aa360e","line":564,"in_reply_to":"f7d37270_859520ea","updated":"2021-05-25 17:04:16.000000000","message":"I guess he\u0027s copying what we do for security groups below? If it was okay there, perhaps it\u0027s good enough here also?","commit_id":"d1c574914ef7dfe9973f84dc6de3aa74f44832fa"}],"openstack/tests/unit/compute/v2/test_server.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"986adf1bc4868d4c28f0a7d20e8beedc45eedb83","unresolved":true,"context_lines":[{"line_number":114,"context_line":"    ],"},{"line_number":115,"context_line":"    \u0027updated\u0027: \u00272017-02-14T19:24:00Z\u0027,"},{"line_number":116,"context_line":"    \u0027user_id\u0027: \u0027fake\u0027,"},{"line_number":117,"context_line":"    \u0027topology\u0027: {"},{"line_number":118,"context_line":"        \u0027nodes\u0027: ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \u0027cpu_pinning\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"c307ddce_880af07f","line":117,"updated":"2021-05-12 07:27:24.000000000","message":"why do you include it here in the server data?","commit_id":"21ea5be15403f6f0e66f2aae62bea571863bacd2"},{"author":{"_account_id":33012,"name":"Ryan Zimmerman","email":"zimmerry@osuosl.org","username":"zimmerry"},"change_message_id":"e45b4dc95337a4dd043c0ab76be45639d1ef5bdb","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    ],"},{"line_number":115,"context_line":"    \u0027updated\u0027: \u00272017-02-14T19:24:00Z\u0027,"},{"line_number":116,"context_line":"    \u0027user_id\u0027: \u0027fake\u0027,"},{"line_number":117,"context_line":"    \u0027topology\u0027: {"},{"line_number":118,"context_line":"        \u0027nodes\u0027: ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \u0027cpu_pinning\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"07f1591c_40dc61b6","line":117,"in_reply_to":"c307ddce_880af07f","updated":"2021-05-19 16:01:49.000000000","message":"I misunderstood how the tests and server data interacted. Fixed.","commit_id":"21ea5be15403f6f0e66f2aae62bea571863bacd2"}]}
