)]}'
{"nova/pci/request.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"c23cfd4da0c37b2639af40bf9105829c229f55eb","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            \"type\": \"string\","},{"line_number":98,"context_line":"            \"pattern\": utils.PCI_VENDOR_PATTERN,"},{"line_number":99,"context_line":"        },"},{"line_number":100,"context_line":"        \"dev_type\": {"},{"line_number":101,"context_line":"            \"type\": \"string\","},{"line_number":102,"context_line":"            \"enum\": _ALIAS_DEV_TYPE,"},{"line_number":103,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_a95ff5e3","line":100,"range":{"start_line":100,"start_character":9,"end_line":100,"end_character":17},"updated":"2015-11-25 19:41:59.000000000","message":"not sure we can rename this - we need to keep config options backwards compatible","commit_id":"dcaeca5ce4ba31dcce13eb9c4bf4bc0a62f15ac3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aaaa8ca3406303f2e082961989aff56246651f7f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            \"type\": \"string\","},{"line_number":98,"context_line":"            \"pattern\": utils.PCI_VENDOR_PATTERN,"},{"line_number":99,"context_line":"        },"},{"line_number":100,"context_line":"        \"dev_type\": {"},{"line_number":101,"context_line":"            \"type\": \"string\","},{"line_number":102,"context_line":"            \"enum\": _ALIAS_DEV_TYPE,"},{"line_number":103,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_dbdc9b48","line":100,"in_reply_to":"9a8ffd7b_915fabe4","updated":"2015-12-01 13:41:02.000000000","message":"It\u0027s part of something an admin could be putting in a config file so changing this would possibly break deployments without providing any backwards compat.","commit_id":"dcaeca5ce4ba31dcce13eb9c4bf4bc0a62f15ac3"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"f44709c71be9ea1f9ce94c1645f3636679973f17","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            \"type\": \"string\","},{"line_number":98,"context_line":"            \"pattern\": utils.PCI_VENDOR_PATTERN,"},{"line_number":99,"context_line":"        },"},{"line_number":100,"context_line":"        \"dev_type\": {"},{"line_number":101,"context_line":"            \"type\": \"string\","},{"line_number":102,"context_line":"            \"enum\": _ALIAS_DEV_TYPE,"},{"line_number":103,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_915fabe4","line":100,"in_reply_to":"9a8ffd7b_a95ff5e3","updated":"2015-11-26 01:48:15.000000000","message":"It\u0027s not being used anywhere, someone prepared this for future work..\nanyway, I think there is way w/o changing this.","commit_id":"dcaeca5ce4ba31dcce13eb9c4bf4bc0a62f15ac3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"cb4ac0a666ad7cd822f8b1f5e3726a8db537d728","unresolved":false,"context_lines":[{"line_number":74,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"_ALIAS_DEV_TYPE \u003d [\u0027NIC\u0027, \u0027ACCEL\u0027, \u0027GPU\u0027, \u0027type-VF\u0027, \u0027type-PF\u0027]"},{"line_number":78,"context_line":"_ALIAS_CAP_TYPE \u003d [\u0027pci\u0027]"},{"line_number":79,"context_line":"_ALIAS_SCHEMA \u003d {"},{"line_number":80,"context_line":"    \"type\": \"object\","}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_aa6ad618","line":77,"range":{"start_line":77,"start_character":41,"end_line":77,"end_character":62},"updated":"2015-12-14 21:13:40.000000000","message":"I was looking into this a bit further - dev_type does not seem to be something that can work currently in Nova as it will never match a pool :/\n\nSame as capability type.\n\nI say we simplify this first, and then add a SR-IOV subtype here. I can put up a patch for this reasonably quickly.","commit_id":"d32ad3c3097ed118475f44597f045dcff2ac4446"}],"nova/pci/stats.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"c23cfd4da0c37b2639af40bf9105829c229f55eb","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                for d in range(len(alloc_devices)):"},{"line_number":163,"context_line":"                    self.add_device(alloc_devices.pop())"},{"line_number":164,"context_line":"                return None"},{"line_number":165,"context_line":"            for pool in pools:"},{"line_number":166,"context_line":"                if pool[\u0027count\u0027] \u003e\u003d count:"},{"line_number":167,"context_line":"                    num_alloc \u003d count"},{"line_number":168,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_ac64e321","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":30},"updated":"2015-11-25 19:41:59.000000000","message":"So I think this is not going to be as easy... we need to make sure that we decrese the count of the VF pools when we consume a PF. We\u0027re going to need to overhaul this logic quite a bit I was thinking of doing a few changes to the pools logic:\n\n* Allow to have multiple pools that would match the same spec (so mutliple pools of VFs that belong to different VFs) and allow for the claiming/filtering logic to consider multiple pools\n* allow for hierarchy of pools (a way of saying - this PF pool has these VF pools.\n\nThe above should allow us to do the claiming in such a way to remove all the VFs once we\u0027ve claimed the PF and the other way around.\n\nI haven\u0027t played with it in detail but it is definitely necessary.\n\nWhat do you think?","commit_id":"dcaeca5ce4ba31dcce13eb9c4bf4bc0a62f15ac3"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"f44709c71be9ea1f9ce94c1645f3636679973f17","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                for d in range(len(alloc_devices)):"},{"line_number":163,"context_line":"                    self.add_device(alloc_devices.pop())"},{"line_number":164,"context_line":"                return None"},{"line_number":165,"context_line":"            for pool in pools:"},{"line_number":166,"context_line":"                if pool[\u0027count\u0027] \u003e\u003d count:"},{"line_number":167,"context_line":"                    num_alloc \u003d count"},{"line_number":168,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_d14a13c5","line":165,"in_reply_to":"9a8ffd7b_ac64e321","updated":"2015-11-26 01:48:15.000000000","message":"Absolutely.\nI didn\u0027t mean to leave it like that. This is still wip.\nI was thinking about a hierarchy, but it gets tricky during the creation process.","commit_id":"dcaeca5ce4ba31dcce13eb9c4bf4bc0a62f15ac3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0e5e3da9bda718d29a445278c56664fe40c31ffd","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                                pool, [{\u0027numa_node\u0027: cell}])"},{"line_number":223,"context_line":"                                              for cell in numa_cells)]"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _filter_non_requested_pfs(self, request, matching_pools):"},{"line_number":226,"context_line":"        # Remove SRIOV_PFs from pools, unless it has been explicitly requested"},{"line_number":227,"context_line":"        if all(spec.get(\u0027dev_type\u0027) !\u003d fields.PciDeviceType.SRIOV_PF for"},{"line_number":228,"context_line":"               spec in request.spec):"},{"line_number":229,"context_line":"            matching_pools \u003d self._filter_pools_for_pfs(matching_pools)"},{"line_number":230,"context_line":"        return matching_pools"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    @staticmethod"},{"line_number":233,"context_line":"    def _filter_pools_for_pfs(pools):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_3f96cf4c","line":230,"range":{"start_line":225,"start_character":4,"end_line":230,"end_character":29},"updated":"2015-12-10 22:15:53.000000000","message":"So I am not sure we need this - won\u0027t this automatically get sorted by _filter_pools_for_spec? The only reason we need this for NUMA is because it can\u0027t be part of the spec.","commit_id":"d32ad3c3097ed118475f44597f045dcff2ac4446"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0e5e3da9bda718d29a445278c56664fe40c31ffd","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            matching_pools \u003d self._filter_pools_for_pfs(matching_pools)"},{"line_number":230,"context_line":"        return matching_pools"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    @staticmethod"},{"line_number":233,"context_line":"    def _filter_pools_for_pfs(pools):"},{"line_number":234,"context_line":"        return [pool for pool in pools"},{"line_number":235,"context_line":"                if not pool.get(\u0027dev_type\u0027) \u003d\u003d fields.PciDeviceType.SRIOV_PF]"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def _apply_request(self, pools, request, numa_cells\u003dNone):"},{"line_number":238,"context_line":"        count \u003d request.count"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_9f01036d","line":235,"range":{"start_line":232,"start_character":3,"end_line":235,"end_character":77},"updated":"2015-12-10 22:15:53.000000000","message":"This one as well... am I missing something here?","commit_id":"d32ad3c3097ed118475f44597f045dcff2ac4446"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"449ae10a0d55b9baf4553fea9fca872e14500234","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        return all([self._apply_request(pools, r, numa_cells)"},{"line_number":267,"context_line":"                        for r in requests])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def apply_requests(self, requests, numa_cells\u003dNone):"},{"line_number":270,"context_line":"        \"\"\"Apply PCI requests to the PCI stats."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        This is used in multiple instance creation, when the scheduler has to"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_51570f02","line":269,"range":{"start_line":269,"start_character":8,"end_line":269,"end_character":22},"updated":"2015-12-10 22:23:29.000000000","message":"Well in theory we want to do \u0027_handle_device_dependants\u0027 in this path AND  we can\u0027t really use the database here since this has to happen on the scheduler too and we don\u0027t have individual devices there, only pools... mmmm tricky...","commit_id":"d32ad3c3097ed118475f44597f045dcff2ac4446"}]}
