)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a78198d04e788b54174b5c647b225f7ce1e140d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"and pci_device db table."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I3825708e4ad966c4ba99c1d7df56e6e54eb653ed"},{"line_number":18,"context_line":"Implements: blueprint pci-generate-stats"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7a740942_1212010a","line":18,"updated":"2015-12-10 14:54:17.000000000","message":"This should be pci-stats-generate","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"e6995ab2152028897c2f3d5a89f4c026159f099e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"and pci_device db table."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I3825708e4ad966c4ba99c1d7df56e6e54eb653ed"},{"line_number":18,"context_line":"Implements: blueprint pci-generate-stats"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7a740942_b4d3dad4","line":18,"in_reply_to":"7a740942_1212010a","updated":"2015-12-10 16:24:17.000000000","message":"Done","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb498ff1b8aae40c13cdc31091b05c3583a480b4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Modified the nova.objects.ComputeNode object to load on-demand the"},{"line_number":10,"context_line":"pci_device_pools field by a subquery instead of pulling from the"},{"line_number":11,"context_line":"compute_nodes.pci_stats field in the database. Added"},{"line_number":12,"context_line":"get_by_compute_node method to PciDevicePoolList which get all the"},{"line_number":13,"context_line":"pci devices owned by the node and group them into pci device pools."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Add pci_device_pools_get_by_node function to db api which gets pci"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"3a57f1b5_8ff82be7","line":12,"updated":"2016-02-10 15:21:17.000000000","message":"s/which get all/which gets all of/","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"dd4dfa96d1e444ab57f601f8a17588557fc3a465","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Modified the nova.objects.ComputeNode object to load on-demand the"},{"line_number":10,"context_line":"pci_device_pools field by a subquery instead of pulling from the"},{"line_number":11,"context_line":"compute_nodes.pci_stats field in the database. Added"},{"line_number":12,"context_line":"get_by_compute_node method to PciDevicePoolList which get all the"},{"line_number":13,"context_line":"pci devices owned by the node and group them into pci device pools."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Add pci_device_pools_get_by_node function to db api which gets pci"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"dae33548_8ccb5472","line":12,"in_reply_to":"3a57f1b5_8ff82be7","updated":"2016-02-19 17:45:21.000000000","message":"Done","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"}],"nova/objects/compute_node.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6d4e42ce0b34da52d9c5f30932b0b0662c5ad3a2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # NOTE(pmurray): the pci_device_pools field maps to the"},{"line_number":81,"context_line":"        # pci_stats field in the database"},{"line_number":82,"context_line":"        \u0027pci_device_pools\u0027: fields.ObjectField(\u0027PciDevicePoolList\u0027,"},{"line_number":83,"context_line":"                                               nullable\u003dTrue),"},{"line_number":84,"context_line":"        \u0027cpu_allocation_ratio\u0027: fields.FloatField(),"},{"line_number":85,"context_line":"        \u0027ram_allocation_ratio\u0027: fields.FloatField(),"},{"line_number":86,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_2f27b713","line":83,"updated":"2016-02-10 15:26:41.000000000","message":"I would actually just mark this field as \"deprecated\" with a note and an increment in the VERSION to 1.15 plus a removal of the field from returned objects supporting 1.15 version in obj_make_compatible(). See my comment below...","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"dd4dfa96d1e444ab57f601f8a17588557fc3a465","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # NOTE(pmurray): the pci_device_pools field maps to the"},{"line_number":81,"context_line":"        # pci_stats field in the database"},{"line_number":82,"context_line":"        \u0027pci_device_pools\u0027: fields.ObjectField(\u0027PciDevicePoolList\u0027,"},{"line_number":83,"context_line":"                                               nullable\u003dTrue),"},{"line_number":84,"context_line":"        \u0027cpu_allocation_ratio\u0027: fields.FloatField(),"},{"line_number":85,"context_line":"        \u0027ram_allocation_ratio\u0027: fields.FloatField(),"},{"line_number":86,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":24,"id":"dae33548_cc739c4c","line":83,"in_reply_to":"3a57f1b5_2f27b713","updated":"2016-02-19 17:45:21.000000000","message":"Done","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6d4e42ce0b34da52d9c5f30932b0b0662c5ad3a2","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":89,"context_line":"        super(ComputeNode, self).obj_make_compatible(primitive, target_version)"},{"line_number":90,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":91,"context_line":"        if target_version \u003c (1, 14):"},{"line_number":92,"context_line":"            if \u0027ram_allocation_ratio\u0027 in primitive:"},{"line_number":93,"context_line":"                del primitive[\u0027ram_allocation_ratio\u0027]"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_4f24730c","line":90,"updated":"2016-02-10 15:26:41.000000000","message":"Here, do this:\n\n if target_version \u003e\u003d (1, 15):\n     # Version 1.15 deprecated the pci_device_pools field since this\n     # was calculated summary information and no longer should be\n     # accessed by the ComputeNode object.\n     del primitive[\u0027pci_device_pools\u0027]","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"dd4dfa96d1e444ab57f601f8a17588557fc3a465","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":89,"context_line":"        super(ComputeNode, self).obj_make_compatible(primitive, target_version)"},{"line_number":90,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":91,"context_line":"        if target_version \u003c (1, 14):"},{"line_number":92,"context_line":"            if \u0027ram_allocation_ratio\u0027 in primitive:"},{"line_number":93,"context_line":"                del primitive[\u0027ram_allocation_ratio\u0027]"}],"source_content_type":"text/x-python","patch_set":24,"id":"dae33548_6cdd3042","line":90,"in_reply_to":"3a57f1b5_4f24730c","updated":"2016-02-19 17:45:21.000000000","message":"Should I also add check if \u0027pci_device_pools\u0027 is in primitive?\n\nif target_version \u003e\u003d (1, 15) and \u0027pci_device_pools\u0027 in primitive:\n...","commit_id":"b4fe11e714071eebe9df9806c3fe4a15bfc70659"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8a220f611270819b34dffa3b355bee68f14983e0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"            hv_specs \u003d [objects.HVSpec.from_list(hv_spec)"},{"line_number":223,"context_line":"                        for hv_spec in hv_specs]"},{"line_number":224,"context_line":"            compute[\u0027supported_hv_specs\u0027] \u003d hv_specs"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        version \u003d versionutils.convert_version_to_tuple(compute.VERSION)"},{"line_number":227,"context_line":"        if version \u003e\u003d (1, 16):"},{"line_number":228,"context_line":"            all_pci_device_pools \u003d \\"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_154c7475","line":225,"updated":"2016-02-24 22:30:38.000000000","message":"I should have done a better job explaining what is needed here. The pci_stats field will still be coming back from the database for the near future. So, this code needs to stay the same, and simply add a deprecation warning like this:\n\n # TODO(dstepanenko): The below two lines can be removed when the\n # object versions below 1.17 are no longer supported. The pci_device_pools\n # attribute was deprecated in object version 1.17 and all clients grabbing\n # ComputeNode objects after that object version do not have the\n # pci_device_pools attribute.\n pci_stats \u003d db_compute.get(\u0027pci_stats\u0027)\n compute.pci_device_pools \u003d pci_device_pool.from_pci_stats(pci_stats)\n\nWhat you could do in addition to the above, is rename the pci_device_pool.from_pci_stats() method to pci_device_pool.from_legacy_pci_stats() to make it very clear that it\u0027s a deprecated thing.","commit_id":"f715f56f66c879449bf81a0cd3c3415788e47155"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"e889812d8d99c00f5300c125009c313308c4d9a3","unresolved":false,"context_lines":[{"line_number":222,"context_line":"            hv_specs \u003d [objects.HVSpec.from_list(hv_spec)"},{"line_number":223,"context_line":"                        for hv_spec in hv_specs]"},{"line_number":224,"context_line":"            compute[\u0027supported_hv_specs\u0027] \u003d hv_specs"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        version \u003d versionutils.convert_version_to_tuple(compute.VERSION)"},{"line_number":227,"context_line":"        if version \u003e\u003d (1, 16):"},{"line_number":228,"context_line":"            all_pci_device_pools \u003d \\"}],"source_content_type":"text/x-python","patch_set":26,"id":"bae84128_7dc025e1","line":225,"in_reply_to":"bae84128_154c7475","updated":"2016-02-25 15:20:05.000000000","message":"Done","commit_id":"f715f56f66c879449bf81a0cd3c3415788e47155"}],"nova/objects/pci_device_pool.py":[{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"1db38b68ac7f72b68edce667180008c8dd2dd106","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # Version 1.0: Initial version"},{"line_number":85,"context_line":"    #              PciDevicePool \u003c\u003d 1.0"},{"line_number":86,"context_line":"    # Version 1.1: PciDevicePool version 1.1"},{"line_number":87,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":88,"context_line":"    fields \u003d {"},{"line_number":89,"context_line":"             \u0027objects\u0027: fields.ListOfObjectsField(\u0027PciDevicePool\u0027),"},{"line_number":90,"context_line":"             }"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_698cfe7f","line":87,"updated":"2015-12-09 14:40:44.000000000","message":"Because you are adding a remotable method to the class, you need to update the version here to \u00271.2\u0027 and add a description saying you added the get_by_compute_node() method in the comments.","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"b788f4db33a8e2123195873247cc1ce6e290155a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # Version 1.0: Initial version"},{"line_number":85,"context_line":"    #              PciDevicePool \u003c\u003d 1.0"},{"line_number":86,"context_line":"    # Version 1.1: PciDevicePool version 1.1"},{"line_number":87,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":88,"context_line":"    fields \u003d {"},{"line_number":89,"context_line":"             \u0027objects\u0027: fields.ListOfObjectsField(\u0027PciDevicePool\u0027),"},{"line_number":90,"context_line":"             }"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_65dada19","line":87,"in_reply_to":"7a740942_698cfe7f","updated":"2015-12-09 17:36:39.000000000","message":"Done","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"f60370e3f1a0c1a42195ee601622915f1169fa47","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class PciDevicePool(base.NovaObject):"},{"line_number":32,"context_line":"    # Version 1.0: Initial version"},{"line_number":33,"context_line":"    # Version 1.1: Added numa_node field"},{"line_number":34,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    fields \u003d {"},{"line_number":37,"context_line":"        \u0027product_id\u0027: fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_51a9a023","line":34,"updated":"2015-12-09 18:03:03.000000000","message":"This version doesn\u0027t need to get bumped because you\u0027re just adding a static method.","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"e6995ab2152028897c2f3d5a89f4c026159f099e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class PciDevicePool(base.NovaObject):"},{"line_number":32,"context_line":"    # Version 1.0: Initial version"},{"line_number":33,"context_line":"    # Version 1.1: Added numa_node field"},{"line_number":34,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    fields \u003d {"},{"line_number":37,"context_line":"        \u0027product_id\u0027: fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_fa9dcbbb","line":34,"in_reply_to":"7a740942_51a9a023","updated":"2015-12-10 16:24:17.000000000","message":"Done","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"f60370e3f1a0c1a42195ee601622915f1169fa47","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # Version 1.0: Initial version"},{"line_number":85,"context_line":"    #              PciDevicePool \u003c\u003d 1.0"},{"line_number":86,"context_line":"    # Version 1.1: PciDevicePool version 1.1"},{"line_number":87,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":88,"context_line":"    fields \u003d {"},{"line_number":89,"context_line":"             \u0027objects\u0027: fields.ListOfObjectsField(\u0027PciDevicePool\u0027),"},{"line_number":90,"context_line":"             }"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_917628d7","line":87,"updated":"2015-12-09 18:03:03.000000000","message":"This is the one that needs to get bumped to 1.2 (with a comment added)","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"e6995ab2152028897c2f3d5a89f4c026159f099e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # Version 1.0: Initial version"},{"line_number":85,"context_line":"    #              PciDevicePool \u003c\u003d 1.0"},{"line_number":86,"context_line":"    # Version 1.1: PciDevicePool version 1.1"},{"line_number":87,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":88,"context_line":"    fields \u003d {"},{"line_number":89,"context_line":"             \u0027objects\u0027: fields.ListOfObjectsField(\u0027PciDevicePool\u0027),"},{"line_number":90,"context_line":"             }"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_a3287a34","line":87,"in_reply_to":"7a740942_917628d7","updated":"2015-12-10 16:24:17.000000000","message":"Done","commit_id":"4c821f63270a9ed6981c29fd3f1f5d058778c82e"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"1db38b68ac7f72b68edce667180008c8dd2dd106","unresolved":false,"context_lines":[{"line_number":1242,"context_line":""},{"line_number":1243,"context_line":"    @mock.patch(\u0027nova.objects.PciDevicePoolList.get_by_compute_node\u0027)"},{"line_number":1244,"context_line":"    def test_versions(self, pdpl_get_by_cn):"},{"line_number":1245,"context_line":"        pdpl_get_by_cn.return_value \u003d fake_pci_device_pools.fake_pool_list"},{"line_number":1246,"context_line":"        checker \u003d fixture.ObjectVersionChecker("},{"line_number":1247,"context_line":"                        base.NovaObjectRegistry.obj_classes())"},{"line_number":1248,"context_line":"        fingerprints \u003d checker.get_hashes()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_c91e525f","line":1245,"updated":"2015-12-09 14:40:44.000000000","message":"You shouldn\u0027t be mocking out the get_by_compute_node method because then the fingerprint in the static dictionary is not checked correctly. You should be updating the hash on L1174 above after seeing what the new hash should be. (See http://docs.openstack.org/developer/oslo.versionedobjects/api/fixture.html#fingerprints)","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"b788f4db33a8e2123195873247cc1ce6e290155a","unresolved":false,"context_lines":[{"line_number":1242,"context_line":""},{"line_number":1243,"context_line":"    @mock.patch(\u0027nova.objects.PciDevicePoolList.get_by_compute_node\u0027)"},{"line_number":1244,"context_line":"    def test_versions(self, pdpl_get_by_cn):"},{"line_number":1245,"context_line":"        pdpl_get_by_cn.return_value \u003d fake_pci_device_pools.fake_pool_list"},{"line_number":1246,"context_line":"        checker \u003d fixture.ObjectVersionChecker("},{"line_number":1247,"context_line":"                        base.NovaObjectRegistry.obj_classes())"},{"line_number":1248,"context_line":"        fingerprints \u003d checker.get_hashes()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_854586b4","line":1245,"in_reply_to":"7a740942_c91e525f","updated":"2015-12-09 17:36:39.000000000","message":"Done","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"}],"nova/tests/unit/objects/test_pci_device_pool.py":[{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"1db38b68ac7f72b68edce667180008c8dd2dd106","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class _TestPciDevicePoolListObject(object):"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        @patch(\u0027nova.db.pci_device_pools_get_by_node\u0027)"},{"line_number":98,"context_line":"        def test_get_by_compute_node(self, mock_get_by_cn):"},{"line_number":99,"context_line":"            fake_pool \u003d {"},{"line_number":100,"context_line":"                \u0027product_id\u0027: \u0027fake-product\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_89ae0ae6","line":97,"updated":"2015-12-09 14:40:44.000000000","message":"I\u0027m guessing you wanted to mock get_by_compute_node() here","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"68c2463d4f3f2a37e6ece4c45aa7fb923c62cf93","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class _TestPciDevicePoolListObject(object):"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        @patch(\u0027nova.db.pci_device_pools_get_by_node\u0027)"},{"line_number":98,"context_line":"        def test_get_by_compute_node(self, mock_get_by_cn):"},{"line_number":99,"context_line":"            fake_pool \u003d {"},{"line_number":100,"context_line":"                \u0027product_id\u0027: \u0027fake-product\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_e365221d","line":97,"in_reply_to":"7a740942_43feb306","updated":"2015-12-10 16:27:19.000000000","message":"I almost start to think that you\u0027re trolling me :)","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"b788f4db33a8e2123195873247cc1ce6e290155a","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class _TestPciDevicePoolListObject(object):"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        @patch(\u0027nova.db.pci_device_pools_get_by_node\u0027)"},{"line_number":98,"context_line":"        def test_get_by_compute_node(self, mock_get_by_cn):"},{"line_number":99,"context_line":"            fake_pool \u003d {"},{"line_number":100,"context_line":"                \u0027product_id\u0027: \u0027fake-product\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_f0ae8a97","line":97,"in_reply_to":"7a740942_89ae0ae6","updated":"2015-12-09 17:36:39.000000000","message":"Well, the get_by_compute_node uses pci_device_pools_get_by_node method which can\u0027t be executed because we don\u0027t have DB here. So, test_get_by_compute_node tests mechanism of transfering dict received from db into PciDevicePoolList. \npci_device_pools_get_by_node method itself is tested using db apy test.","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"f13c145cc0f5c5ff76be5592080c5a3f2de24d8d","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"class _TestPciDevicePoolListObject(object):"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        @patch(\u0027nova.db.pci_device_pools_get_by_node\u0027)"},{"line_number":98,"context_line":"        def test_get_by_compute_node(self, mock_get_by_cn):"},{"line_number":99,"context_line":"            fake_pool \u003d {"},{"line_number":100,"context_line":"                \u0027product_id\u0027: \u0027fake-product\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_43feb306","line":97,"in_reply_to":"7a740942_f0ae8a97","updated":"2015-12-09 18:03:54.000000000","message":"yep my bad on this one. I didn\u0027t see which file I was in. Didn\u0027t realize I was telling you to mock the function you were trying to test :)","commit_id":"d189caf2c11a191d0d053b8dd49665d02b885689"}]}
