)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8ddf58e2443be686ef73423953374ffea32e891b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Report VPMEM resources by updating provider tree. Custom"},{"line_number":10,"context_line":"Resource Classes are used to represent PMEM namespace resource"},{"line_number":11,"context_line":"here. Currently, VPMEM inventories and resources are belong to"},{"line_number":12,"context_line":"compute node ResourceProvider directly."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iaa63b9078950835f59345600754c5df580bdfc54"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7faddb67_531c40c1","line":11,"range":{"start_line":11,"start_character":49,"end_line":11,"end_character":52},"updated":"2019-08-30 20:29:18.000000000","message":"strike","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f476a70897b8f57d580fa6407911ba5ef5815d46","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Report VPMEM resources by updating provider tree. Custom"},{"line_number":10,"context_line":"Resource Classes are used to represent PMEM namespace resource"},{"line_number":11,"context_line":"here. Currently, VPMEM inventories and resources are belong to"},{"line_number":12,"context_line":"compute node ResourceProvider directly."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iaa63b9078950835f59345600754c5df580bdfc54"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"7faddb67_161d08bd","line":11,"range":{"start_line":11,"start_character":49,"end_line":11,"end_character":52},"updated":"2019-09-05 13:42:40.000000000","message":"strike","commit_id":"dbe915531e71b5b802566a0230fc3b620e0bacaa"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"be36eef3a063e02687bbda3c80285a52bf4b9135","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Report VPMEM resources by updating provider tree. Custom"},{"line_number":10,"context_line":"Resource Classes are used to represent PMEM namespace resource"},{"line_number":11,"context_line":"here. Currently, VPMEM inventories and resources are belong to"},{"line_number":12,"context_line":"compute node ResourceProvider directly."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iaa63b9078950835f59345600754c5df580bdfc54"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"5faad753_a2d6074f","line":11,"range":{"start_line":11,"start_character":49,"end_line":11,"end_character":52},"in_reply_to":"7faddb67_161d08bd","updated":"2019-09-06 10:50:39.000000000","message":"Done","commit_id":"dbe915531e71b5b802566a0230fc3b620e0bacaa"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"40d4da980740319bd67334f2a3734e262e8fa7b6","unresolved":false,"context_lines":[{"line_number":18732,"context_line":"        }"},{"line_number":18733,"context_line":""},{"line_number":18734,"context_line":"        self._test_update_provider_tree(vpmems\u003dvpmems_by_rc)"},{"line_number":18735,"context_line":"        inventory \u003d self._get_inventory()"},{"line_number":18736,"context_line":"        expect_resources \u003d {}"},{"line_number":18737,"context_line":"        inventory[\"CUSTOM_PMEM_NAMESPACE_4GB\"] \u003d {"},{"line_number":18738,"context_line":"            \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_7ed5c742","line":18735,"range":{"start_line":18735,"start_character":8,"end_line":18735,"end_character":17},"updated":"2019-09-10 15:38:44.000000000","message":"expected_inventory?","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"6da1c0a7ff02316b6be4d6559ecadc70a318c5a7","unresolved":false,"context_lines":[{"line_number":18732,"context_line":"        }"},{"line_number":18733,"context_line":""},{"line_number":18734,"context_line":"        self._test_update_provider_tree(vpmems\u003dvpmems_by_rc)"},{"line_number":18735,"context_line":"        inventory \u003d self._get_inventory()"},{"line_number":18736,"context_line":"        expect_resources \u003d {}"},{"line_number":18737,"context_line":"        inventory[\"CUSTOM_PMEM_NAMESPACE_4GB\"] \u003d {"},{"line_number":18738,"context_line":"            \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_6ee98818","line":18735,"range":{"start_line":18735,"start_character":8,"end_line":18735,"end_character":17},"in_reply_to":"5faad753_7ed5c742","updated":"2019-09-11 08:13:40.000000000","message":"Done","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"40d4da980740319bd67334f2a3734e262e8fa7b6","unresolved":false,"context_lines":[{"line_number":18733,"context_line":""},{"line_number":18734,"context_line":"        self._test_update_provider_tree(vpmems\u003dvpmems_by_rc)"},{"line_number":18735,"context_line":"        inventory \u003d self._get_inventory()"},{"line_number":18736,"context_line":"        expect_resources \u003d {}"},{"line_number":18737,"context_line":"        inventory[\"CUSTOM_PMEM_NAMESPACE_4GB\"] \u003d {"},{"line_number":18738,"context_line":"            \u0027total\u0027: 1,"},{"line_number":18739,"context_line":"            \u0027max_unit\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_1e5a93f2","line":18736,"range":{"start_line":18736,"start_character":8,"end_line":18736,"end_character":24},"updated":"2019-09-10 15:38:44.000000000","message":"expected_resources","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"6da1c0a7ff02316b6be4d6559ecadc70a318c5a7","unresolved":false,"context_lines":[{"line_number":18733,"context_line":""},{"line_number":18734,"context_line":"        self._test_update_provider_tree(vpmems\u003dvpmems_by_rc)"},{"line_number":18735,"context_line":"        inventory \u003d self._get_inventory()"},{"line_number":18736,"context_line":"        expect_resources \u003d {}"},{"line_number":18737,"context_line":"        inventory[\"CUSTOM_PMEM_NAMESPACE_4GB\"] \u003d {"},{"line_number":18738,"context_line":"            \u0027total\u0027: 1,"},{"line_number":18739,"context_line":"            \u0027max_unit\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_8eec042a","line":18736,"range":{"start_line":18736,"start_character":8,"end_line":18736,"end_character":24},"in_reply_to":"5faad753_1e5a93f2","updated":"2019-09-11 08:13:40.000000000","message":"Done","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6a4cf0f5d9739fe216bb6757e4a6418ec806446c","unresolved":false,"context_lines":[{"line_number":693,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":694,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        if not self._host.has_min_version(MIN_LIBVIRT_PMEM_SUPPORT,"},{"line_number":697,"context_line":"                                          MIN_QEMU_PMEM_SUPPORT):"},{"line_number":698,"context_line":"            # Set this to empty, so the vpmem resources will not"},{"line_number":699,"context_line":"            # be updated to provider tree and sent to placement"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_f2aebf2d","line":696,"updated":"2019-08-28 07:26:22.000000000","message":"we can check that when we parse the config option, if it doesn\u0027t match, then we fail directly.","commit_id":"e113d939b247bfcc2c80d8c05fbb5fb897e01e97"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"681df647a9274d18cbc0c8e38a0647c9c61e3f9c","unresolved":false,"context_lines":[{"line_number":693,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":694,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        if not self._host.has_min_version(MIN_LIBVIRT_PMEM_SUPPORT,"},{"line_number":697,"context_line":"                                          MIN_QEMU_PMEM_SUPPORT):"},{"line_number":698,"context_line":"            # Set this to empty, so the vpmem resources will not"},{"line_number":699,"context_line":"            # be updated to provider tree and sent to placement"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_88f07a68","line":696,"in_reply_to":"7faddb67_f2aebf2d","updated":"2019-08-28 10:46:03.000000000","message":"Done","commit_id":"e113d939b247bfcc2c80d8c05fbb5fb897e01e97"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8ddf58e2443be686ef73423953374ffea32e891b","unresolved":false,"context_lines":[{"line_number":6897,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6898,"context_line":"                                         result):"},{"line_number":6899,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6900,"context_line":"        prov_date \u003d provider_tree.data(nodename)"},{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_f35bec82","line":6900,"range":{"start_line":6900,"start_character":13,"end_line":6900,"end_character":17},"updated":"2019-08-30 20:29:18.000000000","message":"data","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"6fb366cb55ca0e4ee5c496437ffdff4f0526f6a9","unresolved":false,"context_lines":[{"line_number":6897,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6898,"context_line":"                                         result):"},{"line_number":6899,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6900,"context_line":"        prov_date \u003d provider_tree.data(nodename)"},{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_405456c6","line":6900,"range":{"start_line":6900,"start_character":13,"end_line":6900,"end_character":17},"in_reply_to":"7faddb67_f35bec82","updated":"2019-09-02 13:01:58.000000000","message":"Done","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8ddf58e2443be686ef73423953374ffea32e891b","unresolved":false,"context_lines":[{"line_number":6898,"context_line":"                                         result):"},{"line_number":6899,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6900,"context_line":"        prov_date \u003d provider_tree.data(nodename)"},{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"},{"line_number":6904,"context_line":"        if vpmems_by_rc:"},{"line_number":6905,"context_line":"            for rc, vpmems in vpmems_by_rc.items():"},{"line_number":6906,"context_line":"                result[rc] \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_d3e4b0aa","line":6903,"range":{"start_line":6901,"start_character":0,"end_line":6903,"end_character":41},"updated":"2019-08-30 20:29:18.000000000","message":"really don\u0027t need these additional variables; just inline the values below.","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"6fb366cb55ca0e4ee5c496437ffdff4f0526f6a9","unresolved":false,"context_lines":[{"line_number":6898,"context_line":"                                         result):"},{"line_number":6899,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6900,"context_line":"        prov_date \u003d provider_tree.data(nodename)"},{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"},{"line_number":6904,"context_line":"        if vpmems_by_rc:"},{"line_number":6905,"context_line":"            for rc, vpmems in vpmems_by_rc.items():"},{"line_number":6906,"context_line":"                result[rc] \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_a063cab0","line":6903,"range":{"start_line":6901,"start_character":0,"end_line":6903,"end_character":41},"in_reply_to":"7faddb67_d3e4b0aa","updated":"2019-09-02 13:01:58.000000000","message":"Done","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8ddf58e2443be686ef73423953374ffea32e891b","unresolved":false,"context_lines":[{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"},{"line_number":6904,"context_line":"        if vpmems_by_rc:"},{"line_number":6905,"context_line":"            for rc, vpmems in vpmems_by_rc.items():"},{"line_number":6906,"context_line":"                result[rc] \u003d {"},{"line_number":6907,"context_line":"                    \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_9302b83d","line":6904,"range":{"start_line":6904,"start_character":8,"end_line":6904,"end_character":24},"updated":"2019-08-30 20:29:18.000000000","message":"suggest\n\n if not self.vpmems_by_rc:\n     return\n\nand save yourself an indent for the remainder of the method.\n\n(L6922 is redundant anyway if there are no vpmems)","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"6fb366cb55ca0e4ee5c496437ffdff4f0526f6a9","unresolved":false,"context_lines":[{"line_number":6901,"context_line":"        rp_uuid \u003d prov_date.uuid"},{"line_number":6902,"context_line":"        resources \u003d prov_date.resources"},{"line_number":6903,"context_line":"        vpmems_by_rc \u003d self._vpmems_by_rc"},{"line_number":6904,"context_line":"        if vpmems_by_rc:"},{"line_number":6905,"context_line":"            for rc, vpmems in vpmems_by_rc.items():"},{"line_number":6906,"context_line":"                result[rc] \u003d {"},{"line_number":6907,"context_line":"                    \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_40c6969e","line":6904,"range":{"start_line":6904,"start_character":8,"end_line":6904,"end_character":24},"in_reply_to":"7faddb67_9302b83d","updated":"2019-09-02 13:01:58.000000000","message":"Done","commit_id":"5cc8c5d43539e0e095c125b147fd22d492bfed65"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8330ea0894824dac49bd6751c899cb371a573785","unresolved":false,"context_lines":[{"line_number":6916,"context_line":"                                         result, resources):"},{"line_number":6917,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6918,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6919,"context_line":"        if not self._vpmems_by_rc:"},{"line_number":6920,"context_line":"            return"},{"line_number":6921,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"},{"line_number":6922,"context_line":"            result[rc] \u003d {"},{"line_number":6923,"context_line":"                \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_478d137a","line":6920,"range":{"start_line":6919,"start_character":8,"end_line":6920,"end_character":18},"updated":"2019-09-05 06:01:47.000000000","message":"you needn\u0027t this check, since it is empty dict if there no vpmem, so the loop in the next line will just do nothing.\n\nAlso good to have unittest for this.","commit_id":"0d18b228b50a54eed55c9cd88337c146fdf35ffb"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"d4586b7c6b674fd128ff3c57de237d4c26f0a92e","unresolved":false,"context_lines":[{"line_number":6916,"context_line":"                                         result, resources):"},{"line_number":6917,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6918,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6919,"context_line":"        if not self._vpmems_by_rc:"},{"line_number":6920,"context_line":"            return"},{"line_number":6921,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"},{"line_number":6922,"context_line":"            result[rc] \u003d {"},{"line_number":6923,"context_line":"                \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_5ddba6e8","line":6920,"range":{"start_line":6919,"start_character":8,"end_line":6920,"end_character":18},"in_reply_to":"7faddb67_478d137a","updated":"2019-09-05 10:36:08.000000000","message":"existing tests covered this case for self._vpmems_by_rc is empty.","commit_id":"0d18b228b50a54eed55c9cd88337c146fdf35ffb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f476a70897b8f57d580fa6407911ba5ef5815d46","unresolved":false,"context_lines":[{"line_number":6914,"context_line":"        self.provider_tree \u003d copy.deepcopy(provider_tree)"},{"line_number":6915,"context_line":""},{"line_number":6916,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6917,"context_line":"                                         result, resources):"},{"line_number":6918,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6919,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6920,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"}],"source_content_type":"text/x-python","patch_set":19,"id":"7faddb67_56038042","line":6917,"range":{"start_line":6917,"start_character":41,"end_line":6917,"end_character":47},"updated":"2019-09-05 13:42:40.000000000","message":"This should be called something like inv_dict","commit_id":"dbe915531e71b5b802566a0230fc3b620e0bacaa"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"d584a6934417bd5e4b03b3f271ac5f88a73763ae","unresolved":false,"context_lines":[{"line_number":6914,"context_line":"        self.provider_tree \u003d copy.deepcopy(provider_tree)"},{"line_number":6915,"context_line":""},{"line_number":6916,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6917,"context_line":"                                         result, resources):"},{"line_number":6918,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6919,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6920,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"}],"source_content_type":"text/x-python","patch_set":19,"id":"5faad753_2e40c607","line":6917,"range":{"start_line":6917,"start_character":41,"end_line":6917,"end_character":47},"in_reply_to":"7faddb67_56038042","updated":"2019-09-06 10:49:15.000000000","message":"will use \u0027inventory\u0027, refer to provider_tree.update_inventory method.","commit_id":"dbe915531e71b5b802566a0230fc3b620e0bacaa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f476a70897b8f57d580fa6407911ba5ef5815d46","unresolved":false,"context_lines":[{"line_number":6917,"context_line":"                                         result, resources):"},{"line_number":6918,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6919,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6920,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"},{"line_number":6921,"context_line":"            result[rc] \u003d {"},{"line_number":6922,"context_line":"                \u0027total\u0027: len(vpmems),"},{"line_number":6923,"context_line":"                \u0027max_unit\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":19,"id":"7faddb67_765a3c50","line":6920,"range":{"start_line":6920,"start_character":26,"end_line":6920,"end_character":52},"updated":"2019-09-05 13:42:40.000000000","message":"nts: This can\u0027t be None ✔","commit_id":"dbe915531e71b5b802566a0230fc3b620e0bacaa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"40d4da980740319bd67334f2a3734e262e8fa7b6","unresolved":false,"context_lines":[{"line_number":6846,"context_line":"        # otherwise."},{"line_number":6847,"context_line":"        inv \u003d provider_tree.data(nodename).inventory"},{"line_number":6848,"context_line":"        ratios \u003d self._get_allocation_ratios(inv)"},{"line_number":6849,"context_line":"        resources \u003d collections.defaultdict(set)"},{"line_number":6850,"context_line":"        result \u003d {"},{"line_number":6851,"context_line":"            orc.VCPU: {"},{"line_number":6852,"context_line":"                \u0027total\u0027: vcpus,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_7e3aa798","line":6849,"range":{"start_line":6849,"start_character":0,"end_line":6849,"end_character":48},"updated":"2019-09-10 15:38:44.000000000","message":"Is there a reason we do this","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c60b0a4a52f62e75690d1d33cb779edd76a2bd12","unresolved":false,"context_lines":[{"line_number":6846,"context_line":"        # otherwise."},{"line_number":6847,"context_line":"        inv \u003d provider_tree.data(nodename).inventory"},{"line_number":6848,"context_line":"        ratios \u003d self._get_allocation_ratios(inv)"},{"line_number":6849,"context_line":"        resources \u003d collections.defaultdict(set)"},{"line_number":6850,"context_line":"        result \u003d {"},{"line_number":6851,"context_line":"            orc.VCPU: {"},{"line_number":6852,"context_line":"                \u0027total\u0027: vcpus,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_c430aaeb","line":6849,"range":{"start_line":6849,"start_character":0,"end_line":6849,"end_character":48},"in_reply_to":"5faad753_7e3aa798","updated":"2019-09-10 16:43:52.000000000","message":"In future (hopefully) the `resources` will be used for all the things, not just vpmems.\n\nOr did you mean using defaultdict instead of just a dict?","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b6b6d801a2c8f8c0e9a3dd374a70c6783615b87","unresolved":false,"context_lines":[{"line_number":6846,"context_line":"        # otherwise."},{"line_number":6847,"context_line":"        inv \u003d provider_tree.data(nodename).inventory"},{"line_number":6848,"context_line":"        ratios \u003d self._get_allocation_ratios(inv)"},{"line_number":6849,"context_line":"        resources \u003d collections.defaultdict(set)"},{"line_number":6850,"context_line":"        result \u003d {"},{"line_number":6851,"context_line":"            orc.VCPU: {"},{"line_number":6852,"context_line":"                \u0027total\u0027: vcpus,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_a46d6e99","line":6849,"range":{"start_line":6849,"start_character":0,"end_line":6849,"end_character":48},"in_reply_to":"5faad753_c430aaeb","updated":"2019-09-10 16:50:19.000000000","message":"I meant it being used for all the things, though I see now that perhaps we can\u0027t do this..","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"40d4da980740319bd67334f2a3734e262e8fa7b6","unresolved":false,"context_lines":[{"line_number":6913,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6914,"context_line":"                                         inventory, resources):"},{"line_number":6915,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6916,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6917,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"},{"line_number":6918,"context_line":"            inventory[rc] \u003d {"},{"line_number":6919,"context_line":"                \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_de4abb25","line":6916,"updated":"2019-09-10 15:38:44.000000000","message":"Instead of just creating it here? It doesn\u0027t look like \u0027resources\u0027 will ever be anything other than an the empty defaultdict, right?","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b6b6d801a2c8f8c0e9a3dd374a70c6783615b87","unresolved":false,"context_lines":[{"line_number":6913,"context_line":"    def _update_provider_tree_for_vpmems(self, provider_tree, nodename,"},{"line_number":6914,"context_line":"                                         inventory, resources):"},{"line_number":6915,"context_line":"        \"\"\"Update resources and inventory for vpmems in provider tree.\"\"\""},{"line_number":6916,"context_line":"        prov_data \u003d provider_tree.data(nodename)"},{"line_number":6917,"context_line":"        for rc, vpmems in self._vpmems_by_rc.items():"},{"line_number":6918,"context_line":"            inventory[rc] \u003d {"},{"line_number":6919,"context_line":"                \u0027total\u0027: len(vpmems),"}],"source_content_type":"text/x-python","patch_set":25,"id":"5faad753_e4f846c5","line":6916,"in_reply_to":"5faad753_de4abb25","updated":"2019-09-10 16:50:19.000000000","message":"Actually, we use that \u0027resources\u0027 dict in the call to \u0027update_resources\u0027 above, so we do need to what we\u0027re doing here","commit_id":"08c0711be99126ee6964118b0fcf0891050561b4"}]}
