)]}'
{"nova/tests/functional/libvirt/test_numa_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ef54e56b94149299735c83191b5820229a33ebe0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def _run_build_test(self, flavor_id, end_status\u003d\u0027ACTIVE\u0027,"},{"line_number":56,"context_line":"                        filter_called_on_error\u003dTrue,"},{"line_number":57,"context_line":"                        expected_usage\u003dNone,"},{"line_number":58,"context_line":"                        expected_create_server_failed_status\u003dNone):"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(bhagyashris): Always use host as \u0027compute1\u0027 so that it\u0027s"},{"line_number":61,"context_line":"        # possible to get resource provider information for verifying"},{"line_number":62,"context_line":"        # compute usages. This host name \u0027compute1\u0027 is hard coded in"},{"line_number":63,"context_line":"        # Connection class in fakelibvirt.py."},{"line_number":64,"context_line":"        # TODO(stephenfin): Remove the hardcoded limit, possibly overridding"},{"line_number":65,"context_line":"        # \u0027start_service\u0027 to make sure there isn\u0027t a mismatch"},{"line_number":66,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027compute1\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        compute_rp_uuid \u003d self.placement_api.get("},{"line_number":69,"context_line":"            \u0027/resource_providers?name\u003dcompute1\u0027).body["},{"line_number":70,"context_line":"            \u0027resource_providers\u0027][0][\u0027uuid\u0027]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Create server"},{"line_number":73,"context_line":"        good_server \u003d self._build_server(flavor_id)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        post \u003d {\u0027server\u0027: good_server}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if not expected_create_server_failed_status:"},{"line_number":78,"context_line":"            created_server \u003d self.api.post_server(post)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":81,"context_line":"                self.api.post_server, post)"},{"line_number":82,"context_line":"            self.assertEqual(expected_create_server_failed_status,"},{"line_number":83,"context_line":"                ex.response.status_code)"},{"line_number":84,"context_line":"            return"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        LOG.debug(\"created_server: %s\", created_server)"},{"line_number":87,"context_line":"        self.assertTrue(created_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_94c5f65d","line":84,"range":{"start_line":58,"start_character":0,"end_line":84,"end_character":18},"updated":"2019-09-11 08:54:26.000000000","message":"nit: I think it might be better to just duplicate this in \u0027test_create_server_with_pcpu_quota_failed\u0027 rather than add another conditional to \u0027_run_build_test\u0027","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"00db55019a6c9b18c4dcef82601de21f95b5afda","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def _run_build_test(self, flavor_id, end_status\u003d\u0027ACTIVE\u0027,"},{"line_number":56,"context_line":"                        filter_called_on_error\u003dTrue,"},{"line_number":57,"context_line":"                        expected_usage\u003dNone,"},{"line_number":58,"context_line":"                        expected_create_server_failed_status\u003dNone):"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # NOTE(bhagyashris): Always use host as \u0027compute1\u0027 so that it\u0027s"},{"line_number":61,"context_line":"        # possible to get resource provider information for verifying"},{"line_number":62,"context_line":"        # compute usages. This host name \u0027compute1\u0027 is hard coded in"},{"line_number":63,"context_line":"        # Connection class in fakelibvirt.py."},{"line_number":64,"context_line":"        # TODO(stephenfin): Remove the hardcoded limit, possibly overridding"},{"line_number":65,"context_line":"        # \u0027start_service\u0027 to make sure there isn\u0027t a mismatch"},{"line_number":66,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027compute1\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        compute_rp_uuid \u003d self.placement_api.get("},{"line_number":69,"context_line":"            \u0027/resource_providers?name\u003dcompute1\u0027).body["},{"line_number":70,"context_line":"            \u0027resource_providers\u0027][0][\u0027uuid\u0027]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Create server"},{"line_number":73,"context_line":"        good_server \u003d self._build_server(flavor_id)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        post \u003d {\u0027server\u0027: good_server}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if not expected_create_server_failed_status:"},{"line_number":78,"context_line":"            created_server \u003d self.api.post_server(post)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":81,"context_line":"                self.api.post_server, post)"},{"line_number":82,"context_line":"            self.assertEqual(expected_create_server_failed_status,"},{"line_number":83,"context_line":"                ex.response.status_code)"},{"line_number":84,"context_line":"            return"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        LOG.debug(\"created_server: %s\", created_server)"},{"line_number":87,"context_line":"        self.assertTrue(created_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_395505c7","line":84,"range":{"start_line":58,"start_character":0,"end_line":84,"end_character":18},"in_reply_to":"5faad753_94c5f65d","updated":"2019-09-11 22:50:41.000000000","message":"Done","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"53d1f57e33972b4bf35b6309e6a077cbd6f45bfc","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Validate the quota usage"},{"line_number":100,"context_line":"        if not filter_called_on_error and end_status \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":101,"context_line":"            quota_details \u003d self.api.get_quota_detail()"},{"line_number":102,"context_line":"            expected_core_usages \u003d expected_usage.get("},{"line_number":103,"context_line":"                \u0027VCPU\u0027, expected_usage.get(\u0027PCPU\u0027, -1))"},{"line_number":104,"context_line":"            self.assertEqual(expected_core_usages,"},{"line_number":105,"context_line":"                             quota_details[\u0027cores\u0027][\u0027in_use\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_5ac245eb","line":103,"range":{"start_line":102,"start_character":36,"end_line":103,"end_character":55},"updated":"2019-09-11 09:58:09.000000000","message":"you could have used _get_core_usages here right?","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"955e7cce88a0e334d8f4ee01bc9dc596d9809bac","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Validate the quota usage"},{"line_number":100,"context_line":"        if not filter_called_on_error and end_status \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":101,"context_line":"            quota_details \u003d self.api.get_quota_detail()"},{"line_number":102,"context_line":"            expected_core_usages \u003d expected_usage.get("},{"line_number":103,"context_line":"                \u0027VCPU\u0027, expected_usage.get(\u0027PCPU\u0027, -1))"},{"line_number":104,"context_line":"            self.assertEqual(expected_core_usages,"},{"line_number":105,"context_line":"                             quota_details[\u0027cores\u0027][\u0027in_use\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_ee000a6a","line":103,"range":{"start_line":102,"start_character":36,"end_line":103,"end_character":55},"in_reply_to":"5faad753_5ac245eb","updated":"2019-09-11 17:28:02.000000000","message":"You could but that\u0027s an inner method so it\u0027d have to be broken out.","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"203b1595c3baa9f9d69faa494ec20e2362ec47fa","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Validate the quota usage"},{"line_number":100,"context_line":"        if not filter_called_on_error and end_status \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":101,"context_line":"            quota_details \u003d self.api.get_quota_detail()"},{"line_number":102,"context_line":"            expected_core_usages \u003d expected_usage.get("},{"line_number":103,"context_line":"                \u0027VCPU\u0027, expected_usage.get(\u0027PCPU\u0027, -1))"},{"line_number":104,"context_line":"            self.assertEqual(expected_core_usages,"},{"line_number":105,"context_line":"                             quota_details[\u0027cores\u0027][\u0027in_use\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_ee280187","line":103,"range":{"start_line":102,"start_character":36,"end_line":103,"end_character":55},"in_reply_to":"5faad753_73af1ee3","updated":"2019-09-11 21:17:20.000000000","message":"I assume that\u0027s a fallthrough to ensure one of the two is present in the test. I change to 0 though since that is indeed what would actually happen if we had neither PCPU nor VCPU\n\nI added this in a latter patch along with the PCPU one","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"499d3053e4cbcf5ee406a9a0e3b84d7a401d1d5e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # Validate the quota usage"},{"line_number":100,"context_line":"        if not filter_called_on_error and end_status \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":101,"context_line":"            quota_details \u003d self.api.get_quota_detail()"},{"line_number":102,"context_line":"            expected_core_usages \u003d expected_usage.get("},{"line_number":103,"context_line":"                \u0027VCPU\u0027, expected_usage.get(\u0027PCPU\u0027, -1))"},{"line_number":104,"context_line":"            self.assertEqual(expected_core_usages,"},{"line_number":105,"context_line":"                             quota_details[\u0027cores\u0027][\u0027in_use\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_73af1ee3","line":103,"range":{"start_line":102,"start_character":36,"end_line":103,"end_character":55},"in_reply_to":"5faad753_ee000a6a","updated":"2019-09-11 20:33:55.000000000","message":"Sorry, what is the logic supposed to be here? Why would expected usage ever default to -1? Usage will be \u003e\u003d 0.\n\nAnd I tested this locally and this code is never reached.","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"53d1f57e33972b4bf35b6309e6a077cbd6f45bfc","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        fake_connection \u003d self._get_connection(host_info\u003dhost_info)"},{"line_number":320,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        extra_spec \u003d {\u0027resources:PCPU\u0027: \u00272\u0027}"},{"line_number":323,"context_line":"        flavor_id \u003d self._create_flavor(vcpu\u003d2, extra_spec\u003dextra_spec)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        # Update the core quota less than we requested"},{"line_number":326,"context_line":"        self.api.update_quota({\u0027cores\u0027: 1})"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        self._run_build_test(flavor_id,"},{"line_number":329,"context_line":"            expected_create_server_failed_status\u003d403)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def test_resize_vcpu_to_pcpu(self):"},{"line_number":332,"context_line":"        \"\"\"Create an unpinned instance and resize it to a flavor with pinning."}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_7aace133","line":329,"range":{"start_line":322,"start_character":0,"end_line":329,"end_character":53},"updated":"2019-09-11 09:58:09.000000000","message":"yep this makes sense\n\nbut we shoudl really be testing with hw:cpu_policy\u003ddedicated too. not using the {\u0027resources:PCPU\u0027: \u00272\u0027}","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"203b1595c3baa9f9d69faa494ec20e2362ec47fa","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        fake_connection \u003d self._get_connection(host_info\u003dhost_info)"},{"line_number":320,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        extra_spec \u003d {\u0027resources:PCPU\u0027: \u00272\u0027}"},{"line_number":323,"context_line":"        flavor_id \u003d self._create_flavor(vcpu\u003d2, extra_spec\u003dextra_spec)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        # Update the core quota less than we requested"},{"line_number":326,"context_line":"        self.api.update_quota({\u0027cores\u0027: 1})"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        self._run_build_test(flavor_id,"},{"line_number":329,"context_line":"            expected_create_server_failed_status\u003d403)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def test_resize_vcpu_to_pcpu(self):"},{"line_number":332,"context_line":"        \"\"\"Create an unpinned instance and resize it to a flavor with pinning."}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_4e3115ec","line":329,"range":{"start_line":322,"start_character":0,"end_line":329,"end_character":53},"in_reply_to":"5faad753_339206a0","updated":"2019-09-11 21:17:20.000000000","message":"The latter. You can\u0027t request \u0027hw:cpu_policy\u003ddedicated\u0027 and \u0027resources:PCPU\u003d2\u0027 alongside each other. It\u0027s one or the other.","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"499d3053e4cbcf5ee406a9a0e3b84d7a401d1d5e","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        fake_connection \u003d self._get_connection(host_info\u003dhost_info)"},{"line_number":320,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        extra_spec \u003d {\u0027resources:PCPU\u0027: \u00272\u0027}"},{"line_number":323,"context_line":"        flavor_id \u003d self._create_flavor(vcpu\u003d2, extra_spec\u003dextra_spec)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        # Update the core quota less than we requested"},{"line_number":326,"context_line":"        self.api.update_quota({\u0027cores\u0027: 1})"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        self._run_build_test(flavor_id,"},{"line_number":329,"context_line":"            expected_create_server_failed_status\u003d403)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def test_resize_vcpu_to_pcpu(self):"},{"line_number":332,"context_line":"        \"\"\"Create an unpinned instance and resize it to a flavor with pinning."}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_339206a0","line":329,"range":{"start_line":322,"start_character":0,"end_line":329,"end_character":53},"in_reply_to":"5faad753_7aace133","updated":"2019-09-11 20:33:55.000000000","message":"What do you mean here? Augmenting this test with hw:cpu_policy\u003ddedicated or adding a new test with hw:cpu_policy\u003ddedicated and without {\u0027resources:PCPU\u0027: \u00272\u0027}?","commit_id":"d6a577a539d7eb8e4778f8eeed21bea579f17fe1"}]}
