)]}'
{"nova/objects/pci_device.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"49a5b0a020cbd33e9c846cbd563dfe60cf80b85f","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                self._from_db_object(self._context, self, db_pci)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _update_dependants_status(self, status):"},{"line_number":207,"context_line":"        vfs_list \u003d objects.PciDeviceList.get_by_parent_address("},{"line_number":208,"context_line":"                                         self._context, self.address)"},{"line_number":209,"context_line":"        for vf in vfs_list:"},{"line_number":210,"context_line":"            vf.status \u003d status"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_a70f23e0","line":208,"range":{"start_line":207,"start_character":8,"end_line":208,"end_character":69},"updated":"2015-11-25 18:13:47.000000000","message":"Back to what I was saying on the first patch of the series - we don\u0027t really need to make the address a foreign key (it is really awkward to do it like that when we can make do it on the primary key). We will do this query from the object so we have the id.","commit_id":"494bdfa316839426c3e75094461f688cc5006d1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                self._from_db_object(self._context, self, db_pci)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @staticmethod"},{"line_number":247,"context_line":"    def _update_dependants_status(dev_list, status):"},{"line_number":248,"context_line":"        for dev in dev_list:"},{"line_number":249,"context_line":"            dev.status \u003d status"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_d2ac838e","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":33},"updated":"2016-01-18 11:10:24.000000000","message":"there is nothing about this method that actually requires any realtionship so the name is sort of misleading. bulk_update_status maybe?","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"78180c613b234dd9d51b8f3657038f5affc25870","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                self._from_db_object(self._context, self, db_pci)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @staticmethod"},{"line_number":247,"context_line":"    def _update_dependants_status(dev_list, status):"},{"line_number":248,"context_line":"        for dev in dev_list:"},{"line_number":249,"context_line":"            dev.status \u003d status"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_1aeb047a","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":33},"in_reply_to":"da6ed579_d2ac838e","updated":"2016-01-18 14:32:39.000000000","message":"Done","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        if self.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_PF:"},{"line_number":259,"context_line":"            # Update PF status to CLAIMED if all of it dependants are free"},{"line_number":260,"context_line":"            # and set their status to CLAIMED"},{"line_number":261,"context_line":"            vfs_list \u003d objects.PciDeviceList.get_by_parent_address("},{"line_number":262,"context_line":"                                             self._context,"},{"line_number":263,"context_line":"                                             self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_356f0994","line":260,"range":{"start_line":260,"start_character":38,"end_line":260,"end_character":45},"updated":"2016-01-18 11:10:24.000000000","message":"but we set the status to UNCLAIMABLE actually","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"78180c613b234dd9d51b8f3657038f5affc25870","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        if self.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_PF:"},{"line_number":259,"context_line":"            # Update PF status to CLAIMED if all of it dependants are free"},{"line_number":260,"context_line":"            # and set their status to CLAIMED"},{"line_number":261,"context_line":"            vfs_list \u003d objects.PciDeviceList.get_by_parent_address("},{"line_number":262,"context_line":"                                             self._context,"},{"line_number":263,"context_line":"                                             self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_3d74c29a","line":260,"range":{"start_line":260,"start_character":38,"end_line":260,"end_character":45},"in_reply_to":"da6ed579_356f0994","updated":"2016-01-18 14:32:39.000000000","message":"Thanks, that\u0027s a mistake in a comment.","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                    compute_node_id\u003dself.compute_node_id,"},{"line_number":268,"context_line":"                    address\u003dself.address)"},{"line_number":269,"context_line":"            self._update_dependants_status(vfs_list,"},{"line_number":270,"context_line":"                                           fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        elif self.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_VF:"},{"line_number":273,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_b5d77922","line":270,"range":{"start_line":270,"start_character":66,"end_line":270,"end_character":77},"updated":"2016-01-18 11:10:24.000000000","message":"...here","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":274,"context_line":"            # previuosly allocated or claimed"},{"line_number":275,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":276,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":277,"context_line":"                                  fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":278,"context_line":"            try:"},{"line_number":279,"context_line":"                parent \u003d self.get_by_dev_addr(self._context,"},{"line_number":280,"context_line":"                                              self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_1020d348","line":277,"range":{"start_line":276,"start_character":34,"end_line":277,"end_character":68},"updated":"2016-01-18 11:10:24.000000000","message":"how come these 2 are OK statuses. I understand this to mean \"claimed (allocated) but not directly by an instance\" Wouldn\u0027t that mean some kind of inconsistency has happened here? Shouldn\u0027t really the only OK status be AVAILABLE?","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"78180c613b234dd9d51b8f3657038f5affc25870","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":274,"context_line":"            # previuosly allocated or claimed"},{"line_number":275,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":276,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":277,"context_line":"                                  fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":278,"context_line":"            try:"},{"line_number":279,"context_line":"                parent \u003d self.get_by_dev_addr(self._context,"},{"line_number":280,"context_line":"                                              self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_5d2e56fb","line":277,"range":{"start_line":276,"start_character":34,"end_line":277,"end_character":68},"in_reply_to":"da6ed579_1020d348","updated":"2016-01-18 14:32:39.000000000","message":"We are clamming a VF and it\u0027s ok if it\u0027s parent isn\u0027t available. It basically means that one of the VFs that belong to it\u0027s parent has already been allocated or claimed to an other instance.\n\nLet\u0027s say there is a PF with 4 VFs. We have allocated one VF to an instance. We will set the VF to allocated and it\u0027s parent to UNAVAILABLE, so no one will allocate or claim it.\nBut it is still ok for a new instance to allocate another VF from this PF.\n\nHowever, it is not ok to claim a VF is it\u0027s parent is claimed..","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"7e9138cd5d9c1614818743e1fa32672c90fdb76f","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":274,"context_line":"            # previuosly allocated or claimed"},{"line_number":275,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":276,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":277,"context_line":"                                  fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":278,"context_line":"            try:"},{"line_number":279,"context_line":"                parent \u003d self.get_by_dev_addr(self._context,"},{"line_number":280,"context_line":"                                              self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_f382dbc7","line":277,"range":{"start_line":276,"start_character":34,"end_line":277,"end_character":68},"in_reply_to":"da6ed579_5034fdf9","updated":"2016-01-18 14:56:04.000000000","message":"Sure, will do.","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"000c647822d707668abbd928ffda775ca10c716d","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            # Update VF status to CLAIMED if it\u0027s parent has not been"},{"line_number":274,"context_line":"            # previuosly allocated or claimed"},{"line_number":275,"context_line":"            parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":276,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":277,"context_line":"                                  fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":278,"context_line":"            try:"},{"line_number":279,"context_line":"                parent \u003d self.get_by_dev_addr(self._context,"},{"line_number":280,"context_line":"                                              self.compute_node_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_5034fdf9","line":277,"range":{"start_line":276,"start_character":34,"end_line":277,"end_character":68},"in_reply_to":"da6ed579_5d2e56fb","updated":"2016-01-18 14:49:55.000000000","message":"OK makes sense - might be good to comment","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                       fields.PciDeviceStatus.CLAIMED)"},{"line_number":303,"context_line":"        parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":304,"context_line":"                              fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":305,"context_line":"                              fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":306,"context_line":"        dependatns_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":307,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":308,"context_line":"        if self.status not in ok_statuses:"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_90a043a7","line":305,"range":{"start_line":305,"start_character":30,"end_line":305,"end_character":64},"updated":"2016-01-18 11:10:24.000000000","message":"Following the above logic from ok_statuses - this should not be a valid status no?","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"78180c613b234dd9d51b8f3657038f5affc25870","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                       fields.PciDeviceStatus.CLAIMED)"},{"line_number":303,"context_line":"        parent_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":304,"context_line":"                              fields.PciDeviceStatus.UNCLAIMABLE,"},{"line_number":305,"context_line":"                              fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":306,"context_line":"        dependatns_ok_statuses \u003d (fields.PciDeviceStatus.AVAILABLE,"},{"line_number":307,"context_line":"                                  fields.PciDeviceStatus.UNCLAIMABLE)"},{"line_number":308,"context_line":"        if self.status not in ok_statuses:"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_9d492eba","line":305,"range":{"start_line":305,"start_character":30,"end_line":305,"end_character":64},"in_reply_to":"da6ed579_90a043a7","updated":"2016-01-18 14:32:39.000000000","message":"This is the same as I\u0027ve described above.","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8e7f259518d187eaeb6a2a233147295d5f164169","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # Version 1.2: added request_id field"},{"line_number":91,"context_line":"    # Version 1.3: Added field to represent PCI device NUMA node"},{"line_number":92,"context_line":"    # Version 1.4: Added parent_addr field"},{"line_number":93,"context_line":"    VERSION \u003d \u00271.5\u0027"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    fields \u003d {"},{"line_number":96,"context_line":"        \u0027id\u0027: fields.IntegerField(),"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba63e191_fd2cfaac","line":93,"range":{"start_line":93,"start_character":4,"end_line":93,"end_character":19},"updated":"2016-01-19 15:40:08.000000000","message":"We probably want to add a comment as well above?","commit_id":"583d2dcde10c9e277adb2a45180d21c53d7b3cba"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8e7f259518d187eaeb6a2a233147295d5f164169","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                              fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":138,"context_line":"            status \u003d primitive[\u0027status\u0027]"},{"line_number":139,"context_line":"            if status in added_statuses:"},{"line_number":140,"context_line":"                raise exception.ObjectActionError("},{"line_number":141,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":142,"context_line":"                    reason\u003d\u0027status\u003d%s not supported in version %s\u0027 % ("},{"line_number":143,"context_line":"                        status, target_version))"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba63e191_96bcbb6d","line":140,"range":{"start_line":140,"start_character":32,"end_line":140,"end_character":49},"updated":"2016-01-19 15:40:08.000000000","message":"I think dansmith was saying we should use ServiceTooOld but this seems good enough tbh as this is what we get with other errors in obj_make_compatible","commit_id":"583d2dcde10c9e277adb2a45180d21c53d7b3cba"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8e7f259518d187eaeb6a2a233147295d5f164169","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                    compute_node_id\u003dself.compute_node_id,"},{"line_number":342,"context_line":"                    address\u003dself.address)"},{"line_number":343,"context_line":"            self._bulk_update_status(vfs_list,"},{"line_number":344,"context_line":"                                           fields.PciDeviceStatus.UNAVAILABLE)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        elif (self.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_VF):"},{"line_number":347,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba63e191_e03451df","line":344,"range":{"start_line":344,"start_character":37,"end_line":344,"end_character":43},"updated":"2016-01-19 15:40:08.000000000","message":"A bit awkward indent here","commit_id":"583d2dcde10c9e277adb2a45180d21c53d7b3cba"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8e7f259518d187eaeb6a2a233147295d5f164169","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                                             self.compute_node_id,"},{"line_number":406,"context_line":"                                             self.address)"},{"line_number":407,"context_line":"            self._bulk_update_status(vfs_list,"},{"line_number":408,"context_line":"                                           fields.PciDeviceStatus.AVAILABLE)"},{"line_number":409,"context_line":"            free_devs.extend(vfs_list)"},{"line_number":410,"context_line":"        if self.dev_type \u003d\u003d fields.PciDeviceType.SRIOV_VF:"},{"line_number":411,"context_line":"            # Set PF status to AVAILABLE if all of it\u0027s VFs are free"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba63e191_3d0a9227","line":408,"range":{"start_line":408,"start_character":37,"end_line":408,"end_character":43},"updated":"2016-01-19 15:40:08.000000000","message":"awkward indent","commit_id":"583d2dcde10c9e277adb2a45180d21c53d7b3cba"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d2be072f5c8e205324909e049b3ec1d30fdbbeec","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_86c70463","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"updated":"2016-01-15 11:14:29.000000000","message":"You changed the set of permitted values in an enum, so you should have incremented the version and added down-versioning support","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"f9575712e162f4353cd2abc62d5dce43639ace0e","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_d33ed328","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"in_reply_to":"da6ed579_6c050f0f","updated":"2016-01-18 04:58:03.000000000","message":"Thanks. I realize that I need to increase the version of the object, however, I\u0027m not sure how can I provide a down-versioning support..\nWhat do you think I should do here?","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3d030bf9b9134f63b984ff1b1e817ea950c86c4a","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_6c050f0f","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"in_reply_to":"da6ed579_86c70463","updated":"2016-01-15 15:33:41.000000000","message":"yeah! Good catch!","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"7194a476d2f3b01aaecfbfda71598edb282aff02","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba63e191_48257fc0","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"in_reply_to":"da6ed579_ae46364d","updated":"2016-01-18 17:00:41.000000000","message":"Each new host should have a different set of devices, there for it will need to recreate the objects and remove the devices that are associated with an instance. Also, rebuild will have to remove these as well from the instance. \n\nAlso, the refresh (get_available_resources) will not report the PFs on that such host, hence these devices will be removed from the pools.\n\nI\u0027m not sure how can we get into a situation where we will see the new-style objects on older code, but even if we will, I can\u0027t find a way to safely use another status from the old enum, we will just fail to protect device parent/dependents from being claimed.. and also keep the correct behaviour, for example getting the parent/dependents back into the pool after these are released..\nI think it\u0027ll be better to raise.","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"af860934ca1c3cea111186025dcad7442dfc3e43","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_ae46364d","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"in_reply_to":"da6ed579_cb6b6a84","updated":"2016-01-18 14:59:58.000000000","message":"Well, I don\u0027t agree that you can just ignore the backporting, because if you do and we do have the above situation, we\u0027ll get wildly undesirable results. If we don\u0027t even change the version, then we\u0027ll get a loop (over RPC!) until we run out of stack, and if we change the version and not the field, then we\u0027ll get a failure to deserialize instead of a useful result.\n\nAlso note that the Instance object contains a list of these objects. If we ever could have a situation where one system sends an instance to another (like during a migration) then we\u0027ll have to be able to do something useful here.\n\nIs there ever a chance, during a rebuild or evacuate, that another compute host would pull the instance object from the db with pci devices (even if just to see that it can\u0027t run it) and thus see new-style objects on older code?\n\nTBH, I\u0027m not really sure what to do here, but I think my preference would be to either:\n\n1. Raise some exception that says \"this should never happen and we can\u0027t do it\n2. Choose some value to set for the type that will cause the caller to either error out, fail to allocate, ignore, or whatever\n3. Bump PciDevice to 2.0 and handle things like semver says.\n\nI already suggested to Vladik that we try to go option #2 above. Is there no value in the existing enum we could choose to change the devices to to achieve the desired effect? Even if we had to backport a bug fix to properly ignore an invalid type ...","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e1137633548e9919660f5e1b495edb646f3b855e","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"    \u0027NetworkList\u0027: \u00271.2-69eca910d8fa035dfecd8ba10877ee59\u0027,"},{"line_number":1170,"context_line":"    \u0027NetworkRequest\u0027: \u00271.1-7a3e4ca2ce1e7b62d8400488f2f2b756\u0027,"},{"line_number":1171,"context_line":"    \u0027NetworkRequestList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":1172,"context_line":"    \u0027PciDevice\u0027: \u00271.4-0d5abe5c91645b8469eb2a93fc53f932\u0027,"},{"line_number":1173,"context_line":"    \u0027PciDeviceList\u0027: \u00271.3-52ff14355491c8c580bdc0ba34c26210\u0027,"},{"line_number":1174,"context_line":"    \u0027PciDevicePool\u0027: \u00271.1-3f5ddc3ff7bfa14da7f6c7e9904cc000\u0027,"},{"line_number":1175,"context_line":"    \u0027PciDevicePoolList\u0027: \u00271.1-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"da6ed579_cb6b6a84","line":1172,"range":{"start_line":1172,"start_character":54,"end_line":1172,"end_character":56},"in_reply_to":"da6ed579_d33ed328","updated":"2016-01-18 11:10:24.000000000","message":"So if any PF has been saved to the DB, this means that newest code was running on that compute node, so the only reason old code would ever see a PF record is if was upgraded and then downgraded (which is not something we support).\n\nSo from that perspective I don\u0027t think we need to really care about downgrading this data since it really should never be seen by an older node.\n\nIt would be good to add that as a comment though and possibly get dansmith to give a https://i.imgur.com/EucIfYY.gif","commit_id":"b6355166eab8f45236371687b85a57e2538b5208"}]}
