)]}'
{"nova/api/openstack/compute/contrib/pci.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"c68958ae89acc67719d7d49f12bb6015a9d4d7e5","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        resp_obj.attach(xml\u003dPciHypervisorTemplate())"},{"line_number":103,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            compute_node \u003d db.compute_node_get(context, hypervisor[\u0027id\u0027])"},{"line_number":106,"context_line":"            self._extend_hypervisor(hypervisor, compute_node)"},{"line_number":107,"context_line":"        except exception.ComputeHostNotFound as e:"},{"line_number":108,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FS08%3D","line":105,"updated":"2013-10-18 08:29:43.000000000","message":"should be using compute HostAPI instead?","commit_id":"c12a1f8def57426371c7b5fa3b1d03c12aafc625"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"1eb98f49812c244a55015f2d31ae919e43b7057c","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            compute_node \u003d self.host_api.compute_node_get("},{"line_number":107,"context_line":"                context, hypervisor[\u0027id\u0027])"},{"line_number":108,"context_line":"            self._extend_hypervisor(hypervisor, compute_node)"},{"line_number":109,"context_line":"        except exception.ComputeHostNotFound as e:"},{"line_number":110,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FK0w%3D","line":107,"updated":"2013-10-22 04:04:18.000000000","message":"The compute node query is already done in hypervisors which you are extending. I think it would be much better to cache the compute node info like is done for instance and flavor requests (see how flavor or server requests are extended)","commit_id":"3b79d90a9c05105443eb7bd94b2b4a1fc0888bdf"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"4ec26dd7b9d82077a159ffa1f8ab5e93cf0ed6ff","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            compute_node \u003d self.host_api.compute_node_get("},{"line_number":107,"context_line":"                context, hypervisor[\u0027id\u0027])"},{"line_number":108,"context_line":"            self._extend_hypervisor(hypervisor, compute_node)"},{"line_number":109,"context_line":"        except exception.ComputeHostNotFound as e:"},{"line_number":110,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FKRs%3D","line":107,"in_reply_to":"AAAATH%2F%2FK0w%3D","updated":"2013-10-22 09:21:51.000000000","message":"@Christopher \nI did not found that in hypervisor.py. when this patch is meeged,I will file a bug to follow up on this issue?\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/hypervisors.py#L125","commit_id":"3b79d90a9c05105443eb7bd94b2b4a1fc0888bdf"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"0b58cdec1eec294c55b996d39dcd30a0cc4bb2ff","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            compute_node \u003d self.host_api.compute_node_get("},{"line_number":107,"context_line":"                context, hypervisor[\u0027id\u0027])"},{"line_number":108,"context_line":"            self._extend_hypervisor(hypervisor, compute_node)"},{"line_number":109,"context_line":"        except exception.ComputeHostNotFound as e:"},{"line_number":110,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATX%2F%2F%2By4%3D","line":107,"in_reply_to":"AAAATH%2F%2FKRs%3D","updated":"2013-10-23 11:00:02.000000000","message":"I think it would be better to add the infrastructure in a separate patch and then base this one on that patch. It should be fairly straightforward and you can copy how it is done for instance/flavor requests","commit_id":"3b79d90a9c05105443eb7bd94b2b4a1fc0888bdf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"82de8174d3d210baf22378d63335484b9420c5b9","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"class PciHypervisorController(wsgi.Controller):"},{"line_number":122,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":123,"context_line":"        super(PciHypervisorController, self).__init__(*args, **kwargs)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def _extend_hypervisor(self, hypervisor, compute_node):"},{"line_number":126,"context_line":"        hypervisor[\u0027os-pci-stats\u0027] \u003d jsonutils.loads("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Foes%3D","line":123,"updated":"2013-10-31 06:19:08.000000000","message":"this is needless. it didn\u0027t doing anything in __init__, so we can remove it","commit_id":"7592f7b4454388100b752d62f8820fbb47fda268"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cffe751a8f84a0bfa707496d09cae92d472c15c9","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"class PciHypervisorController(wsgi.Controller):"},{"line_number":118,"context_line":"    def _extend_hypervisor(self, hypervisor, compute_node):"},{"line_number":119,"context_line":"        hypervisor[\u0027os-pci-stats\u0027] \u003d jsonutils.loads("},{"line_number":120,"context_line":"            compute_node[\u0027pci_stats\u0027])"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.extends"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F8s5k%3D","line":119,"updated":"2013-12-22 16:09:32.000000000","message":"this should be \u0027os-pci:pci-stats\u0027. also need namespace for xml","commit_id":"133a0d5b0076df3b13a801adffda6694ef95ffe6"}],"nova/tests/api/openstack/compute/contrib/test_pcis.py":[{"author":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"change_message_id":"7f52263f6b474579cea3b277e46f1b6224539da2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from nova.tests.api.openstack import fakes"},{"line_number":30,"context_line":"from nova.tests.objects import test_pci_device"},{"line_number":31,"context_line":"from webob import exc"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"fake_compute_node \u003d {"},{"line_number":35,"context_line":"    \u0027pci_stats\u0027: [{\"count\": 3,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FSzI%3D","line":32,"updated":"2013-10-18 08:38:29.000000000","message":"see  http://docs.openstack.org/developer/hacking/#imports\n\nmove line \"\tfrom webob import exc\" to line 20, and add one blank line before \nfrom nova.api.openstack.compute.contrib import pci","commit_id":"c12a1f8def57426371c7b5fa3b1d03c12aafc625"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"42b92b7b6a9a41df9e5a7fa3b6f37718e2f06f41","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                    \u0027\u003chypervisor xmlns:os-pci\u003d\"http://docs.openstack.org\u0027"},{"line_number":211,"context_line":"                    \u0027/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":212,"context_line":"                    \u0027\u003cos-pci:pci_stats count\u003d\"3\" vendor_id\u003d\"8086\"\u0027"},{"line_number":213,"context_line":"                    \u0027 product_id\u003d\"1520\"/\u003e\u003c/hypervisor\u003e\u0027"},{"line_number":214,"context_line":"                    )"},{"line_number":215,"context_line":"        serializer \u003d pci.PciHypervisorTemplate()"},{"line_number":216,"context_line":"        text \u003d serializer.serialize(exemplar)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F17Q%3D","line":213,"updated":"2013-10-28 03:10:21.000000000","message":"I think you have the same xml serialization issue as pci_devices in an earlier patch","commit_id":"5c03f23aeda32dc0ddeeff5e680e3c4c0d65c356"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"42b92b7b6a9a41df9e5a7fa3b6f37718e2f06f41","unresolved":false,"context_lines":[{"line_number":4048,"context_line":"    ctype \u003d \u0027xml\u0027"},{"line_number":4049,"context_line":""},{"line_number":4050,"context_line":""},{"line_number":4051,"context_line":"class ExtendedhyervisorPciSampleJsonTest(ApiSampleTestBaseV2):"},{"line_number":4052,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4053,"context_line":""},{"line_number":4054,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F17I%3D","line":4051,"updated":"2013-10-28 03:10:21.000000000","message":"typo in the class name:\n\nExtendedHypervisorPciSampleJsonTest","commit_id":"5c03f23aeda32dc0ddeeff5e680e3c4c0d65c356"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"342c284556920ced6b062bde86542cd6926de3af","unresolved":false,"context_lines":[{"line_number":4074,"context_line":"    ctype \u003d \u0027xml\u0027"},{"line_number":4075,"context_line":""},{"line_number":4076,"context_line":""},{"line_number":4077,"context_line":"class ExtendedHyervisorPciSampleJsonTest(ApiSampleTestBaseV2):"},{"line_number":4078,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4079,"context_line":""},{"line_number":4080,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F8s5E%3D","line":4077,"updated":"2013-12-22 16:12:08.000000000","message":"you can reference this https://github.com/openstack/nova/blob/master/nova/tests/integrated/test_api_samples.py#L2040\n\nExtendedHyervisorPciSampleJsonTest should be based on HypervisorsSampleJsonTests.","commit_id":"133a0d5b0076df3b13a801adffda6694ef95ffe6"}]}
