)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85de1026e7817222f9bc3fd4694d36a1e6f5f6ff","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add V2 api for pci support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"All pci passthrough code is merged into nova, but the API does not support."},{"line_number":10,"context_line":"this patch extend the servers/os-hypervisor to show PCI infomation for"},{"line_number":11,"context_line":"instance and compute node, and also provides a resource:endpoint to show PCI"},{"line_number":12,"context_line":"infomation."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2Fj74%3D","line":10,"updated":"2013-10-14 14:47:32.000000000","message":"\"information\" is misspelled and \"extend\" should be \"extends\"","commit_id":"f5afacf0250ca22b6784954bf251d2bd6183b29e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85de1026e7817222f9bc3fd4694d36a1e6f5f6ff","unresolved":false,"context_lines":[{"line_number":9,"context_line":"All pci passthrough code is merged into nova, but the API does not support."},{"line_number":10,"context_line":"this patch extend the servers/os-hypervisor to show PCI infomation for"},{"line_number":11,"context_line":"instance and compute node, and also provides a resource:endpoint to show PCI"},{"line_number":12,"context_line":"infomation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially implement blueprint pci-api-support"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2Fj70%3D","line":12,"updated":"2013-10-14 14:47:32.000000000","message":"\"information\" is misspelled","commit_id":"f5afacf0250ca22b6784954bf251d2bd6183b29e"}],"nova/api/openstack/compute/contrib/pci.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85de1026e7817222f9bc3fd4694d36a1e6f5f6ff","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":119,"context_line":"        # TODO(yjiang5): Change to compute node object after that change merged"},{"line_number":120,"context_line":"        #compute_node \u003d compute_obj.ComputeNode.get_by_id("},{"line_number":121,"context_line":"        #    context, hypervisor[\u0027id\u0027])"},{"line_number":122,"context_line":"        try:"},{"line_number":123,"context_line":"            compute_node \u003d db.compute_node_get(context, hypervisor[\u0027id\u0027])"},{"line_number":124,"context_line":"        except exception.ComputeHostNotFound:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Fj7Q%3D","line":121,"updated":"2013-10-14 14:47:32.000000000","message":"I don\u0027t think we should include commented-out code in the tree. Please file a bug for the change, leave a TODO here with a reference to the bug.","commit_id":"f5afacf0250ca22b6784954bf251d2bd6183b29e"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"a5ea6218e79bd9e61281068d29bfc531749f7a6c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        hypervisor \u003d resp_obj.obj[\u0027hypervisor\u0027]"},{"line_number":119,"context_line":"        # TODO(yjiang5): Change to compute node object after that change merged"},{"line_number":120,"context_line":"        #compute_node \u003d compute_obj.ComputeNode.get_by_id("},{"line_number":121,"context_line":"        #    context, hypervisor[\u0027id\u0027])"},{"line_number":122,"context_line":"        try:"},{"line_number":123,"context_line":"            compute_node \u003d db.compute_node_get(context, hypervisor[\u0027id\u0027])"},{"line_number":124,"context_line":"        except exception.ComputeHostNotFound:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Fhfg%3D","line":121,"in_reply_to":"AAAATH%2F%2Fj7Q%3D","updated":"2013-10-15 01:10:42.000000000","message":"@ Dan,\nI will delete this comment  and will file a bug when this patch merged.","commit_id":"f5afacf0250ca22b6784954bf251d2bd6183b29e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85de1026e7817222f9bc3fd4694d36a1e6f5f6ff","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            # TODO(yjiang5): Change to compute node object after"},{"line_number":135,"context_line":"            # that changes merged"},{"line_number":136,"context_line":"            # compute_node \u003d compute_obj.ComputeNode.get_by_id("},{"line_number":137,"context_line":"            #    context, hypervisor[\u0027id\u0027])"},{"line_number":138,"context_line":"            try:"},{"line_number":139,"context_line":"                compute_node \u003d db.compute_node_get(context, hypervisor[\u0027id\u0027])"},{"line_number":140,"context_line":"            except exception.ComputeHostNotFound as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Fj7M%3D","line":137,"updated":"2013-10-14 14:47:32.000000000","message":"Same.","commit_id":"f5afacf0250ca22b6784954bf251d2bd6183b29e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def make_server(elem):"},{"line_number":33,"context_line":"    elem.set(\u0027{%s}pci_info\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWHU%3D","line":33,"updated":"2013-10-17 13:45:33.000000000","message":"Xml should have same name for this attributes. And we return a list of pci devices, the xml format should be:\n\u003cpci_devices\u003e\u003cpci_device\u003exxx\u003c/pci_device\u003e\u003cpci_devices\u003e ?","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"14f22cdbed131383947e0c0570d9a882a5e7b88e","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def make_server(elem):"},{"line_number":33,"context_line":"    elem.set(\u0027{%s}pci_info\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FTdM%3D","line":33,"in_reply_to":"AAAATH%2F%2FTd0%3D","updated":"2013-10-18 02:31:26.000000000","message":"I prefer os-pci:pci_devices","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"126c74cd863d4abcc8b20cf52a36a3fc3d2cedf8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def make_server(elem):"},{"line_number":33,"context_line":"    elem.set(\u0027{%s}pci_info\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FTd0%3D","line":33,"in_reply_to":"AAAATH%2F%2FWHU%3D","updated":"2013-10-18 02:23:10.000000000","message":"@ ALex\nI am not  clear which one to use ,  pci_devices or os-pci:devices ?","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            server \u003d resp_obj.obj[\u0027server\u0027]"},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                instance \u003d req.get_db_instance(server[\u0027id\u0027])"},{"line_number":70,"context_line":"            except exception.InstanceNotFound:"},{"line_number":71,"context_line":"                msg \u003d _(\"Instance could not be found\")"},{"line_number":72,"context_line":"                raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":73,"context_line":"            self._extend_server(server, instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWJc%3D","line":70,"updated":"2013-10-17 13:45:33.000000000","message":"this is needless","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            for server in servers:"},{"line_number":83,"context_line":"                try:"},{"line_number":84,"context_line":"                    instance \u003d req.get_db_instance(server[\u0027id\u0027])"},{"line_number":85,"context_line":"                except exception.InstanceNotFound as e:"},{"line_number":86,"context_line":"                    raise webob.exc.HTTPBadRequest("},{"line_number":87,"context_line":"                        explanation\u003de.format_message())"},{"line_number":88,"context_line":"                self._extend_server(server, instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWJY%3D","line":85,"updated":"2013-10-17 13:45:33.000000000","message":"ditto","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.api.openstack import xmlutil"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS5w%3D","line":24,"updated":"2013-10-18 08:22:14.000000000","message":"I know you\u0027ve already changed it once, but os-pci-devices might be more appropriate, or is the idea that it will eventually something else as well?","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"34f12530897aa7c39e2e5b80f102e1f69aa43c80","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.api.openstack import xmlutil"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FSLk%3D","line":24,"in_reply_to":"AAAATH%2F%2FS5w%3D","updated":"2013-10-18 13:05:31.000000000","message":"@Christopher\nI am not sure this, in the bellow, I also use pci_devices. I think it should be simplified here","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS6M%3D","line":26,"updated":"2013-10-18 08:22:14.000000000","message":"I think the policy name should really be the same as the ALIAS","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"34f12530897aa7c39e2e5b80f102e1f69aa43c80","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FSMw%3D","line":26,"in_reply_to":"AAAATH%2F%2FS6M%3D","updated":"2013-10-18 13:05:31.000000000","message":"@Christopher \nI saw the policy name like \"os-\" using in V3, So,wondering  this, and the below patch may use ALIAS name better ?\nhttps://review.openstack.org/#/c/52374/2/nova/api/openstack/compute/contrib/pci.py","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Pci(extensions.ExtensionDescriptor):"},{"line_number":79,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":80,"context_line":"    name \u003d \"Pcis\""},{"line_number":81,"context_line":"    alias \u003d ALIAS"},{"line_number":82,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/pci/api/v1.1\""},{"line_number":83,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS64%3D","line":80,"updated":"2013-10-18 08:22:14.000000000","message":"Perhaps PciAccess or PCIAccess would be better?","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"34f12530897aa7c39e2e5b80f102e1f69aa43c80","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Pci(extensions.ExtensionDescriptor):"},{"line_number":79,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":80,"context_line":"    name \u003d \"Pcis\""},{"line_number":81,"context_line":"    alias \u003d ALIAS"},{"line_number":82,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/pci/api/v1.1\""},{"line_number":83,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FSLc%3D","line":80,"in_reply_to":"AAAATH%2F%2FS64%3D","updated":"2013-10-18 13:05:31.000000000","message":"I will change it next upset","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":80,"context_line":"    name \u003d \"Pcis\""},{"line_number":81,"context_line":"    alias \u003d ALIAS"},{"line_number":82,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/pci/api/v1.1\""},{"line_number":83,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_controller_extensions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS6U%3D","line":82,"updated":"2013-10-18 08:22:14.000000000","message":"minor nit, but shouldn\u0027t this be v2 not v1.1?","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"34f12530897aa7c39e2e5b80f102e1f69aa43c80","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":80,"context_line":"    name \u003d \"Pcis\""},{"line_number":81,"context_line":"    alias \u003d ALIAS"},{"line_number":82,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/pci/api/v1.1\""},{"line_number":83,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_controller_extensions(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FSLY%3D","line":82,"in_reply_to":"AAAATH%2F%2FS6U%3D","updated":"2013-10-18 13:05:31.000000000","message":"I will change it next upset","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4a4947ef9b1f25dbc6d1362c5ec3ddd6fe33b833","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FKZc%3D","line":26,"updated":"2013-10-22 08:45:51.000000000","message":"nit, looks like the name is inconsistent. how about be \u0027os-pci:pci_servers\u0027?","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"2e4eb56659e20e56063a3481b1651a6b8c8f7129","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FHJY%3D","line":26,"in_reply_to":"AAAATH%2F%2FHNI%3D","updated":"2013-10-23 05:19:13.000000000","message":"@Alex,\nI had saw this, and will change in set 8,","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f94861c80c3e3a9ce640ead0110e2827dd4d064a","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":25,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027pci_instance\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FHNI%3D","line":26,"in_reply_to":"AAAATH%2F%2FKZc%3D","updated":"2013-10-23 01:34:02.000000000","message":"@Shuangtai, I didn\u0027t see you change for this and didn\u0027t see you reply? any idea for this?","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4a4947ef9b1f25dbc6d1362c5ec3ddd6fe33b833","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    elem.set(\u0027{%s}pci_devices\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FKYk%3D","line":30,"updated":"2013-10-22 08:45:51.000000000","message":"the value of pci_devices is list, so the xml should be:\n\n\u003cos-pci:pci_devices\u003e\u003cpci_device\u003exxx\u003c/pci_device\u003e\u003c/os-pci:pci_devices\u003e","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"2e4eb56659e20e56063a3481b1651a6b8c8f7129","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    elem.set(\u0027{%s}pci_devices\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATX%2F%2F%2F2E%3D","line":30,"in_reply_to":"AAAATH%2F%2FHNk%3D","updated":"2013-10-23 05:19:13.000000000","message":"@ALex \nthe value of os-pci:pci_devices\u003d[1,2,3] , I not clear know how to change like this:\n\u003cos-pci:pci_devices\u003e\n      \u003cpci_device\u003e1\u003c/pci_device\u003e\n      \u003cpci_device\u003e2\u003c/pci_device\u003e\n      \u003cpci_device\u003e2\u003c/pci_device\u003e\n\u003c/os-pci:pci_devices\u003e\n\nI add the code as below ,and do not how to write the make_server. the example seems can work well when dict list \nclass PciDevicesTemplateElement(xmlutil.TemplateElement):\n    def will_render(self, datum):\n        return \"os-pci:pci_devices\" in datum\n\ndef make_server(elem):\n    pci_devices \u003d PciDevicesTemplateElement(\u0027os-pci:pci_devices\u0027)\n    elem.append(pci_devices)\n    \n    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027pci_device\u0027,\n                                        selector\u003d\"os-pci:pci_devices\")","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2c8027c3bde4ed4b4a168c9f8224e61436659b78","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    elem.set(\u0027{%s}pci_devices\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FHNk%3D","line":30,"in_reply_to":"AAAATH%2F%2FKMI%3D","updated":"2013-10-23 01:32:04.000000000","message":"Shuangtai, you can reference this https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/plugins/v3/security_groups.py#L138","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"44fda7908339c2c7a1a32f91a3a9e9a696133831","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    elem.set(\u0027{%s}pci_devices\u0027 % Pci.namespace, \u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FKMI%3D","line":30,"in_reply_to":"AAAATH%2F%2FKYk%3D","updated":"2013-10-22 09:55:07.000000000","message":"@Alex \nsorry , I am not clear how to change here? can you give detail suggtion?","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"2e622f0619a27799aa15c479d298d7e0a3b164d2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":80,"context_line":"    name \u003d \"PCIAccess\""},{"line_number":81,"context_line":"    alias \u003d ALIAS"},{"line_number":82,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/pci/api/v2\""},{"line_number":83,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_controller_extensions(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FK5Y%3D","line":82,"updated":"2013-10-22 03:54:44.000000000","message":"nit, but this should be os-pci instead of just pci (just to ensure we have unique namespaces)","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c9a4861ccec46cfd8ccc142894ff0ce8c6778b36","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class PciServerController(wsgi.Controller):"},{"line_number":58,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":59,"context_line":"        super(PciServerController, self).__init__(*args, **kwargs)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _extend_server(self, server, instance):"},{"line_number":62,"context_line":"        dev_id \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2FoeA%3D","line":59,"updated":"2013-10-31 06:20:00.000000000","message":"this is needless.","commit_id":"955347ececf22f5249cb8d5f2072aa02c2db5978"}],"nova/tests/api/openstack/compute/contrib/test_pcis.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            return True"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        resp \u003d FakeResponse(self.fake_obj, \u0027\u0027)"},{"line_number":154,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":155,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":156,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":157,"context_line":"        self.controller.show(req, resp, \u00271\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWIg%3D","line":154,"updated":"2013-10-17 13:45:33.000000000","message":"this shouldn\u0027t be v3","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":156,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":157,"context_line":"        self.controller.show(req, resp, \u00271\u0027)"},{"line_number":158,"context_line":"        self.assertIn(\u0027os-pci:pci_devices\u0027, resp.obj[\u0027server\u0027])"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_show_error_id(self):"},{"line_number":161,"context_line":"        def fake_get_db_instance(instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWG4%3D","line":158,"updated":"2013-10-17 13:45:33.000000000","message":"we should test the value too?","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            return True"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        resp \u003d FakeResponse(self.fake_obj, \u00271\u0027)"},{"line_number":168,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":169,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":170,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":171,"context_line":"        self.assertRaises(exc.HTTPNotFound, self.controller.show,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWIU%3D","line":168,"updated":"2013-10-17 13:45:33.000000000","message":"ditto","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        resp \u003d FakeResponse(self.fake_obj, \u00271\u0027)"},{"line_number":168,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":169,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":170,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":171,"context_line":"        self.assertRaises(exc.HTTPNotFound, self.controller.show,"},{"line_number":172,"context_line":"                          req, resp, \u00271\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWGY%3D","line":169,"updated":"2013-10-17 13:45:33.000000000","message":"This policy is empty in nova/tests/fake_policy.py, so looks like this is needless","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            return True"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        resp \u003d FakeResponse(self.fake_list, \u0027\u0027)"},{"line_number":182,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":183,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":184,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":185,"context_line":"        self.controller.detail(req, resp)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWIM%3D","line":182,"updated":"2013-10-17 13:45:33.000000000","message":"ditto","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3033ad2474ce819c89d5bb009f23369202e16e98","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            return True"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        resp \u003d FakeResponse(self.fake_list, \u00271\u0027)"},{"line_number":197,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":198,"context_line":"        self.stubs.Set(nova.policy, \u0027enforce\u0027, fake_enforce)"},{"line_number":199,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":200,"context_line":"        self.assertRaises(exc.HTTPBadRequest, self.controller.detail,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FWII%3D","line":197,"updated":"2013-10-17 13:45:33.000000000","message":"ditto","commit_id":"2d8f481ccfd819733f0aa9bb904865a775da4abd"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        namespace \u003d \u0027{%s}pci_devices\u0027 % self.name"},{"line_number":42,"context_line":"        fake_server \u003d {\"server\": {\"id\": \u0027fake\u0027,"},{"line_number":43,"context_line":"                                  namespace: \u0027os-pci\u0027,"},{"line_number":44,"context_line":"                                  \u0027os-pci:pci_devices\u0027: \u0027os-pci\u0027}}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        serializer \u003d servers.ServerTemplate()"},{"line_number":47,"context_line":"        serializer.attach(pci.PciServerTemplate())"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS44%3D","line":44,"updated":"2013-10-18 08:22:14.000000000","message":"given os-pci is also the name of the namespace as well as the ALIAS perhaps it would be clearer to have a different dummy value here?","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4a4947ef9b1f25dbc6d1362c5ec3ddd6fe33b833","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            return self.inst"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        resp \u003d FakeResponse(self.fake_list, \u0027\u0027)"},{"line_number":159,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/os-pci/1\u0027, use_admin_context\u003dTrue)"},{"line_number":160,"context_line":"        self.stubs.Set(req, \u0027get_db_instance\u0027, fake_get_db_instance)"},{"line_number":161,"context_line":"        self.controller.detail(req, resp)"},{"line_number":162,"context_line":"        self.assertIn(\u0027os-pci:pci_devices\u0027, resp.obj[\u0027servers\u0027][0])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FKYM%3D","line":159,"updated":"2013-10-22 08:45:51.000000000","message":"nit, the url should be \u0027/os-pci/detail\u0027","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"f94db19f269f70064d347b508d13a360e28c1fb4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected \u003d (\"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e\\n\""},{"line_number":38,"context_line":"                    \u0027\u003cserver xmlns:os-pci\u003d\"http://docs.openstack.\u0027"},{"line_number":39,"context_line":"                    \u0027org/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":40,"context_line":"                    \u0027\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\u003c/server\u003e\u0027"},{"line_number":41,"context_line":"                    )"},{"line_number":42,"context_line":"        serializer \u003d pci.PciServerTemplate()"},{"line_number":43,"context_line":"        text \u003d serializer.serialize(fake_server)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F17s%3D","line":40,"updated":"2013-10-28 03:00:57.000000000","message":"I don\u0027t think you\u0027ve got the xml template quite right.\n\nShouldn\u0027t this be:\n\n\u003cos-pci:pci_devices\u003e\n  \u003cpci_device id\u003d1 /\u003e\n\u003c/os-pci:pci_devices\u003e\n\nEg See what happens when you have multiple pci devices in the json ref.","commit_id":"98e7251d2280c40f38906850dc676b01918d8fe3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"73bf6d050ed3906ae6c4e7dbdfdb77eff2508bff","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected \u003d (\"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e\\n\""},{"line_number":38,"context_line":"                    \u0027\u003cserver xmlns:os-pci\u003d\"http://docs.openstack.\u0027"},{"line_number":39,"context_line":"                    \u0027org/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":40,"context_line":"                    \u0027\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\u003c/server\u003e\u0027"},{"line_number":41,"context_line":"                    )"},{"line_number":42,"context_line":"        serializer \u003d pci.PciServerTemplate()"},{"line_number":43,"context_line":"        text \u003d serializer.serialize(fake_server)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F13c%3D","line":40,"in_reply_to":"AAAATn%2F%2F15Y%3D","updated":"2013-10-28 05:03:37.000000000","message":"Got it. I change it soon!","commit_id":"98e7251d2280c40f38906850dc676b01918d8fe3"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7d16b3687ce378772cc03f61c172ea25436d3dc9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected \u003d (\"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e\\n\""},{"line_number":38,"context_line":"                    \u0027\u003cserver xmlns:os-pci\u003d\"http://docs.openstack.\u0027"},{"line_number":39,"context_line":"                    \u0027org/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":40,"context_line":"                    \u0027\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\u003c/server\u003e\u0027"},{"line_number":41,"context_line":"                    )"},{"line_number":42,"context_line":"        serializer \u003d pci.PciServerTemplate()"},{"line_number":43,"context_line":"        text \u003d serializer.serialize(fake_server)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F15Y%3D","line":40,"in_reply_to":"AAAATn%2F%2F16I%3D","updated":"2013-10-28 04:11:11.000000000","message":"yea we really should fix up extended_volumes for the V3 API (its too late for the V2 API). Alex linked to a better example here:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/plugins/v3/security_groups.py#L138\n\nSorry for being nitpicky, but once these APIs get released we can\u0027t change them.","commit_id":"98e7251d2280c40f38906850dc676b01918d8fe3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"31eded0bb8e5cd0327d01dfbeddbf7e7e966815f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        expected \u003d (\"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e\\n\""},{"line_number":38,"context_line":"                    \u0027\u003cserver xmlns:os-pci\u003d\"http://docs.openstack.\u0027"},{"line_number":39,"context_line":"                    \u0027org/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":40,"context_line":"                    \u0027\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\u003c/server\u003e\u0027"},{"line_number":41,"context_line":"                    )"},{"line_number":42,"context_line":"        serializer \u003d pci.PciServerTemplate()"},{"line_number":43,"context_line":"        text \u003d serializer.serialize(fake_server)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F16I%3D","line":40,"in_reply_to":"AAAATn%2F%2F17s%3D","updated":"2013-10-28 03:40:19.000000000","message":"@Christopher \nwhen I have multiple pci devices ,the json si [{\"id\": 1},{\"id\": 2}],so the xml is \n\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\n\u003cos-pci:pci_devices id\u003d\"2\"/\u003e\n\nthis format is the same as extended_volumes :\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_volumes.py#L84","commit_id":"98e7251d2280c40f38906850dc676b01918d8fe3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"8db1f7e5267243331391f947f85ef74542957994","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                    \u0027\u003cserver xmlns:os-pci\u003d\"http://docs.openstack.\u0027"},{"line_number":39,"context_line":"                    \u0027org/compute/ext/os-pci/api/v2\"\u003e\u0027"},{"line_number":40,"context_line":"                    \u0027\u003cos-pci:pci_devices id\u003d\"1\"/\u003e\u003c/server\u003e\u0027"},{"line_number":41,"context_line":"                    )"},{"line_number":42,"context_line":"        serializer \u003d pci.PciServerTemplate()"},{"line_number":43,"context_line":"        text \u003d serializer.serialize(fake_server)"},{"line_number":44,"context_line":"        self.assertEqual(text, expected)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2F11M%3D","line":41,"updated":"2013-10-28 05:38:55.000000000","message":"@Christopher\nHow about change the name \"os-pci:pci_devices\" to \"os-pci-devices\" ? when I change the code as security_groups.py#L138 . it seems has an error like \"Invalid tag name u\u0027os-pci:pci_devices\u0027\" . I am not clear why cannot use \":\" here.","commit_id":"98e7251d2280c40f38906850dc676b01918d8fe3"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"734cc8c884fa1c7cf08d22d6667a8d8513c4a3d9","unresolved":false,"context_lines":[{"line_number":4021,"context_line":""},{"line_number":4022,"context_line":"class PciSampleJsonTest(ApiSampleTestBaseV2):"},{"line_number":4023,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4024,"context_line":""},{"line_number":4025,"context_line":""},{"line_number":4026,"context_line":"class PciSamplesXmlTest(PciSampleJsonTest):"},{"line_number":4027,"context_line":"    ctype \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FS4A%3D","line":4024,"updated":"2013-10-18 08:22:14.000000000","message":"This looks a bit suspicious because there are no testcases here?","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"34f12530897aa7c39e2e5b80f102e1f69aa43c80","unresolved":false,"context_lines":[{"line_number":4021,"context_line":""},{"line_number":4022,"context_line":"class PciSampleJsonTest(ApiSampleTestBaseV2):"},{"line_number":4023,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4024,"context_line":""},{"line_number":4025,"context_line":""},{"line_number":4026,"context_line":"class PciSamplesXmlTest(PciSampleJsonTest):"},{"line_number":4027,"context_line":"    ctype \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FSJs%3D","line":4024,"in_reply_to":"AAAATH%2F%2FS4A%3D","updated":"2013-10-18 13:05:31.000000000","message":"the testcases will be add in the bellow patch. If I do not add this class here . the testcase \" test_all_extensions_have_samples\"always  failed.  the bp pci-api is so big,I had to Split it to three patches.\n\nhttps://review.openstack.org/#/c/52374/","commit_id":"c97ee03f90e093225fd45f04151da2bd707dc367"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"2e622f0619a27799aa15c479d298d7e0a3b164d2","unresolved":false,"context_lines":[{"line_number":4021,"context_line":""},{"line_number":4022,"context_line":"class PciSampleJsonTest(ApiSampleTestBaseV2):"},{"line_number":4023,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4024,"context_line":""},{"line_number":4025,"context_line":""},{"line_number":4026,"context_line":"class PciSamplesXmlTest(PciSampleJsonTest):"},{"line_number":4027,"context_line":"    ctype \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FK2A%3D","line":4024,"updated":"2013-10-22 03:54:44.000000000","message":"I know that you are adding api samples tests later, but those appear to be for different interfaces than the one you are adding here. \n\nSee ExtendedServerAttributesJsonTest as an example of what is often done beyond all_extensions for producing api samples for server extensions","commit_id":"d9067baa29a20f9b156033fa5e39fb0cccd9f7ec"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e49224387c5be5a017c2e239e50c401d1501f038","unresolved":false,"context_lines":[{"line_number":4024,"context_line":"    extension_name \u003d \"nova.api.openstack.compute.contrib.pci.Pci\""},{"line_number":4025,"context_line":""},{"line_number":4026,"context_line":"    def test_show(self):"},{"line_number":4027,"context_line":"        uuid \u003d self._post_server()"},{"line_number":4028,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":4029,"context_line":"        subs \u003d self._get_regexes()"},{"line_number":4030,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATH%2F%2FHRU%3D","line":4027,"updated":"2013-10-23 00:39:08.000000000","message":"Could you add some dummy pci data so the api samples have examples of what it will look like (will help with the documentation produced from the api samples), rather than just have an empty list?","commit_id":"000c5bef72f9f5593afb5be911dd990cc1088d00"}]}
