)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a92c721ea9794d296fff8732faad21db07358e8e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                     returned from virt driver\u0027s get_inventory() method"},{"line_number":101,"context_line":"    :param compute_node: `objects.ComputeNode` describing the compute node"},{"line_number":102,"context_line":"    \"\"\""},{"line_number":103,"context_line":"    if orc.VCPU in inv_data:"},{"line_number":104,"context_line":"        cpu_inv \u003d inv_data[orc.VCPU]"},{"line_number":105,"context_line":"        if \u0027allocation_ratio\u0027 not in cpu_inv:"},{"line_number":106,"context_line":"            cpu_inv[\u0027allocation_ratio\u0027] \u003d cn.cpu_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_7b9c0f5d","line":103,"range":{"start_line":103,"start_character":7,"end_line":103,"end_character":10},"updated":"2019-01-23 11:20:36.000000000","message":"Tolkien would be proud","commit_id":"c7490fcdb46fe883aefc2c85293973e9df226b3e"}],"nova/rc_fields.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2f4d063697487f5c38531a745af2fbccfe3a19c7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":"\"\"\"Standard Resource Class Fields.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# NOTE(cdent): This file is only used by the placement code within"},{"line_number":16,"context_line":"# nova. Other uses of resource classes in nova make use of the"},{"line_number":17,"context_line":"# os-resource-classes library. The placement code within nova"},{"line_number":18,"context_line":"# continues to use this so that that code can remain unchanged."}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_7c37254f","line":15,"updated":"2019-02-07 15:28:41.000000000","message":"This is the only non-rebase-y difference from the previous PS.","commit_id":"27617ee1931b3240dbd0ad4c7d8ffd64cc202bc9"}],"nova/tests/unit/test_utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"407744d6070a97678a337e3a2552fc2dd4f2e898","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"            (\"CUSTM_BOB\", \"CUSTOM_CUSTM_BOB\"),"},{"line_number":1432,"context_line":"        ]"},{"line_number":1433,"context_line":"        for test_value, expected in values:"},{"line_number":1434,"context_line":"            result \u003d utils.normalize_rc_name(test_value)"},{"line_number":1435,"context_line":"            self.assertEqual(expected, result)"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"    def test_normalize_name_bug_1762789(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_b08a9118","line":1434,"range":{"start_line":1434,"start_character":27,"end_line":1434,"end_character":43},"updated":"2019-01-23 15:03:18.000000000","message":"oo, should this util (and these tests) be moved to os-resource-classes?","commit_id":"c7490fcdb46fe883aefc2c85293973e9df226b3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83209076416bffa2cb1fc9a2e962253caf82940b","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"            (\"CUSTM_BOB\", \"CUSTOM_CUSTM_BOB\"),"},{"line_number":1432,"context_line":"        ]"},{"line_number":1433,"context_line":"        for test_value, expected in values:"},{"line_number":1434,"context_line":"            result \u003d utils.normalize_rc_name(test_value)"},{"line_number":1435,"context_line":"            self.assertEqual(expected, result)"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"    def test_normalize_name_bug_1762789(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_55762540","line":1434,"range":{"start_line":1434,"start_character":27,"end_line":1434,"end_character":43},"in_reply_to":"9fdfeff1_b08a9118","updated":"2019-01-31 18:22:00.000000000","message":"Added to os-resource-classes via [1]. Once that merges, a release. Then requirements u-c. Then a patch to remove it here, with appropriate requirements/l-c bump.\n\n[1] https://review.openstack.org/#/c/634258/","commit_id":"c7490fcdb46fe883aefc2c85293973e9df226b3e"}],"nova/utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"407744d6070a97678a337e3a2552fc2dd4f2e898","unresolved":false,"context_lines":[{"line_number":1362,"context_line":"    return outer_wrapper"},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"def normalize_rc_name(rc_name):"},{"line_number":1366,"context_line":"    \"\"\"Normalize a resource class name to standard form.\"\"\""},{"line_number":1367,"context_line":"    if rc_name is None:"},{"line_number":1368,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_d08dd531","line":1365,"range":{"start_line":1365,"start_character":4,"end_line":1365,"end_character":21},"updated":"2019-01-23 15:03:18.000000000","message":"pretty sure it should, yeah.","commit_id":"c7490fcdb46fe883aefc2c85293973e9df226b3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2f4d063697487f5c38531a745af2fbccfe3a19c7","unresolved":false,"context_lines":[{"line_number":1366,"context_line":"    return outer_wrapper"},{"line_number":1367,"context_line":""},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"def normalize_rc_name(rc_name):"},{"line_number":1370,"context_line":"    \"\"\"Normalize a resource class name to standard form.\"\"\""},{"line_number":1371,"context_line":"    if rc_name is None:"},{"line_number":1372,"context_line":"        return None"},{"line_number":1373,"context_line":"    # Replace non-alphanumeric characters with underscores"},{"line_number":1374,"context_line":"    norm_name \u003d re.sub(\u0027[^0-9A-Za-z]+\u0027, \u0027_\u0027, rc_name)"},{"line_number":1375,"context_line":"    # Bug #1762789: Do .upper after replacing non alphanumerics."},{"line_number":1376,"context_line":"    norm_name \u003d norm_name.upper()"},{"line_number":1377,"context_line":"    norm_name \u003d orc.CUSTOM_NAMESPACE + norm_name"},{"line_number":1378,"context_line":"    return norm_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_5cffc166","line":1378,"range":{"start_line":1369,"start_character":0,"end_line":1378,"end_character":20},"updated":"2019-02-07 15:28:41.000000000","message":"TODO: remove once [1] is released.\n\n[1] https://review.openstack.org/634258","commit_id":"27617ee1931b3240dbd0ad4c7d8ffd64cc202bc9"}]}
