)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jianghua wang \u003cjianghua.wang@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-18 09:24:37 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support vGPU to Xen"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please note: this is still work in progress and we will submit a"},{"line_number":10,"context_line":"             spec for Mitaka. The purpose of this review is to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_200d9537","line":7,"updated":"2015-09-21 08:22:42.000000000","message":"XenAPI: Add support for vGPU","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jianghua wang \u003cjianghua.wang@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-18 09:24:37 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support vGPU to Xen"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please note: this is still work in progress and we will submit a"},{"line_number":10,"context_line":"             spec for Mitaka. The purpose of this review is to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_562c73ab","line":7,"in_reply_to":"ba15a1d1_200d9537","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please note: this is still work in progress and we will submit a"},{"line_number":10,"context_line":"             spec for Mitaka. The purpose of this review is to"},{"line_number":11,"context_line":"             gather comments and line up the design."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It will implement the following functions to support vGPU"},{"line_number":14,"context_line":"1. Add function to query the vGPU information from the host and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_a019a57b","line":11,"updated":"2015-09-21 08:22:42.000000000","message":"Instead of \u0027gather comments ...\u0027 it should be \"The purpose of this review is to serve as a proof of concept only\"","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Please note: this is still work in progress and we will submit a"},{"line_number":10,"context_line":"             spec for Mitaka. The purpose of this review is to"},{"line_number":11,"context_line":"             gather comments and line up the design."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It will implement the following functions to support vGPU"},{"line_number":14,"context_line":"1. Add function to query the vGPU information from the host and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_7629779a","line":11,"in_reply_to":"ba15a1d1_a019a57b","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}],"nova/db/sqlalchemy/migrate_repo/versions/216_havana.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        Column(\u0027hypervisor_type\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":298,"context_line":"        Column(\u0027hypervisor_version\u0027, Integer, nullable\u003dFalse),"},{"line_number":299,"context_line":"        Column(\u0027cpu_info\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":300,"context_line":"        Column(\u0027vgpus\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":301,"context_line":"        Column(\u0027disk_available_least\u0027, Integer),"},{"line_number":302,"context_line":"        Column(\u0027free_ram_mb\u0027, Integer),"},{"line_number":303,"context_line":"        Column(\u0027free_disk_gb\u0027, Integer),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_60514d0e","line":300,"updated":"2015-09-21 08:22:42.000000000","message":"This looks wrong; I don\u0027t think we can change the havana migrate script?  Is there a better place for this?","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        Column(\u0027hypervisor_type\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":298,"context_line":"        Column(\u0027hypervisor_version\u0027, Integer, nullable\u003dFalse),"},{"line_number":299,"context_line":"        Column(\u0027cpu_info\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":300,"context_line":"        Column(\u0027vgpus\u0027, MediumText(), nullable\u003dFalse),"},{"line_number":301,"context_line":"        Column(\u0027disk_available_least\u0027, Integer),"},{"line_number":302,"context_line":"        Column(\u0027free_ram_mb\u0027, Integer),"},{"line_number":303,"context_line":"        Column(\u0027free_disk_gb\u0027, Integer),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_c7544fc7","line":300,"in_reply_to":"ba15a1d1_60514d0e","updated":"2015-09-24 08:23:56.000000000","message":"yes, it seems wrong as it\u0027s look as a repo migrate script. But I don\u0027t know why this script will always be invoked during devstack setup. And it seems the db will be lack of this \"vgpus\" field if I didn\u0027t add this line. May need further investigation.","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}],"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # above, since it is copied from \u003ccpu\u003e tag of getCapabilities()"},{"line_number":153,"context_line":"    # (See libvirt.virtConnection)."},{"line_number":154,"context_line":"    cpu_info \u003d Column(MediumText(), nullable\u003dFalse)"},{"line_number":155,"context_line":"    vgpus \u003d Column(MediumText(), nullable\u003dFalse)"},{"line_number":156,"context_line":"    disk_available_least \u003d Column(Integer)"},{"line_number":157,"context_line":"    host_ip \u003d Column(types.IPAddress())"},{"line_number":158,"context_line":"    supported_instances \u003d Column(Text)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_4073e9b4","line":155,"updated":"2015-09-21 08:22:42.000000000","message":"If you remove nullable\u003dFalse then you can remove the resource_tracker change?","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # above, since it is copied from \u003ccpu\u003e tag of getCapabilities()"},{"line_number":153,"context_line":"    # (See libvirt.virtConnection)."},{"line_number":154,"context_line":"    cpu_info \u003d Column(MediumText(), nullable\u003dFalse)"},{"line_number":155,"context_line":"    vgpus \u003d Column(MediumText(), nullable\u003dFalse)"},{"line_number":156,"context_line":"    disk_available_least \u003d Column(Integer)"},{"line_number":157,"context_line":"    host_ip \u003d Column(types.IPAddress())"},{"line_number":158,"context_line":"    supported_instances \u003d Column(Text)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_f6134763","line":155,"in_reply_to":"ba15a1d1_4073e9b4","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}],"nova/virt/xenapi/host.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        return passthrough_devices"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_remain_vgpus(self):"},{"line_number":223,"context_line":"        \"\"\"get the remaining vGPU."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        vgpu \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_609f0db5","line":222,"updated":"2015-09-21 08:22:42.000000000","message":"_get_remaining_vgpus","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        return passthrough_devices"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_remain_vgpus(self):"},{"line_number":223,"context_line":"        \"\"\"get the remaining vGPU."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        vgpu \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_31054910","line":222,"in_reply_to":"ba15a1d1_609f0db5","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        return passthrough_devices"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_remain_vgpus(self):"},{"line_number":223,"context_line":"        \"\"\"get the remaining vGPU."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        vgpu \u003d {}"},{"line_number":226,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_e0923d9f","line":223,"updated":"2015-09-21 08:22:42.000000000","message":"This docstring should be expanded; just having documentation that is the same as the method name isn\u0027t very useful :)","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        return passthrough_devices"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_remain_vgpus(self):"},{"line_number":223,"context_line":"        \"\"\"get the remaining vGPU."},{"line_number":224,"context_line":"        \"\"\""},{"line_number":225,"context_line":"        vgpu \u003d {}"},{"line_number":226,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_d105ed0f","line":223,"in_reply_to":"ba15a1d1_e0923d9f","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":2646,"context_line":"    if model_name is None:"},{"line_number":2647,"context_line":"        return None"},{"line_number":2648,"context_line":""},{"line_number":2649,"context_line":"    expr \u003d \u0027field \"model_name\" \u003d \"\u0027 + model_name + \u0027\"\u0027"},{"line_number":2650,"context_line":"    # print(\"\\n\\nvgpu: expr is:\")"},{"line_number":2651,"context_line":"    # print(expr)"},{"line_number":2652,"context_line":"    vgpu_types \u003d session.call_xenapi(\u0027VGPU_type.get_all_records_where\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_00c971ac","line":2649,"updated":"2015-09-21 08:22:42.000000000","message":"May need to also filter based on the host_ref?","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":2656,"context_line":""},{"line_number":2657,"context_line":"    for vgpu_type in vgpu_types:"},{"line_number":2658,"context_line":"        gpu_groups \u003d vgpu_types[vgpu_type][\u0027supported_on_GPU_groups\u0027]"},{"line_number":2659,"context_line":"        print(\"\\n\\ngpu_groups is:\")"},{"line_number":2660,"context_line":"        print(gpu_groups)"},{"line_number":2661,"context_line":"        for gpu_group in gpu_groups:"},{"line_number":2662,"context_line":"            remain_cap \u003d session.call_xenapi("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_80bd8104","line":2659,"updated":"2015-09-21 08:22:42.000000000","message":"I know it\u0027s just a POC, but can you remove the debugging code?  If there is something to be usefully logged, that\u0027s fine, but we don\u0027t want print statements.","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":2656,"context_line":""},{"line_number":2657,"context_line":"    for vgpu_type in vgpu_types:"},{"line_number":2658,"context_line":"        gpu_groups \u003d vgpu_types[vgpu_type][\u0027supported_on_GPU_groups\u0027]"},{"line_number":2659,"context_line":"        print(\"\\n\\ngpu_groups is:\")"},{"line_number":2660,"context_line":"        print(gpu_groups)"},{"line_number":2661,"context_line":"        for gpu_group in gpu_groups:"},{"line_number":2662,"context_line":"            remain_cap \u003d session.call_xenapi("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_91145544","line":2659,"in_reply_to":"ba15a1d1_80bd8104","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"58d833dc1f66b7b2f050e9881590a0ef15f00eb8","unresolved":false,"context_lines":[{"line_number":2392,"context_line":"        vm_ref \u003d self._get_vm_opaque_ref(instance)"},{"line_number":2393,"context_line":"        vm_utils.strip_base_mirror_from_vdis(self._session, vm_ref)"},{"line_number":2394,"context_line":""},{"line_number":2395,"context_line":"    def rollback_live_migration_at_destination(self, instance,"},{"line_number":2396,"context_line":"                                               block_device_info):"},{"line_number":2397,"context_line":"        bdms \u003d block_device_info[\u0027block_device_mapping\u0027] or []"},{"line_number":2398,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_000e51e5","line":2395,"updated":"2015-09-21 08:22:42.000000000","message":"Why is this new in your change?\nSeems unrelated","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"1e396e173f16f8bb350089339010f1dab2229c5a","unresolved":false,"context_lines":[{"line_number":2392,"context_line":"        vm_ref \u003d self._get_vm_opaque_ref(instance)"},{"line_number":2393,"context_line":"        vm_utils.strip_base_mirror_from_vdis(self._session, vm_ref)"},{"line_number":2394,"context_line":""},{"line_number":2395,"context_line":"    def rollback_live_migration_at_destination(self, instance,"},{"line_number":2396,"context_line":"                                               block_device_info):"},{"line_number":2397,"context_line":"        bdms \u003d block_device_info[\u0027block_device_mapping\u0027] or []"},{"line_number":2398,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_71174145","line":2395,"in_reply_to":"ba15a1d1_000e51e5","updated":"2015-09-24 08:23:56.000000000","message":"Done","commit_id":"d9b123a97c13bce2f5a7a0225994354ab32fcc19"}]}
