)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d1353e9e012075f2704f0ed809551ae2e859535","unresolved":false,"context_lines":[{"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":"bp: pci-api-support"},{"line_number":15,"context_line":"https://wiki.openstack.org/wiki/Pci_passthrough#PCI_passthrough_use_notes"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I99eeeca67983c49433ab0079f490a454d250f5e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2Fr5Q%3D","line":14,"updated":"2013-10-11 08:04:49.000000000","message":"Implements? or Related? or Partially?","commit_id":"aa4a22d3e4c40d685a2475dfb671c350f9c8ce10"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0d1353e9e012075f2704f0ed809551ae2e859535","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"bp: pci-api-support"},{"line_number":15,"context_line":"https://wiki.openstack.org/wiki/Pci_passthrough#PCI_passthrough_use_notes"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I99eeeca67983c49433ab0079f490a454d250f5e0"},{"line_number":18,"context_line":"Signed-off-by: Yunhong Jiang \u003cyunhong.jiang@intel.com\u003e"},{"line_number":19,"context_line":"Signed-off-by: Shuangtai Tian \u003cshuangtai.tian@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2Fr40%3D","line":16,"updated":"2013-10-11 08:04:49.000000000","message":"DocImpact","commit_id":"aa4a22d3e4c40d685a2475dfb671c350f9c8ce10"}],"doc/v3/api_samples/all_extensions/server-get-resp.json":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a8a39f87fc3dd0dc2edfd8991af02823e097d337","unresolved":false,"context_lines":[{"line_number":21,"context_line":"            ]"},{"line_number":22,"context_line":"        },"},{"line_number":23,"context_line":"        \"host_id\": \"6c2b70417493a86430de0ee9a15b969e807b80f6488c303841bc0668\","},{"line_number":24,"context_line":"        \"id\": \"b6d30061-bd70-4669-9218-8d420a87ae9a\","},{"line_number":25,"context_line":"        \"image\": {"},{"line_number":26,"context_line":"            \"id\": \"70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":27,"context_line":"            \"links\": ["}],"source_content_type":"application/json","patch_set":12,"id":"AAAATn%2F%2BiG0%3D","line":24,"updated":"2013-11-25 01:35:17.000000000","message":"Those shouldn\u0027t to be modified. You can update this file by hand, not auto-regenerated.","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"7bda883d35ca32c00bbd5c4932d525c7cc6dcd21","unresolved":false,"context_lines":[{"line_number":21,"context_line":"            ]"},{"line_number":22,"context_line":"        },"},{"line_number":23,"context_line":"        \"host_id\": \"6c2b70417493a86430de0ee9a15b969e807b80f6488c303841bc0668\","},{"line_number":24,"context_line":"        \"id\": \"b6d30061-bd70-4669-9218-8d420a87ae9a\","},{"line_number":25,"context_line":"        \"image\": {"},{"line_number":26,"context_line":"            \"id\": \"70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":27,"context_line":"            \"links\": ["}],"source_content_type":"application/json","patch_set":12,"id":"AAAATn%2F%2BhlE%3D","line":24,"in_reply_to":"AAAATn%2F%2BiG0%3D","updated":"2013-11-25 05:14:55.000000000","message":"Done","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"}],"doc/v3/api_samples/os-pci/pci-detail-resp.json":[{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ede989a4dfc861d0c44e65003a2ee18bb9bb4aa9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"            \"product_id\": \"p\","},{"line_number":16,"context_line":"            \"status\": \"available\","},{"line_number":17,"context_line":"            \"updated_at\": null,"},{"line_number":18,"context_line":"            \"vendor_id\": \"v\""},{"line_number":19,"context_line":"        }"},{"line_number":20,"context_line":"    ]"},{"line_number":21,"context_line":"}"}],"source_content_type":"application/json","patch_set":2,"id":"AAAATH%2F%2FlxY%3D","line":18,"updated":"2013-10-14 05:43:30.000000000","message":"is a meaningful value better?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"}],"doc/v3/api_samples/os-pci/server-post-req.json":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\" : {"},{"line_number":3,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":4,"context_line":"        \"imageRef\" : \"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":5,"context_line":"        \"flavorRef\" : \"http://openstack.example.com/openstack/flavors/1\","},{"line_number":6,"context_line":"        \"metadata\" : {"},{"line_number":7,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"application/json","patch_set":11,"id":"AAAATn%2F%2BtRs%3D","line":4,"updated":"2013-11-21 09:45:58.000000000","message":"in v3, it should be image_ref, copy/paste?","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"05b0fa967bccbba21d1b4078fb1e8d5c96363eb4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\" : {"},{"line_number":3,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":4,"context_line":"        \"imageRef\" : \"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":5,"context_line":"        \"flavorRef\" : \"http://openstack.example.com/openstack/flavors/1\","},{"line_number":6,"context_line":"        \"metadata\" : {"},{"line_number":7,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"application/json","patch_set":11,"id":"AAAATn%2F%2Bs6Q%3D","line":4,"in_reply_to":"AAAATn%2F%2BtRs%3D","updated":"2013-11-21 11:14:11.000000000","message":"Done","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"server\" : {"},{"line_number":3,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":4,"context_line":"        \"imageRef\" : \"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":5,"context_line":"        \"flavorRef\" : \"http://openstack.example.com/openstack/flavors/1\","},{"line_number":6,"context_line":"        \"metadata\" : {"},{"line_number":7,"context_line":"            \"My Server Name\" : \"Apache1\""},{"line_number":8,"context_line":"        },"}],"source_content_type":"application/json","patch_set":11,"id":"AAAATn%2F%2BtRo%3D","line":5,"updated":"2013-11-21 09:45:58.000000000","message":"ditto","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"05b0fa967bccbba21d1b4078fb1e8d5c96363eb4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"server\" : {"},{"line_number":3,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":4,"context_line":"        \"imageRef\" : \"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":5,"context_line":"        \"flavorRef\" : \"http://openstack.example.com/openstack/flavors/1\","},{"line_number":6,"context_line":"        \"metadata\" : {"},{"line_number":7,"context_line":"            \"My Server Name\" : \"Apache1\""},{"line_number":8,"context_line":"        },"}],"source_content_type":"application/json","patch_set":11,"id":"AAAATn%2F%2Bs6M%3D","line":5,"in_reply_to":"AAAATn%2F%2BtRo%3D","updated":"2013-11-21 11:14:11.000000000","message":"Done","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"}],"doc/v3/api_samples/os-pci/server-post-req.xml":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":2,"context_line":"\u003cserver xmlns\u003d\"http://docs.openstack.org/compute/api/v1.1\" imageRef\u003d\"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\" flavorRef\u003d\"http://openstack.example.com/openstack/flavors/1\" name\u003d\"new-server-test\"\u003e"},{"line_number":3,"context_line":"  \u003cmetadata\u003e"},{"line_number":4,"context_line":"    \u003cmeta key\u003d\"My Server Name\"\u003eApache1\u003c/meta\u003e"},{"line_number":5,"context_line":"  \u003c/metadata\u003e"}],"source_content_type":"application/xml","patch_set":11,"id":"AAAATn%2F%2BtRk%3D","line":2,"updated":"2013-11-21 09:45:58.000000000","message":"image_ref and flavor_ref","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"05b0fa967bccbba21d1b4078fb1e8d5c96363eb4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":2,"context_line":"\u003cserver xmlns\u003d\"http://docs.openstack.org/compute/api/v1.1\" imageRef\u003d\"http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b\" flavorRef\u003d\"http://openstack.example.com/openstack/flavors/1\" name\u003d\"new-server-test\"\u003e"},{"line_number":3,"context_line":"  \u003cmetadata\u003e"},{"line_number":4,"context_line":"    \u003cmeta key\u003d\"My Server Name\"\u003eApache1\u003c/meta\u003e"},{"line_number":5,"context_line":"  \u003c/metadata\u003e"}],"source_content_type":"application/xml","patch_set":11,"id":"AAAATn%2F%2Bs6A%3D","line":2,"in_reply_to":"AAAATn%2F%2BtRk%3D","updated":"2013-11-21 11:14:11.000000000","message":"Done","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"}],"etc/nova/policy.json":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    \"compute_extension:networks\": \"rule:admin_api\","},{"line_number":180,"context_line":"    \"compute_extension:networks:view\": \"\","},{"line_number":181,"context_line":"    \"compute_extension:networks_associate\": \"rule:admin_api\","},{"line_number":182,"context_line":"    \"compute_extension:v3:os-pci\": \"rule:admin_api\","},{"line_number":183,"context_line":"    \"compute_extension:v3:os-instance-pci\": \"\","},{"line_number":184,"context_line":"    \"compute_extension:quotas:show\": \"\","},{"line_number":185,"context_line":"    \"compute_extension:quotas:update\": \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAATH%2F%2FhGE%3D","line":182,"updated":"2013-10-15 06:04:01.000000000","message":"also need \"\"compute_extension:v3:os-pci\": \"discoverable\",","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb9e667d9101fa4a9886df206c8c11f997bf02b2","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    \"compute_extension:networks:view\": \"\","},{"line_number":183,"context_line":"    \"compute_extension:networks_associate\": \"rule:admin_api\","},{"line_number":184,"context_line":"    \"compute_extension:os-pci:pci_servers\": \"\","},{"line_number":185,"context_line":"    \"compute_extension:v3:os-pci:pci_servers\": \"\","},{"line_number":186,"context_line":"    \"compute_extension:quotas:show\": \"\","},{"line_number":187,"context_line":"    \"compute_extension:quotas:update\": \"rule:admin_api\","},{"line_number":188,"context_line":"    \"compute_extension:quotas:delete\": \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":5,"id":"AAAATn%2F%2FogM%3D","line":185,"updated":"2013-10-31 06:07:04.000000000","message":"Missing \"compute_extension:v3:os-pci:discoverable\": \"\",","commit_id":"882ceba006d580bce289849924d97d00fcdfae4c"}],"nova/api/openstack/compute/plugins/v3/pci.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":30,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":31,"context_line":"    \u0027compute\u0027, \u0027v3:os-instance-pci\u0027)"},{"line_number":32,"context_line":"authorize \u003d extensions.soft_extension_authorizer(\u0027compute\u0027, \u0027v3:\u0027 + ALIAS)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhPI%3D","line":31,"updated":"2013-10-15 06:04:01.000000000","message":"should we use \u0027v3:os-pci:xxx\u0027? those should be in same extension namespace.","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"ALIAS \u003d \u0027os-pci\u0027"},{"line_number":30,"context_line":"instance_authorize \u003d extensions.soft_extension_authorizer("},{"line_number":31,"context_line":"    \u0027compute\u0027, \u0027v3:os-instance-pci\u0027)"},{"line_number":32,"context_line":"authorize \u003d extensions.soft_extension_authorizer(\u0027compute\u0027, \u0027v3:\u0027 + ALIAS)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhPQ%3D","line":32,"updated":"2013-10-15 06:04:01.000000000","message":"This should be hard extension authorizer: authorize \u003d extensions.extension_authorizer(\u0027compute\u0027, \u0027v3:\u0027 + ALIAS)","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        dev_id \u003d []"},{"line_number":60,"context_line":"        for dev in instance.pci_devices:"},{"line_number":61,"context_line":"            dev_id.append(dev[\u0027id\u0027])"},{"line_number":62,"context_line":"        server[\u0027%s:pci\u0027 % Pci.alias] \u003d dev_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @wsgi.extends"},{"line_number":65,"context_line":"    def show(self, req, resp_obj, id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhEg%3D","line":62,"updated":"2013-10-15 06:04:01.000000000","message":"the attributes name should be \u0027os-pci:pci_devices\u0027?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            server \u003d resp_obj.obj[\u0027server\u0027]"},{"line_number":71,"context_line":"            try:"},{"line_number":72,"context_line":"                instance \u003d instance_obj.Instance.get_by_uuid("},{"line_number":73,"context_line":"                    context, server[\u0027id\u0027], expected_attrs\u003d\u0027pci_devices\u0027)"},{"line_number":74,"context_line":"                self._extend_server(server, instance)"},{"line_number":75,"context_line":"            except exception.InstanceNotFound:"},{"line_number":76,"context_line":"                msg \u003d _(\"Instance could not be found\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhD4%3D","line":73,"updated":"2013-10-15 06:04:01.000000000","message":"We can get instance obj by \u0027instance \u003d req.get_db_instance(server[\u0027id\u0027])\u0027, we needn\u0027t query db again.\n\nThe instance obj cache at https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L737","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            for server in servers:"},{"line_number":87,"context_line":"                try:"},{"line_number":88,"context_line":"                    instance \u003d instance_obj.Instance.get_by_uuid("},{"line_number":89,"context_line":"                        context, server[\u0027id\u0027], expected_attrs\u003d\u0027pci_devices\u0027)"},{"line_number":90,"context_line":"                    self._extend_server(server, instance)"},{"line_number":91,"context_line":"                except exception.InstanceNotFound as e:"},{"line_number":92,"context_line":"                    raise webob.exc.HTTPBadRequest("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhDw%3D","line":89,"updated":"2013-10-15 06:04:01.000000000","message":"same as above","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"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:"},{"line_number":125,"context_line":"            msg \u003d _(\"Hypervisor with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":126,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhDE%3D","line":123,"updated":"2013-10-15 06:04:01.000000000","message":"Can we cache the compute node obj same as instance obj?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"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":"                hypervisor[\u0027os-pci:pci_stats\u0027] \u003d compute_node[\u0027pci_stats\u0027]"},{"line_number":141,"context_line":"            except exception.ComputeHostNotFound as e:"},{"line_number":142,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhPU%3D","line":140,"updated":"2013-10-15 06:04:01.000000000","message":"we already have self._extend_hypervisor","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"class PciController(object):"},{"line_number":183,"context_line":"    def __init__(self):"},{"line_number":184,"context_line":"        super(PciController, self).__init__()"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _view_pcidevice(self, device, detail\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhRg%3D","line":183,"updated":"2013-10-15 06:04:01.000000000","message":"This is needless, because we doing nothing at here.","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return dev_dict"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @extensions.expected_errors(400)"},{"line_number":202,"context_line":"    @wsgi.serializers(xml\u003dPciDetailTemplate)"},{"line_number":203,"context_line":"    def detail(self, req):"},{"line_number":204,"context_line":"        node \u003d req.GET.get(\u0027node\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhPA%3D","line":201,"updated":"2013-10-15 06:04:01.000000000","message":"There isn\u0027t any HTTPBadRequest raised explicitly.","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            pci_dev \u003d pci_device.PciDevice.get_by_dev_id(context, id)"},{"line_number":217,"context_line":"        except exception.PciDeviceNotFoundById:"},{"line_number":218,"context_line":"            msg \u003d _(\"Pci with ID \u0027%s\u0027 could not be found.\") % id"},{"line_number":219,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":220,"context_line":"        result \u003d self._view_pcidevice(pci_dev, True)"},{"line_number":221,"context_line":"        return dict(pci\u003dresult)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhRw%3D","line":219,"updated":"2013-10-15 06:04:01.000000000","message":"except exception.PciDeviceNotFoundById as e:\n     raise webob.exc.HTTPNotFound(explanation\u003de.message())","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        result \u003d self._view_pcidevice(pci_dev, True)"},{"line_number":221,"context_line":"        return dict(pci\u003dresult)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @extensions.expected_errors(400)"},{"line_number":224,"context_line":"    @wsgi.serializers(xml\u003dPciIndexTemplate)"},{"line_number":225,"context_line":"    def index(self, req):"},{"line_number":226,"context_line":"        node \u003d req.GET.get(\u0027node\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhO4%3D","line":223,"updated":"2013-10-15 06:04:01.000000000","message":"There isn\u0027t any HTTPBadRequest raised explicitly.","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ede989a4dfc861d0c44e65003a2ee18bb9bb4aa9","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"class Pci(extensions.V3APIExtensionBase):"},{"line_number":235,"context_line":"    \"\"\"Pci access support.\"\"\""},{"line_number":236,"context_line":"    name \u003d \"Pcis\""},{"line_number":237,"context_line":"    alias \u003d ALIAS"},{"line_number":238,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/%s/api/v3\" % ALIAS"},{"line_number":239,"context_line":"    updated \u003d \"2013-10-08T00:00:00+00:00\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FlxQ%3D","line":236,"updated":"2013-10-14 05:43:30.000000000","message":"capital char is wired, is other module do this? or PCIs?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    version \u003d 1"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def get_resources(self):"},{"line_number":243,"context_line":"        resources \u003d [extensions.ResourceExtension(\u0027os-pci\u0027,"},{"line_number":244,"context_line":"                     PciController(),"},{"line_number":245,"context_line":"                     collection_actions\u003d{\u0027detail\u0027: \u0027GET\u0027},"},{"line_number":246,"context_line":"                     member_actions\u003d{\u0027pci_devices\u0027: \u0027GET\u0027})]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhR8%3D","line":243,"updated":"2013-10-15 06:04:01.000000000","message":"Use var \u0027ALIAS\u0027 instead of \u0027os-pci\u0027 at here","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb9e667d9101fa4a9886df206c8c11f997bf02b2","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    name \u003d \"PCIAccess\""},{"line_number":84,"context_line":"    alias \u003d ALIAS"},{"line_number":85,"context_line":"    namespace \u003d \"http://docs.openstack.org/compute/ext/%s/api/v3\" % ALIAS"},{"line_number":86,"context_line":"    updated \u003d \"2013-10-18T00:00:00+00:00\""},{"line_number":87,"context_line":"    version \u003d 1"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def get_resources(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FolM%3D","line":86,"updated":"2013-10-31 06:07:04.000000000","message":"this looks like is needless for v3","commit_id":"882ceba006d580bce289849924d97d00fcdfae4c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a8a39f87fc3dd0dc2edfd8991af02823e097d337","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        dev_id \u003d []"},{"line_number":60,"context_line":"        for dev in instance.pci_devices:"},{"line_number":61,"context_line":"            dev_id.append({\u0027id\u0027: dev[\u0027id\u0027]})"},{"line_number":62,"context_line":"        server[\u0027os-pci-devices\u0027] \u003d dev_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @wsgi.extends"},{"line_number":65,"context_line":"    def show(self, req, resp_obj, id):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BiG8%3D","line":62,"updated":"2013-11-25 01:35:17.000000000","message":"this isn\u0027t v3 style, this should be server[\u0027%s:pci_devices\u0027 % ALIAS]","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"a8da51a4a5da52dcdd2d9c98f014e296b1f6d01f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        dev_id \u003d []"},{"line_number":60,"context_line":"        for dev in instance.pci_devices:"},{"line_number":61,"context_line":"            dev_id.append({\u0027id\u0027: dev[\u0027id\u0027]})"},{"line_number":62,"context_line":"        server[\u0027os-pci-devices\u0027] \u003d dev_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @wsgi.extends"},{"line_number":65,"context_line":"    def show(self, req, resp_obj, id):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BiEw%3D","line":62,"in_reply_to":"AAAATn%2F%2BiG8%3D","updated":"2013-11-25 01:49:45.000000000","message":"@ Alex :here u\u0027os-pci:pci_devices\u0027 is Invalid tag name for xml file. I use the format as in security_groups.py which is also a extends servers. but if use the below format, the os-pci:pci_devices is ok. \u003cos-pci:pci_devices id \u003d 1\u003e","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"f4c545e30c074434c89543d3205f3f419488974c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        dev_id \u003d []"},{"line_number":60,"context_line":"        for dev in instance.pci_devices:"},{"line_number":61,"context_line":"            dev_id.append({\u0027id\u0027: dev[\u0027id\u0027]})"},{"line_number":62,"context_line":"        server[\u0027os-pci-devices\u0027] \u003d dev_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @wsgi.extends"},{"line_number":65,"context_line":"    def show(self, req, resp_obj, id):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Bh6w%3D","line":62,"in_reply_to":"AAAATn%2F%2BiG8%3D","updated":"2013-11-25 02:56:08.000000000","message":"yes, sorry I missed that, this does need to prefixed","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"7bda883d35ca32c00bbd5c4932d525c7cc6dcd21","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        for dev in instance.pci_devices:"},{"line_number":61,"context_line":"            dev_id.append({\u0027id\u0027: dev[\u0027id\u0027]})"},{"line_number":62,"context_line":"        server[\u0027os-pci-devices\u0027] \u003d dev_id"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @wsgi.extends"},{"line_number":65,"context_line":"    def show(self, req, resp_obj, id):"},{"line_number":66,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Bhko%3D","line":63,"updated":"2013-11-25 05:14:55.000000000","message":"@ Chris and Alex \nthanks , I have changed this. Pls review again.","commit_id":"3b5431311cc319f6e084dd47229665a6c9e37023"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"46de3060336676acc12c686b5b4b62b457bae7a3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    pci_devices \u003d xmlutil.SubTemplateElement("},{"line_number":36,"context_line":"        elem, \u0027{%s}pci_devices\u0027 % Pci.namespace,"},{"line_number":37,"context_line":"        selector\u003d\u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":38,"context_line":"    pci_devices.set(\u0027id\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2BfYw%3D","line":38,"updated":"2013-11-25 15:10:00.000000000","message":"Shuangtai, we get more than one item, the xml response is:\n...\n    \u003cos-pci:pci_devices id\u003d\"1\"/\u003e\n    \u003cos-pci:pci_devices id\u003d\"2\"/\u003e\n...\n\nThis isn\u0027t right. It should be:\n\u003cos-pci:pci_devices\u003e\n    \u003cos-pci:pci_device id\u003d1\u003e\u003c/os-pci:pci_device\u003e\n    \u003cos-pci:pci_device id\u003d2\u003e\u003c/os-pci:pci_device\u003e\n\u003c/os-pci:pci_devices\u003e\n\nyou can reference security-groups extension.","commit_id":"13c955916dbfad276dafc863a2a5467ed22a7301"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"bb4c82406275d34413f0e5784eb475fb2599b320","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    pci_devices \u003d xmlutil.SubTemplateElement("},{"line_number":36,"context_line":"        elem, \u0027{%s}pci_devices\u0027 % Pci.namespace,"},{"line_number":37,"context_line":"        selector\u003d\u0027%s:pci_devices\u0027 % Pci.alias)"},{"line_number":38,"context_line":"    pci_devices.set(\u0027id\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class PciServerTemplate(xmlutil.TemplateBuilder):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2BbEg%3D","line":38,"in_reply_to":"AAAATn%2F%2BfYw%3D","updated":"2013-11-26 09:25:15.000000000","message":"@Alex: done,pls review again,thanks!","commit_id":"13c955916dbfad276dafc863a2a5467ed22a7301"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"35fc29a0e52d1398e202f4677e280b2152a35845","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, \u0027v3:os-pci:pci_servers\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Ba%2FM%3D","line":26,"updated":"2013-11-26 09:55:54.000000000","message":"why not \u0027compute\u0027, \u0027v3:\u0027 + ALIAS + \u0027:pci_servers\u0027, after checked other extensions, looks like most extensions did so.","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"f23678558c81502e423b9a8fd1e8efbaf8bf0abe","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, \u0027v3:os-pci:pci_servers\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Bajg%3D","line":26,"in_reply_to":"AAAATn%2F%2Ba%2FM%3D","updated":"2013-11-26 11:06:57.000000000","message":"Done","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"35fc29a0e52d1398e202f4677e280b2152a35845","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"},{"line_number":30,"context_line":"    def will_render(self, datum):"},{"line_number":31,"context_line":"        return \"os-pci:pci_devices\" in datum"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Ba%2FE%3D","line":31,"updated":"2013-11-26 09:55:54.000000000","message":"ditto","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"f23678558c81502e423b9a8fd1e8efbaf8bf0abe","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"},{"line_number":30,"context_line":"    def will_render(self, datum):"},{"line_number":31,"context_line":"        return \"os-pci:pci_devices\" in datum"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Bajs%3D","line":31,"in_reply_to":"AAAATn%2F%2Ba%2FE%3D","updated":"2013-11-26 11:06:57.000000000","message":"Done","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"35fc29a0e52d1398e202f4677e280b2152a35845","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"},{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027os-pci:pci_devices\u0027,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2BbA0%3D","line":35,"updated":"2013-11-26 09:55:54.000000000","message":"ditto","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"f23678558c81502e423b9a8fd1e8efbaf8bf0abe","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"},{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027os-pci:pci_devices\u0027,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Bajw%3D","line":35,"in_reply_to":"AAAATn%2F%2BbA0%3D","updated":"2013-11-26 11:06:57.000000000","message":"Done","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"35fc29a0e52d1398e202f4677e280b2152a35845","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027os-pci:pci_devices\u0027,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"},{"line_number":39,"context_line":"        selector\u003d\"os-pci:pci_devices\", colon_ns\u003dTrue)"},{"line_number":40,"context_line":"    pci_device.set(\u0027id\u0027)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2BbAs%3D","line":38,"updated":"2013-11-26 09:55:54.000000000","message":"ditto","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"f23678558c81502e423b9a8fd1e8efbaf8bf0abe","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027os-pci:pci_devices\u0027,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"},{"line_number":39,"context_line":"        selector\u003d\"os-pci:pci_devices\", colon_ns\u003dTrue)"},{"line_number":40,"context_line":"    pci_device.set(\u0027id\u0027)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Baps%3D","line":38,"in_reply_to":"AAAATn%2F%2BbAs%3D","updated":"2013-11-26 11:06:57.000000000","message":"Done","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"35fc29a0e52d1398e202f4677e280b2152a35845","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"},{"line_number":39,"context_line":"        selector\u003d\"os-pci:pci_devices\", colon_ns\u003dTrue)"},{"line_number":40,"context_line":"    pci_device.set(\u0027id\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Ba%2B8%3D","line":39,"updated":"2013-11-26 09:55:54.000000000","message":"colon_ns\u003dTrue actually shouldn\u0027t be used in this way, since the os-pci namespace\nwill be defined in the xml header, so the colon will be processed correct, the \ncolon_ns param only apply to the cases which multi line k:v type tag which the k is \ndynamic, for example:\n\u003cpci_device\u003e\n    \u003ck:v xmlns:foo\u003d\"k\"\u003e\u003c/k:v\u003e\n    \u003ck2:v2 xmlns:foo\u003d\"k2\"\u003e\u003c/k2:v2\u003e\n    \u003ck3:v3 xmlns:foo\u003d\"k3\"\u003e\u003c/k3:v3\u003e\n\u003c/pci_device\u003e\nthere is no way to define all the k as namespace in xml header, then you need to use \ncolon_ns\u003dTrue\n\nso in this case, we don\u0027t need to pass colon_ns param in.","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"c0a1e4603450b747659f22c049628d560c9cdf71","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"},{"line_number":39,"context_line":"        selector\u003d\"os-pci:pci_devices\", colon_ns\u003dTrue)"},{"line_number":40,"context_line":"    pci_device.set(\u0027id\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2BayQ%3D","line":39,"in_reply_to":"AAAATn%2F%2Ba%2B8%3D","updated":"2013-11-26 10:22:57.000000000","message":"@GuoHui :https://github.com/openstack/nova/blob/master/nova/api/openstack/xmlutil.py#L163 . if i use \u003cos-pci:pci_device\u003e as a tagname. it seems must use colon_ns \u003d True to sport \u0027:\u0027 in this case ,or os-pci:pci_devices is invalid tag name .\nthanks!","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"f23678558c81502e423b9a8fd1e8efbaf8bf0abe","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    pci_device \u003d xmlutil.SubTemplateElement(pci_devices, \u0027os-pci:pci_device\u0027,"},{"line_number":39,"context_line":"        selector\u003d\"os-pci:pci_devices\", colon_ns\u003dTrue)"},{"line_number":40,"context_line":"    pci_device.set(\u0027id\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2Bai0%3D","line":39,"in_reply_to":"AAAATn%2F%2BayQ%3D","updated":"2013-11-26 11:06:57.000000000","message":"@GuoHui\nhi,see the Alex\u0027s commets here I want to use os-pci:pci_devices as a tagname:\n\n\u003cos-pci:pci_devices\u003e\n\u003cos-pci:pci_device id\u003d1\u003e\u003c/os-pci:pci_device\u003e\n\u003cos-pci:pci_device id\u003d2\u003e\u003c/os-pci:pci_device\u003e\n\u003c/os-pci:pci_devices\u003e","commit_id":"e6eedcc19fce2ce6752deed2a1ca17c4df1b50c3"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6d05d62aabe5a17094d08acec086b43f9d10ffd4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027v3:\u0027 + ALIAS + \u0027:pci_servers\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"},{"line_number":30,"context_line":"    def will_render(self, datum):"},{"line_number":31,"context_line":"        return \u0027%s:pci_devices\u0027 % Pci.alias in datum"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BV%2FI%3D","line":29,"updated":"2013-11-27 05:59:51.000000000","message":"This isn\u0027t needed because the PciServerTemplate won\u0027t be attached unless the data should be present anyway","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"bca84ac75b68ebad57976352facffdf09760eb15","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027compute\u0027, \u0027v3:\u0027 + ALIAS + \u0027:pci_servers\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PciServerTemplateElement(xmlutil.TemplateElement):"},{"line_number":30,"context_line":"    def will_render(self, datum):"},{"line_number":31,"context_line":"        return \u0027%s:pci_devices\u0027 % Pci.alias in datum"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BVzM%3D","line":29,"in_reply_to":"AAAATn%2F%2BV%2FI%3D","updated":"2013-11-27 07:27:26.000000000","message":"Done","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6d05d62aabe5a17094d08acec086b43f9d10ffd4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"},{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BV%2FA%3D","line":35,"updated":"2013-11-27 05:59:51.000000000","message":"So this can just create an xmlutil.TemplateElement","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"bca84ac75b68ebad57976352facffdf09760eb15","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def make_server(elem):"},{"line_number":35,"context_line":"    pci_devices \u003d PciServerTemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":36,"context_line":"                                           colon_ns\u003dTrue)"},{"line_number":37,"context_line":"    elem.append(pci_devices)"},{"line_number":38,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BVzI%3D","line":35,"in_reply_to":"AAAATn%2F%2BV%2FA%3D","updated":"2013-11-27 07:27:26.000000000","message":"Done","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"6d05d62aabe5a17094d08acec086b43f9d10ffd4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":39,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"},{"line_number":40,"context_line":"                                        selector\u003d\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":41,"context_line":"                                        colon_ns\u003dTrue)"},{"line_number":42,"context_line":"    device.set(\u0027id\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BV%2BA%3D","line":41,"updated":"2013-11-27 05:59:51.000000000","message":"This colon_ns does seem a bit odd to me, but I can\u0027t see a better way of doing it. I think it might be a bug in xmutil that the namespace set is not getting through. So this is fine for the moment.","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"bca84ac75b68ebad57976352facffdf09760eb15","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":39,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"},{"line_number":40,"context_line":"                                        selector\u003d\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":41,"context_line":"                                        colon_ns\u003dTrue)"},{"line_number":42,"context_line":"    device.set(\u0027id\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2BVts%3D","line":41,"in_reply_to":"AAAATn%2F%2BV%2BA%3D","updated":"2013-11-27 07:27:26.000000000","message":"@ Chris: thanks.","commit_id":"c471b8dbbbe87cb91cf6dfed1ebed248628ba890"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"a523f556ff2564ce89cc5f509769f7c4063a1632","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F989I%3D","line":31,"updated":"2013-12-04 03:04:19.000000000","message":"still, we don\u0027t need this colon_ns\u003dTrue, because the namespace will be added into the xml header, this param wasn\u0027t added for this case.","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"eb798013446c5eb94ea152e1996dcb3e712132ba","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F982g%3D","line":31,"in_reply_to":"AAAATn%2F984c%3D","updated":"2013-12-04 04:16:25.000000000","message":"@Shuangtai, the problem in xmlutil is the individual tag doesn\u0027t honor global namespace, we could fix it later, but it doesn\u0027t block this patch landing.","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"d7f5eebf79e0a18034f14541b52de91467058e0d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F984c%3D","line":31,"in_reply_to":"AAAATn%2F9854%3D","updated":"2013-12-04 03:57:34.000000000","message":"@Shuangtai, my bad, so far the simplest option is using colon_ns param for this case, we may change the xmlutil behavior sometime.","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2731ff37017c8e0e53eff4d0559109284993a863","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F987s%3D","line":31,"in_reply_to":"AAAATn%2F9870%3D","updated":"2013-12-04 03:18:53.000000000","message":"@Shuangtai, please change the line 33 as well","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"b3ab6b63e1451524dea390720b7dbbac31112ef6","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F9854%3D","line":31,"in_reply_to":"AAAATn%2F987s%3D","updated":"2013-12-04 03:43:21.000000000","message":"@GuoHui,\nsorry ,can you give the test resault? I seem can not get the resault like below in server-get-resp.xml :\n \u003cos-pci:pci_devices \u003e\n    \u003cos-pci:pci_device id\u003d\"1\"/\u003e\n  \u003c/os-pci:pci_devices\u003e","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"9871dba8cdf5ea345d5d5f0329592b38bc823460","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F988Q%3D","line":31,"in_reply_to":"AAAATn%2F9880%3D","updated":"2013-12-04 03:13:27.000000000","message":"@GuoHui \n\nPls see Christopher\u0027s commments in patchset 16. it might be a bug in xmutil.","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"aebb8d3a67dcfa4064aa781871ec859ea76a1ce5","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F9870%3D","line":31,"in_reply_to":"AAAATn%2F988Q%3D","updated":"2013-12-04 03:17:07.000000000","message":"@Shuangtai, I have tested your patch, and have figure out what is wrong here, the xlmutil is fine, you are adding the namespace wrong, you should adding the namespace in this way\npci_devices \u003d xmlutil.TemplateElement(\u0027{%s}pci_devices\u0027 % Pci.alias)","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"527e879fb5b7c4dfa0804f279c3cbef5deccbd6f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def make_server(elem):"},{"line_number":30,"context_line":"    pci_devices \u003d xmlutil.TemplateElement(\u0027%s:pci_devices\u0027 % Pci.alias,"},{"line_number":31,"context_line":"                                          colon_ns\u003dTrue)"},{"line_number":32,"context_line":"    elem.append(pci_devices)"},{"line_number":33,"context_line":"    device \u003d xmlutil.SubTemplateElement(pci_devices,"},{"line_number":34,"context_line":"                                        \u0027%s:pci_device\u0027 % Pci.alias,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATn%2F9880%3D","line":31,"in_reply_to":"AAAATn%2F989I%3D","updated":"2013-12-04 03:06:21.000000000","message":"Or there is something doesn\u0027t work well.","commit_id":"c5f417232d9c95d878aee8c36e0d2ede647bcd69"}],"nova/tests/api/openstack/compute/plugins/v3/test_pcis.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":75,"context_line":"fake_pci_devs \u003d [test_pci_device.fake_db_dev, test_pci_device.fake_db_dev_1]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class PciControllertest(test.TestCase):"},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(PciControllertest, self).setUp()"},{"line_number":81,"context_line":"        self.controller \u003d pci.PciController()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCw%3D","line":78,"updated":"2013-10-15 06:04:01.000000000","message":"Can we use test.NoDBTestCase?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                             dist[\u0027pcis\u0027][i][\u0027dev_id\u0027])"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"class PciSerializersTest(test.TestCase):"},{"line_number":153,"context_line":"    def setUp(self):"},{"line_number":154,"context_line":"        super(PciSerializersTest, self).setUp()"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCs%3D","line":152,"updated":"2013-10-15 06:04:01.000000000","message":"Can we use test.NoDBTestCase?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"class PciSerializersTest(test.TestCase):"},{"line_number":153,"context_line":"    def setUp(self):"},{"line_number":154,"context_line":"        super(PciSerializersTest, self).setUp()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_index_serializer(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCU%3D","line":153,"updated":"2013-10-15 06:04:01.000000000","message":"This is needless","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                             exemplar[\u0027pci\u0027][child.tag])"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"class PciHypervisorControllerTest(test.TestCase):"},{"line_number":206,"context_line":"    def setUp(self):"},{"line_number":207,"context_line":"        super(PciHypervisorControllerTest, self).setUp()"},{"line_number":208,"context_line":"        self.controller \u003d pci.PciHypervisorController()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCk%3D","line":205,"updated":"2013-10-15 06:04:01.000000000","message":"Can we use test.NoDBTestCase?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                          req, resp)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"class PciServerTemplateTest(test.TestCase):"},{"line_number":282,"context_line":"    def setUp(self):"},{"line_number":283,"context_line":"        super(PciServerTemplateTest, self).setUp()"},{"line_number":284,"context_line":"        self.name \u003d \"http://docs.openstack.org/compute/ext/os-pci/api/v3\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCg%3D","line":281,"updated":"2013-10-15 06:04:01.000000000","message":"Can we use test.NoDBTestCase?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"885ba35fbbbd9296f26354964f091b0b35cd66c4","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        self.assertEqual(\u0027os-pci-2\u0027, server_nodes[1].get(namespace))"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"class PciServerControllerTest(test.TestCase):"},{"line_number":314,"context_line":"    def setUp(self):"},{"line_number":315,"context_line":"        super(PciServerControllerTest, self).setUp()"},{"line_number":316,"context_line":"        self.controller \u003d pci.PciServerController()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATH%2F%2FhCc%3D","line":313,"updated":"2013-10-15 06:04:01.000000000","message":"Can we use test.NoDBTestCase?","commit_id":"0aa3af4cd7c9514689be50c3be5e83b8d7ece689"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb9e667d9101fa4a9886df206c8c11f997bf02b2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                    \u0027tenant_id\u0027: \u00279a3af784c\u0027,"},{"line_number":80,"context_line":"                                    \u0027updated\u0027: \u00272013-09-18T17:22:53Z\u0027,"},{"line_number":81,"context_line":"                                    \u0027user_id\u0027: \u0027e992080ac0\u0027,"},{"line_number":82,"context_line":"                                    }}"},{"line_number":83,"context_line":"        self.fake_list \u003d {\u0027servers\u0027: [{\u0027accessIPv4\u0027: \u0027\u0027,"},{"line_number":84,"context_line":"                                       \u0027accessIPv6\u0027: \u0027\u0027,"},{"line_number":85,"context_line":"                                       \u0027addresses\u0027: {},"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Fog4%3D","line":82,"updated":"2013-10-31 06:07:04.000000000","message":"nit, I know this just a fake. But accessIPv4/6 are removed from v3. And \u0027hostId\u0027 should be \u0027host_id\u0027. Or you can just fake a server with core attributes.","commit_id":"882ceba006d580bce289849924d97d00fcdfae4c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb9e667d9101fa4a9886df206c8c11f997bf02b2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                                       \u0027tenant_id\u0027: \u00279a3af784c\u0027,"},{"line_number":98,"context_line":"                                       \u0027updated\u0027: \u00272013-09-18T17:22:53Z\u0027,"},{"line_number":99,"context_line":"                                       \u0027user_id\u0027: \u0027e992080ac\u0027,"},{"line_number":100,"context_line":"                                       }]}"},{"line_number":101,"context_line":"        self._create_fake_instance()"},{"line_number":102,"context_line":"        self._create_fake_pci_device()"},{"line_number":103,"context_line":"        self.pci_device.claim(self.inst)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Fog0%3D","line":100,"updated":"2013-10-31 06:07:04.000000000","message":"ditto","commit_id":"882ceba006d580bce289849924d97d00fcdfae4c"}],"nova/tests/fake_policy.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb9e667d9101fa4a9886df206c8c11f997bf02b2","unresolved":false,"context_lines":[{"line_number":293,"context_line":"    \"compute_extension:os-assisted-volume-snapshots:create\": \"\","},{"line_number":294,"context_line":"    \"compute_extension:os-assisted-volume-snapshots:delete\": \"\","},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    \"volume:create\": \"\","},{"line_number":298,"context_line":"    \"volume:get\": \"\","},{"line_number":299,"context_line":"    \"volume:get_all\": \"\","}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2Fogc%3D","line":296,"updated":"2013-10-31 06:07:04.000000000","message":"We shouldn\u0027t touch extra thing.","commit_id":"882ceba006d580bce289849924d97d00fcdfae4c"}],"nova/tests/integrated/v3/api_samples/all_extensions/server-get-resp.xml.tpl":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  \u003c/addresses\u003e"},{"line_number":17,"context_line":"  \u003catom:link href\u003d\"%(host)s/v3/servers/%(uuid)s\" rel\u003d\"self\"/\u003e"},{"line_number":18,"context_line":"  \u003catom:link href\u003d\"%(host)s/servers/%(uuid)s\" rel\u003d\"bookmark\"/\u003e"},{"line_number":19,"context_line":"  \u003cos-pci-devices\u003e"},{"line_number":20,"context_line":"    \u003cpci_device id\u003d\"1\"/\u003e"},{"line_number":21,"context_line":"  \u003c/os-pci-devices\u003e"},{"line_number":22,"context_line":"  \u003csecurity_groups\u003e"}],"source_content_type":"text/x-smarty","patch_set":11,"id":"AAAATn%2F%2BtNM%3D","line":19,"updated":"2013-11-21 09:45:58.000000000","message":"as pci is a extends servers, shouldn\u0027t this be os-pci:os-pci-devices? no?","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"2aba96d103c4987029dd70dca4a9326fc4cc61a1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  \u003c/addresses\u003e"},{"line_number":17,"context_line":"  \u003catom:link href\u003d\"%(host)s/v3/servers/%(uuid)s\" rel\u003d\"self\"/\u003e"},{"line_number":18,"context_line":"  \u003catom:link href\u003d\"%(host)s/servers/%(uuid)s\" rel\u003d\"bookmark\"/\u003e"},{"line_number":19,"context_line":"  \u003cos-pci-devices\u003e"},{"line_number":20,"context_line":"    \u003cpci_device id\u003d\"1\"/\u003e"},{"line_number":21,"context_line":"  \u003c/os-pci-devices\u003e"},{"line_number":22,"context_line":"  \u003csecurity_groups\u003e"}],"source_content_type":"text/x-smarty","patch_set":11,"id":"AAAATn%2F%2Bs78%3D","line":19,"in_reply_to":"AAAATn%2F%2BtNM%3D","updated":"2013-11-21 11:02:10.000000000","message":"@GuoHui LIu\nHi,you can V2_sever comments,here u\u0027os-pci:pci_devices\u0027  is Invalid tag name. I use the format as in security_groups.py which is also a extends servers. but if use the below format, the os-pci:pci_devices is ok.\n\u003cos-pci:pci_devices  id \u003d 1\u003e\n\nthanks!","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"}],"nova/tests/integrated/v3/test_pcis.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":28,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":29,"context_line":"        subs[\u0027instance_name\u0027] \u003d \u0027instance-\\d{8}\u0027"},{"line_number":30,"context_line":"        subs[\u0027hypervisor_hostname\u0027] \u003d r\u0027[\\w\\.\\-]+\u0027"},{"line_number":31,"context_line":"        self._verify_response(\u0027server-get-resp\u0027, subs, response, 200)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_detail(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BtPw%3D","line":30,"updated":"2013-11-21 09:45:58.000000000","message":"where is this sub get used, am I missing something here?","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"05b0fa967bccbba21d1b4078fb1e8d5c96363eb4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":28,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":29,"context_line":"        subs[\u0027instance_name\u0027] \u003d \u0027instance-\\d{8}\u0027"},{"line_number":30,"context_line":"        subs[\u0027hypervisor_hostname\u0027] \u003d r\u0027[\\w\\.\\-]+\u0027"},{"line_number":31,"context_line":"        self._verify_response(\u0027server-get-resp\u0027, subs, response, 200)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def test_detail(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2Bs54%3D","line":30,"in_reply_to":"AAAATn%2F%2BtPw%3D","updated":"2013-11-21 11:14:11.000000000","message":"Done","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2f5997a5e5b516514ee914f8c4d9bff827c9c79c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":38,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":39,"context_line":"        subs[\u0027instance_name\u0027] \u003d \u0027instance-\\d{8}\u0027"},{"line_number":40,"context_line":"        subs[\u0027hypervisor_hostname\u0027] \u003d r\u0027[\\w\\.\\-]+\u0027"},{"line_number":41,"context_line":"        self._verify_response(\u0027servers-detail-resp\u0027, subs, response, 200)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BtPs%3D","line":40,"updated":"2013-11-21 09:45:58.000000000","message":"ditto","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"},{"author":{"_account_id":7641,"name":"Shuangtai Tian","email":"hitianst@gmail.com","username":"shuangtai"},"change_message_id":"05b0fa967bccbba21d1b4078fb1e8d5c96363eb4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":38,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":39,"context_line":"        subs[\u0027instance_name\u0027] \u003d \u0027instance-\\d{8}\u0027"},{"line_number":40,"context_line":"        subs[\u0027hypervisor_hostname\u0027] \u003d r\u0027[\\w\\.\\-]+\u0027"},{"line_number":41,"context_line":"        self._verify_response(\u0027servers-detail-resp\u0027, subs, response, 200)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2Bs5o%3D","line":40,"in_reply_to":"AAAATn%2F%2BtPs%3D","updated":"2013-11-21 11:14:11.000000000","message":"@GuoHui LIu\t\nthanks!","commit_id":"10c822366728db01c5d508b4bd6b57c0ca0cb8b8"}]}
