)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"9093ab27e3d1ea0e75a8cdd043720d039f47b598","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce"},{"line_number":16,"context_line":"Closes-Bug: #1229190"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2FQTQ%3D","line":14,"updated":"2013-10-19 02:07:52.000000000","message":"DocImpact","commit_id":"9092cafff53d1cee8d358beff89f6ae86e2d955d"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"b1950b2dedb80c261da680f5ca5996760846d134","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce"},{"line_number":16,"context_line":"Closes-Bug: #1229190"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2FQRY%3D","line":14,"in_reply_to":"AAAATH%2F%2FQTQ%3D","updated":"2013-10-19 02:32:42.000000000","message":"Done","commit_id":"9092cafff53d1cee8d358beff89f6ae86e2d955d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e6b0e2e01d58728a951d7b7287f0423f30024fc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce"},{"line_number":18,"context_line":"Closes-Bug: #1229190"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATn%2F%2F7sY%3D","line":18,"updated":"2013-10-25 01:08:36.000000000","message":"I changed the bug priority to \u0027wishlist\u0027 as this isn\u0027t really a bug, this is an API change for a new feature / mod to the API.  This could actually probably be it\u0027s own blueprint given the scope of the changes here.","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f12f4e96c0eda429ed6211c18263e8f31212fdcb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce"},{"line_number":18,"context_line":"Closes-Bug: #1229190"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATn%2F%2F7QU%3D","line":18,"in_reply_to":"AAAATn%2F%2F7sY%3D","updated":"2013-10-25 08:32:38.000000000","message":"A bp was filed: https://blueprints.launchpad.net/nova/+spec/hypervisor-show-ip","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"befee485afe8892566a076cee9773e24679404c6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jay Lau \u003cliugya@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-25 17:01:25 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"hypervisor show should also include ip address"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After blueprint no-compute-fanout-to-scheduler, host_ip was also"},{"line_number":10,"context_line":"stored in table of compute_nodes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2F5lE%3D","line":7,"updated":"2013-10-25 14:34:14.000000000","message":"Perhaps better would be:\n\n\"Adds host_ip to hypervisor show API\"","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"772778b69754a6b0fe8298a78e5129a8f9eb8909","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jay Lau \u003cliugya@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-25 17:01:25 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"hypervisor show should also include ip address"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After blueprint no-compute-fanout-to-scheduler, host_ip was also"},{"line_number":10,"context_line":"stored in table of compute_nodes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2F2xQ%3D","line":7,"in_reply_to":"AAAATn%2F%2F5lE%3D","updated":"2013-10-27 06:44:34.000000000","message":"Done","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"befee485afe8892566a076cee9773e24679404c6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"stored in table of compute_nodes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2F5k4%3D","line":13,"updated":"2013-10-25 14:34:14.000000000","message":"Given that its a whole lot easier to add stuff to an API than remove it I think it would be good to have some sort of use case justification for adding to the API (more than just because its there :-) Perhaps in this case its useful for admin debugging?","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"772778b69754a6b0fe8298a78e5129a8f9eb8909","unresolved":false,"context_lines":[{"line_number":10,"context_line":"stored in table of compute_nodes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2F2xI%3D","line":13,"in_reply_to":"AAAATn%2F%2F5k4%3D","updated":"2013-10-27 06:44:34.000000000","message":"Done","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a46c7c603e745515dd8e2bc9669993c22fd62c3f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Adds host_ip to hypervisor show API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was also stored in"},{"line_number":10,"context_line":"table of compute_nodes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details, this can help admin debugging."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAATn%2F%2FJOE%3D","line":10,"updated":"2013-11-13 21:05:47.000000000","message":"this argument makes no sense to me. host_ip was being collected before anyway we just changed where it was stored. I would like to see a better argument here.","commit_id":"d7f751ada6056f058616f4a9de6646dfe279d42d"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"cf64e485c41df575f2f6efb292f29850b2f5b570","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Adds host_ip to hypervisor show API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was also stored in"},{"line_number":10,"context_line":"table of compute_nodes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"It is better that we get this value and put it as an attribute when"},{"line_number":13,"context_line":"show hypervisor details, this can help admin debugging."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAATn%2F%2B%2B4s%3D","line":10,"in_reply_to":"AAAATn%2F%2FJOE%3D","updated":"2013-11-16 17:36:37.000000000","message":"Done","commit_id":"d7f751ada6056f058616f4a9de6646dfe279d42d"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"a46c7c603e745515dd8e2bc9669993c22fd62c3f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":" 1) Only administrators can view hypervisor detail in nova."},{"line_number":17,"context_line":" 2) It can help improve debug ability for nova"},{"line_number":18,"context_line":" 3) Add host_ip to the output for \"hypervisorvisor-show\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Implement bp hypervisor-show-ip"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAATn%2F%2FJOg%3D","line":17,"updated":"2013-11-13 21:05:47.000000000","message":"can you document when host_ip is used and why. Saying it helps debugging is too vague.\n\n\nFWIW I am not fully convinced this is the right approach.  the host_ip stuff is sorta funny and we may want to revisit it all together.","commit_id":"d7f751ada6056f058616f4a9de6646dfe279d42d"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"cf64e485c41df575f2f6efb292f29850b2f5b570","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":" 1) Only administrators can view hypervisor detail in nova."},{"line_number":17,"context_line":" 2) It can help improve debug ability for nova"},{"line_number":18,"context_line":" 3) Add host_ip to the output for \"hypervisorvisor-show\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Implement bp hypervisor-show-ip"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAATn%2F%2B%2B4o%3D","line":17,"in_reply_to":"AAAATn%2F%2FJOg%3D","updated":"2013-11-16 17:36:37.000000000","message":"Done","commit_id":"d7f751ada6056f058616f4a9de6646dfe279d42d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87972cd1d7785cf570ca3e722d38378174f4730c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds host_ip to hypervisor show API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was stored to the table"},{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2F9eI%3D","line":9,"updated":"2013-12-26 09:22:44.000000000","message":"to \u003d\u003e in","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds host_ip to hypervisor show API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was stored to the table"},{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2Fp%2Bo%3D","line":9,"in_reply_to":"AAAAT3%2F%2F9eI%3D","updated":"2014-01-04 05:06:52.000000000","message":"Done","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87972cd1d7785cf570ca3e722d38378174f4730c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was stored to the table"},{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"},{"line_number":13,"context_line":"listed as the hypervisor attribute when call \"nova hypervisor-show host\","},{"line_number":14,"context_line":"so we can also set \"host_ip\" as a new attribute output for this command."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2F9eE%3D","line":11,"updated":"2013-12-26 09:22:44.000000000","message":"as \u003d\u003e to the","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After no-compute-fanout-to-scheduler, host_ip was stored to the table"},{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"},{"line_number":13,"context_line":"listed as the hypervisor attribute when call \"nova hypervisor-show host\","},{"line_number":14,"context_line":"so we can also set \"host_ip\" as a new attribute output for this command."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2Fp%2Bk%3D","line":11,"in_reply_to":"AAAAT3%2F%2F9eE%3D","updated":"2014-01-04 05:06:52.000000000","message":"Done","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87972cd1d7785cf570ca3e722d38378174f4730c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"},{"line_number":13,"context_line":"listed as the hypervisor attribute when call \"nova hypervisor-show host\","},{"line_number":14,"context_line":"so we can also set \"host_ip\" as a new attribute output for this command."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2F9d8%3D","line":13,"updated":"2013-12-26 09:22:44.000000000","message":"call  \u003d\u003e calling","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"of compute_nodes. Host ip address should be considered as the hypervisor"},{"line_number":11,"context_line":"attribute similar as hypervisor_type, hypervisor_version etc, and now"},{"line_number":12,"context_line":"those attributes such as hypervisor_type, hypervisor_version etc are all"},{"line_number":13,"context_line":"listed as the hypervisor attribute when call \"nova hypervisor-show host\","},{"line_number":14,"context_line":"so we can also set \"host_ip\" as a new attribute output for this command."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2Fp%2Bg%3D","line":13,"in_reply_to":"AAAAT3%2F%2F9d8%3D","updated":"2014-01-04 05:06:52.000000000","message":"Done","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87972cd1d7785cf570ca3e722d38378174f4730c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":"1) Only administrators can view hypervisor detail in nova."},{"line_number":18,"context_line":"2) It can help improve debug ability for nova. For example, if admin"},{"line_number":19,"context_line":"using SimpleCIDRAffinityFilter, then after VM deployed, admin can"},{"line_number":20,"context_line":"check if the VM was deployed successfully to the desired host by"},{"line_number":21,"context_line":"checking ip address of the host via \"nova hypervisor-show host\"."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2F9d0%3D","line":18,"updated":"2013-12-26 09:22:44.000000000","message":"ability \u003d\u003e capabilities","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":"1) Only administrators can view hypervisor detail in nova."},{"line_number":18,"context_line":"2) It can help improve debug ability for nova. For example, if admin"},{"line_number":19,"context_line":"using SimpleCIDRAffinityFilter, then after VM deployed, admin can"},{"line_number":20,"context_line":"check if the VM was deployed successfully to the desired host by"},{"line_number":21,"context_line":"checking ip address of the host via \"nova hypervisor-show host\"."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2Fp%2Bc%3D","line":18,"in_reply_to":"AAAAT3%2F%2F9d0%3D","updated":"2014-01-04 05:06:52.000000000","message":"Done","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"87972cd1d7785cf570ca3e722d38378174f4730c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":"1) Only administrators can view hypervisor detail in nova."},{"line_number":18,"context_line":"2) It can help improve debug ability for nova. For example, if admin"},{"line_number":19,"context_line":"using SimpleCIDRAffinityFilter, then after VM deployed, admin can"},{"line_number":20,"context_line":"check if the VM was deployed successfully to the desired host by"},{"line_number":21,"context_line":"checking ip address of the host via \"nova hypervisor-show host\"."},{"line_number":22,"context_line":"3) Add host_ip to the output for \"nova hypervisor-show\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2F9dw%3D","line":19,"updated":"2013-12-26 09:22:44.000000000","message":"VM deployed, \u003d\u003e VM is deployed,","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"DocImpact"},{"line_number":17,"context_line":"1) Only administrators can view hypervisor detail in nova."},{"line_number":18,"context_line":"2) It can help improve debug ability for nova. For example, if admin"},{"line_number":19,"context_line":"using SimpleCIDRAffinityFilter, then after VM deployed, admin can"},{"line_number":20,"context_line":"check if the VM was deployed successfully to the desired host by"},{"line_number":21,"context_line":"checking ip address of the host via \"nova hypervisor-show host\"."},{"line_number":22,"context_line":"3) Add host_ip to the output for \"nova hypervisor-show\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAT3%2F%2Fp%2BY%3D","line":19,"in_reply_to":"AAAAT3%2F%2F9dw%3D","updated":"2014-01-04 05:06:52.000000000","message":"Done","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"}],"nova/api/openstack/compute/contrib/extended_hypervisors.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a93555c708a3d7f1694d916230824735909e405a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7rU%3D","line":20,"updated":"2013-10-25 01:15:46.000000000","message":"This should be in it\u0027s own patch and then build the host_ip stuff on top of it.","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f12f4e96c0eda429ed6211c18263e8f31212fdcb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7LE%3D","line":20,"in_reply_to":"AAAATn%2F%2F7qc%3D","updated":"2013-10-25 08:32:38.000000000","message":"Done","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"442bf8ec84af2b1e78aa2b411ab1a6b90ac71b19","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7qc%3D","line":20,"in_reply_to":"AAAATn%2F%2F7rU%3D","updated":"2013-10-25 01:18:42.000000000","message":"Also, should the name of the class be ExtendedHypervisors?  Is this consistent with other extended APIs?  Seems odd.","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f12f4e96c0eda429ed6211c18263e8f31212fdcb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7LI%3D","line":20,"in_reply_to":"AAAATn%2F%2F7rU%3D","updated":"2013-10-25 08:32:38.000000000","message":"Thanks Matt.\n\nFor class name, all extensions as using names in such fomat. Please take a look at https://github.com/openstack/nova/tree/master/nova/api/openstack/compute/contrib/extended_xxx.py as example.\n\n1) https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_availability_zone.py#L60 2) https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_floating_ips.py#L20","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a3866db002f5fb428dd4c4ab2572b3e995d8b281","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2FsXA%3D","line":20,"updated":"2014-01-03 10:54:56.000000000","message":"Why not to keep the current CamelStyle for classname??\n\ns/Extended_hypervisors/ExtendedHypervisors","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.api.openstack import extensions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Extended_hypervisors(extensions.ExtensionDescriptor):"},{"line_number":21,"context_line":"    \"\"\"Extended hypervisors support.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    name \u003d \"ExtendedHypervisors\""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2Fp%2BQ%3D","line":20,"in_reply_to":"AAAAT3%2F%2FsXA%3D","updated":"2014-01-04 05:06:52.000000000","message":"Thanks sahid, but I was just following the style of other extensions, refer to \nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_availability_zone.py#L60\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_floating_ips.py#L20\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/extended_ips.py#L72\netc","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"}],"nova/api/openstack/compute/contrib/hypervisors.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"befee485afe8892566a076cee9773e24679404c6","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                          \u0027free_ram_mb\u0027, \u0027free_disk_gb\u0027, \u0027current_workload\u0027,"},{"line_number":144,"context_line":"                          \u0027running_vms\u0027, \u0027cpu_info\u0027, \u0027disk_available_least\u0027,"},{"line_number":145,"context_line":"                          \u0027host_ip\u0027):"},{"line_number":146,"context_line":"                hyp_dict[field] \u003d hypervisor[field]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            hyp_dict[\u0027service\u0027] \u003d {"},{"line_number":149,"context_line":"                \u0027id\u0027: hypervisor[\u0027service_id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2F5kQ%3D","line":146,"updated":"2013-10-25 14:34:14.000000000","message":"As Nikolas mentioned, this should be dependent on the new extension being loaded","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"772778b69754a6b0fe8298a78e5129a8f9eb8909","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                          \u0027free_ram_mb\u0027, \u0027free_disk_gb\u0027, \u0027current_workload\u0027,"},{"line_number":144,"context_line":"                          \u0027running_vms\u0027, \u0027cpu_info\u0027, \u0027disk_available_least\u0027,"},{"line_number":145,"context_line":"                          \u0027host_ip\u0027):"},{"line_number":146,"context_line":"                hyp_dict[field] \u003d hypervisor[field]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            hyp_dict[\u0027service\u0027] \u003d {"},{"line_number":149,"context_line":"                \u0027id\u0027: hypervisor[\u0027service_id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2F2xE%3D","line":146,"in_reply_to":"AAAATn%2F%2F5kQ%3D","updated":"2013-10-27 06:44:34.000000000","message":"Done","commit_id":"853eff45b4d40105fb6bae3cc7bcdb60b98ac44e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"409221e700ac111aa3321fa0b8e7badf41408bba","unresolved":false,"context_lines":[{"line_number":126,"context_line":"class HypervisorsController(object):"},{"line_number":127,"context_line":"    \"\"\"The Hypervisors API controller for the OpenStack API.\"\"\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, ext_mgr\u003dNone, *args, **kwargs):"},{"line_number":130,"context_line":"        self.host_api \u003d compute.HostAPI()"},{"line_number":131,"context_line":"        super(HypervisorsController, self).__init__()"},{"line_number":132,"context_line":"        self.ext_mgr \u003d ext_mgr"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BjRM%3D","line":129,"updated":"2013-11-24 03:25:27.000000000","message":"args and kwargs is needless","commit_id":"a4a051ea9e990b1bc62f772c9adc0ac5e3084cce"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"e7a32c58ae157743c09c8a3cbed892db587bdde0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"class HypervisorsController(object):"},{"line_number":127,"context_line":"    \"\"\"The Hypervisors API controller for the OpenStack API.\"\"\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, ext_mgr\u003dNone, *args, **kwargs):"},{"line_number":130,"context_line":"        self.host_api \u003d compute.HostAPI()"},{"line_number":131,"context_line":"        super(HypervisorsController, self).__init__()"},{"line_number":132,"context_line":"        self.ext_mgr \u003d ext_mgr"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BjPw%3D","line":129,"in_reply_to":"AAAATn%2F%2BjRM%3D","updated":"2013-11-24 04:23:11.000000000","message":"Done","commit_id":"a4a051ea9e990b1bc62f772c9adc0ac5e3084cce"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8d318f72971a46d232720fd7dc323bf0aa8449d2","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                      \u0027free_ram_mb\u0027, \u0027free_disk_gb\u0027, \u0027current_workload\u0027,"},{"line_number":145,"context_line":"                      \u0027running_vms\u0027, \u0027cpu_info\u0027, \u0027disk_available_least\u0027)"},{"line_number":146,"context_line":"            ext_loaded \u003d self.ext_mgr.is_loaded(\u0027os-extended-hypervisors\u0027)"},{"line_number":147,"context_line":"            extended_fields \u003d (\u0027host_ip\u0027,)"},{"line_number":148,"context_line":"            if ext_loaded:"},{"line_number":149,"context_line":"                fields +\u003d extended_fields"},{"line_number":150,"context_line":"            for field in fields:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F9Q0U%3D","line":147,"updated":"2013-12-13 11:19:53.000000000","message":"Fairly minor, but this seems a bit convoluted here. Why not just add host_ip below in the ext_loaded test rather than using extended_fields?","commit_id":"54b41834989a0c18af8b9680ec4dad838e9ed128"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"376c6fb669364ee46459c735eb23ec3a8c8f5847","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                      \u0027free_ram_mb\u0027, \u0027free_disk_gb\u0027, \u0027current_workload\u0027,"},{"line_number":145,"context_line":"                      \u0027running_vms\u0027, \u0027cpu_info\u0027, \u0027disk_available_least\u0027)"},{"line_number":146,"context_line":"            ext_loaded \u003d self.ext_mgr.is_loaded(\u0027os-extended-hypervisors\u0027)"},{"line_number":147,"context_line":"            extended_fields \u003d (\u0027host_ip\u0027,)"},{"line_number":148,"context_line":"            if ext_loaded:"},{"line_number":149,"context_line":"                fields +\u003d extended_fields"},{"line_number":150,"context_line":"            for field in fields:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F9Qto%3D","line":147,"in_reply_to":"AAAATn%2F9Q0U%3D","updated":"2013-12-13 11:40:47.000000000","message":"Chris, can you please help explain more for this? Not quite catch what you mean. Do you mean change as:\n\t\t\t148\t            if ext_loaded:\n\t\t\t149\t                fields +\u003d (\u0027host_ip\u0027,)","commit_id":"54b41834989a0c18af8b9680ec4dad838e9ed128"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a3866db002f5fb428dd4c4ab2572b3e995d8b281","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, ext_mgr\u003dNone):"},{"line_number":130,"context_line":"        self.host_api \u003d compute.HostAPI()"},{"line_number":131,"context_line":"        super(HypervisorsController, self).__init__()"},{"line_number":132,"context_line":"        self.ext_mgr \u003d ext_mgr"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _view_hypervisor(self, hypervisor, detail, servers\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2FsaA%3D","line":131,"updated":"2014-01-03 10:54:56.000000000","message":"What this line is for? \"HypervisorsController\" extends object.","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, ext_mgr\u003dNone):"},{"line_number":130,"context_line":"        self.host_api \u003d compute.HostAPI()"},{"line_number":131,"context_line":"        super(HypervisorsController, self).__init__()"},{"line_number":132,"context_line":"        self.ext_mgr \u003d ext_mgr"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _view_hypervisor(self, hypervisor, detail, servers\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2Fp9w%3D","line":131,"in_reply_to":"AAAAT3%2F%2FsaA%3D","updated":"2014-01-04 05:06:52.000000000","message":"Good catch, but I think that this deserve another patch. I will upload a patch to fix this later. Thanks","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"}],"nova/tests/api/openstack/compute/contrib/test_extended_hypervisors.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"196bfc94016bf08f2719fe245888efdee27b93e6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                cpu_info\u003d\u0027cpu_info\u0027,"},{"line_number":46,"context_line":"                disk_available_least\u003d100,"},{"line_number":47,"context_line":"                host_ip\u003d\u00271.1.1.1\u0027,"},{"line_number":48,"context_line":"                service\u003ddict(id\u003d1, host\u003d\u0027compute1\u0027)))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_detail(self):"},{"line_number":51,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-hypervisors/detail\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUX%2F%2BUBI%3D","line":48,"updated":"2014-02-21 23:28:50.000000000","message":"There\u0027s a bunch of duplication throughout this file that could be DRYed up","commit_id":"e05566de71f39acad3566fc31ba1053d84130c03"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a1ea327e0d0815382f1f2edf681578dd91e3fe64","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                cpu_info\u003d\u0027cpu_info\u0027,"},{"line_number":46,"context_line":"                disk_available_least\u003d100,"},{"line_number":47,"context_line":"                host_ip\u003d\u00271.1.1.1\u0027,"},{"line_number":48,"context_line":"                service\u003ddict(id\u003d1, host\u003d\u0027compute1\u0027)))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_detail(self):"},{"line_number":51,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-hypervisors/detail\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAUX%2F%2BTXs%3D","line":48,"in_reply_to":"AAAAUX%2F%2BUBI%3D","updated":"2014-02-22 02:15:05.000000000","message":"Thanks Russell for the review and test!\n\nThis logic was got from https://github.com/openstack/nova/blob/master/nova/tests/api/openstack/compute/contrib/test_hypervisors.py#L157 and I noticed that you already gave +2 on this, so I\u0027m planning to do a code clean up for this part in another patch, hope it is OK.","commit_id":"e05566de71f39acad3566fc31ba1053d84130c03"}],"nova/tests/api/openstack/compute/contrib/test_hypervisors.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8d318f72971a46d232720fd7dc323bf0aa8449d2","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_view_hypervisor_detail_noservers(self):"},{"line_number":160,"context_line":"        self.ext_mgr.extensions[\u0027os-extended-hypervisors\u0027] \u003d True"},{"line_number":161,"context_line":"        self.controller \u003d hypervisors.HypervisorsController(self.ext_mgr)"},{"line_number":162,"context_line":"        result \u003d self.controller._view_hypervisor(TEST_HYPERS[0], True)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual(result, dict("}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F9Qzc%3D","line":161,"updated":"2013-12-13 11:19:53.000000000","message":"So I think we want to preserve the testing with os-extended-hypervisors disabled as well. How about you create a test_hypervisors_extended.py and inherit off HypervisorsTest and rerun the testcases with the extension enabled. Will need a bit of rework to be able to customize the expected data.\n\nDon\u0027t need to do this for V3 as its not implemented as an extension","commit_id":"54b41834989a0c18af8b9680ec4dad838e9ed128"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"376c6fb669364ee46459c735eb23ec3a8c8f5847","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_view_hypervisor_detail_noservers(self):"},{"line_number":160,"context_line":"        self.ext_mgr.extensions[\u0027os-extended-hypervisors\u0027] \u003d True"},{"line_number":161,"context_line":"        self.controller \u003d hypervisors.HypervisorsController(self.ext_mgr)"},{"line_number":162,"context_line":"        result \u003d self.controller._view_hypervisor(TEST_HYPERS[0], True)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual(result, dict("}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F9Qsw%3D","line":161,"in_reply_to":"AAAATn%2F9Qzc%3D","updated":"2013-12-13 11:40:47.000000000","message":"Chris, what about do this in another patch as I noticed that most of the logic related to extension are using this way for unit test.\n\nI can file a bug to fix all of those tests one by one. What do you think?","commit_id":"54b41834989a0c18af8b9680ec4dad838e9ed128"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a3866db002f5fb428dd4c4ab2572b3e995d8b281","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                    dict(id\u003d1, hypervisor_hostname\u003d\"hyper1\"),"},{"line_number":204,"context_line":"                    dict(id\u003d2, hypervisor_hostname\u003d\"hyper2\")]))"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def test_detail(self):"},{"line_number":207,"context_line":"        self.ext_mgr.extensions[\u0027os-extended-hypervisors\u0027] \u003d True"},{"line_number":208,"context_line":"        self.controller \u003d hypervisors.HypervisorsController(self.ext_mgr)"},{"line_number":209,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-hypervisors/detail\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2FsXo%3D","line":206,"updated":"2014-01-03 10:54:56.000000000","message":"Can you keep a test with self.ext_mgr not defined?","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                    dict(id\u003d1, hypervisor_hostname\u003d\"hyper1\"),"},{"line_number":204,"context_line":"                    dict(id\u003d2, hypervisor_hostname\u003d\"hyper2\")]))"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def test_detail(self):"},{"line_number":207,"context_line":"        self.ext_mgr.extensions[\u0027os-extended-hypervisors\u0027] \u003d True"},{"line_number":208,"context_line":"        self.controller \u003d hypervisors.HypervisorsController(self.ext_mgr)"},{"line_number":209,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/fake/os-hypervisors/detail\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2Fp9s%3D","line":206,"in_reply_to":"AAAAT3%2F%2FsXo%3D","updated":"2014-01-04 05:06:52.000000000","message":"OK, I will try to add a new file for self.ext_mgr enabled.\n\nActually, Chris also point this out, I will handle this part.","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"}],"nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.json.tpl":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bcdc822892bfe30cf2d7c164d457bc4c916adc20","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FODg%3D","line":6,"updated":"2013-10-21 07:28:44.000000000","message":"should this not be 1.1.1.1?","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"5c1061308ca384560a829af261cc1314aac0492c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FNsg%3D","line":6,"in_reply_to":"AAAATH%2F%2FN3A%3D","updated":"2013-10-21 10:33:06.000000000","message":"Gary, I need check this part more, as unit test failed. Seems test_api_sample will run a dummy compute for test.","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"da671886cfd2e1f0e15f37d1f5d38a370a4030e0","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FNSA%3D","line":6,"in_reply_to":"AAAATH%2F%2FNsg%3D","updated":"2013-10-21 13:01:04.000000000","message":"Gary, here we use IP is for regular expression, this will help check the IP address match the regular expression: \u0027ip\u0027: \u0027[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\u0027,","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"bc8a876e5e0216e4aa279a8770e0bfb5adb0ef31","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FN3A%3D","line":6,"in_reply_to":"AAAATH%2F%2FODg%3D","updated":"2013-10-21 09:45:38.000000000","message":"Done","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bcdc822892bfe30cf2d7c164d457bc4c916adc20","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","},{"line_number":10,"context_line":"        \"hypervisor_type\": \"fake\","},{"line_number":11,"context_line":"        \"hypervisor_version\": 1,"},{"line_number":12,"context_line":"        \"id\": %(hypervisor_id)s,"},{"line_number":13,"context_line":"        \"local_gb\": 1028,"},{"line_number":14,"context_line":"        \"local_gb_used\": 0,"},{"line_number":15,"context_line":"        \"memory_mb\": 8192,"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FODM%3D","line":12,"updated":"2013-10-21 07:28:44.000000000","message":"similar issue here","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"bc8a876e5e0216e4aa279a8770e0bfb5adb0ef31","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","},{"line_number":10,"context_line":"        \"hypervisor_type\": \"fake\","},{"line_number":11,"context_line":"        \"hypervisor_version\": 1,"},{"line_number":12,"context_line":"        \"id\": %(hypervisor_id)s,"},{"line_number":13,"context_line":"        \"local_gb\": 1028,"},{"line_number":14,"context_line":"        \"local_gb_used\": 0,"},{"line_number":15,"context_line":"        \"memory_mb\": 8192,"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FN28%3D","line":12,"in_reply_to":"AAAATH%2F%2FODM%3D","updated":"2013-10-21 09:45:38.000000000","message":"I noticed that v2 has changed this part, but as this does not relate does not related to my patch, so I will not touch this part.","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"}],"nova/tests/integrated/api_samples/os-hypervisors/hypervisors-show-resp.xml.tpl":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bcdc822892bfe30cf2d7c164d457bc4c916adc20","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e"},{"line_number":2,"context_line":"\u003chypervisor vcpus_used\u003d\"0\" hypervisor_type\u003d\"fake\" local_gb_used\u003d\"0\" hypervisor_hostname\u003d\"fake-mini\" memory_mb_used\u003d\"512\" memory_mb\u003d\"8192\" current_workload\u003d\"0\" vcpus\u003d\"1\" cpu_info\u003d\"?\" running_vms\u003d\"0\" free_disk_gb\u003d\"1028\" hypervisor_version\u003d\"1\" disk_available_least\u003d\"0\" host_ip\u003d\"%(ip)s\" local_gb\u003d\"1028\" free_ram_mb\u003d\"7680\" id\u003d\"%(hypervisor_id)s\"\u003e"},{"line_number":3,"context_line":"  \u003cservice host\u003d\"%(host_name)s\" id\u003d\"2\"/\u003e"},{"line_number":4,"context_line":"\u003c/hypervisor\u003e"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FODI%3D","line":1,"updated":"2013-10-21 07:28:44.000000000","message":"same comment here - why %(ip)s and not a fake ip address","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"bc8a876e5e0216e4aa279a8770e0bfb5adb0ef31","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e"},{"line_number":2,"context_line":"\u003chypervisor vcpus_used\u003d\"0\" hypervisor_type\u003d\"fake\" local_gb_used\u003d\"0\" hypervisor_hostname\u003d\"fake-mini\" memory_mb_used\u003d\"512\" memory_mb\u003d\"8192\" current_workload\u003d\"0\" vcpus\u003d\"1\" cpu_info\u003d\"?\" running_vms\u003d\"0\" free_disk_gb\u003d\"1028\" hypervisor_version\u003d\"1\" disk_available_least\u003d\"0\" host_ip\u003d\"%(ip)s\" local_gb\u003d\"1028\" free_ram_mb\u003d\"7680\" id\u003d\"%(hypervisor_id)s\"\u003e"},{"line_number":3,"context_line":"  \u003cservice host\u003d\"%(host_name)s\" id\u003d\"2\"/\u003e"},{"line_number":4,"context_line":"\u003c/hypervisor\u003e"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FN0o%3D","line":1,"in_reply_to":"AAAATH%2F%2FODI%3D","updated":"2013-10-21 09:45:38.000000000","message":"Done","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"442bf8ec84af2b1e78aa2b411ab1a6b90ac71b19","unresolved":false,"context_lines":[{"line_number":3447,"context_line":"    ctype \u003d \"xml\""},{"line_number":3448,"context_line":""},{"line_number":3449,"context_line":""},{"line_number":3450,"context_line":"class ExtendedHypervisorsJsonTest(ApiSampleTestBaseV2):"},{"line_number":3451,"context_line":"    \"\"\""},{"line_number":3452,"context_line":"    This extension is extending the functionalities of the"},{"line_number":3453,"context_line":"    Hypervisors extension so the funcionalities introduced by this extension"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7qY%3D","line":3450,"updated":"2013-10-25 01:18:42.000000000","message":"There needs to be a v3 version of this test.","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e695d884f1de4fc04d4e3ae2cc4d1e12c9ac1ce3","unresolved":false,"context_lines":[{"line_number":3447,"context_line":"    ctype \u003d \"xml\""},{"line_number":3448,"context_line":""},{"line_number":3449,"context_line":""},{"line_number":3450,"context_line":"class ExtendedHypervisorsJsonTest(ApiSampleTestBaseV2):"},{"line_number":3451,"context_line":"    \"\"\""},{"line_number":3452,"context_line":"    This extension is extending the functionalities of the"},{"line_number":3453,"context_line":"    Hypervisors extension so the funcionalities introduced by this extension"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F6Ig%3D","line":3450,"in_reply_to":"AAAATn%2F%2F7HM%3D","updated":"2013-10-25 12:21:16.000000000","message":"I don\u0027t understand that, you have new v3 code in this patch, so why wouldn\u0027t there be v3 tests similar to this one?","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f12f4e96c0eda429ed6211c18263e8f31212fdcb","unresolved":false,"context_lines":[{"line_number":3447,"context_line":"    ctype \u003d \"xml\""},{"line_number":3448,"context_line":""},{"line_number":3449,"context_line":""},{"line_number":3450,"context_line":"class ExtendedHypervisorsJsonTest(ApiSampleTestBaseV2):"},{"line_number":3451,"context_line":"    \"\"\""},{"line_number":3452,"context_line":"    This extension is extending the functionalities of the"},{"line_number":3453,"context_line":"    Hypervisors extension so the funcionalities introduced by this extension"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2F7HM%3D","line":3450,"in_reply_to":"AAAATn%2F%2F7qY%3D","updated":"2013-10-25 08:32:38.000000000","message":"The hypervisor extension is mainly for V2 to make sure that the change in V2 API can be detectable, so seems do not need to add test for V3 for this part.","commit_id":"842380f07d497ae4cb593aab537e56c7bc31a600"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"33aeabca8f7da586d2d9c811e85aec39e8d03cc0","unresolved":false,"context_lines":[{"line_number":3456,"context_line":"            \u0027hypervisor_id\u0027: hypervisor_id"},{"line_number":3457,"context_line":"        }"},{"line_number":3458,"context_line":"        self.stubs.Set(extensions.ExtensionManager, \"is_loaded\","},{"line_number":3459,"context_line":"                       self.fake_load)"},{"line_number":3460,"context_line":"        response \u003d self._do_get(\u0027os-hypervisors/%s\u0027 % hypervisor_id)"},{"line_number":3461,"context_line":"        subs.update(self._get_regexes())"},{"line_number":3462,"context_line":"        self._verify_response(\u0027hypervisors-show-resp\u0027, subs, response, 200)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2Bo4o%3D","line":3459,"updated":"2013-11-22 06:01:12.000000000","message":"The api samples for hypervisors should not include the extra field.\nThe api samples for extended_hypervisors should include the extra field","commit_id":"d824f05e1918f0202921e635faeff5c2672f894c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"ca65a701c51e2162c0f74e1f2bbfd217307bdef6","unresolved":false,"context_lines":[{"line_number":3456,"context_line":"            \u0027hypervisor_id\u0027: hypervisor_id"},{"line_number":3457,"context_line":"        }"},{"line_number":3458,"context_line":"        self.stubs.Set(extensions.ExtensionManager, \"is_loaded\","},{"line_number":3459,"context_line":"                       self.fake_load)"},{"line_number":3460,"context_line":"        response \u003d self._do_get(\u0027os-hypervisors/%s\u0027 % hypervisor_id)"},{"line_number":3461,"context_line":"        subs.update(self._get_regexes())"},{"line_number":3462,"context_line":"        self._verify_response(\u0027hypervisors-show-resp\u0027, subs, response, 200)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2Bns0%3D","line":3459,"in_reply_to":"AAAATn%2F%2Bo4o%3D","updated":"2013-11-23 09:45:00.000000000","message":"Done","commit_id":"d824f05e1918f0202921e635faeff5c2672f894c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"409221e700ac111aa3321fa0b8e7badf41408bba","unresolved":false,"context_lines":[{"line_number":3459,"context_line":"        subs.update(self._get_regexes())"},{"line_number":3460,"context_line":"        self._verify_response(\u0027hypervisors-show-resp\u0027, subs, response, 200)"},{"line_number":3461,"context_line":""},{"line_number":3462,"context_line":"    def test_hypervisors_show_with_ip(self):"},{"line_number":3463,"context_line":"        hypervisor_id \u003d 1"},{"line_number":3464,"context_line":"        subs \u003d {"},{"line_number":3465,"context_line":"            \u0027hypervisor_id\u0027: hypervisor_id"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BjRQ%3D","line":3462,"updated":"2013-11-24 03:25:27.000000000","message":"This need move to ExtendedHypervisorsJsonTest, and remove the fake_create. You can reference the ExtendedQuotas","commit_id":"a4a051ea9e990b1bc62f772c9adc0ac5e3084cce"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"e7a32c58ae157743c09c8a3cbed892db587bdde0","unresolved":false,"context_lines":[{"line_number":3459,"context_line":"        subs.update(self._get_regexes())"},{"line_number":3460,"context_line":"        self._verify_response(\u0027hypervisors-show-resp\u0027, subs, response, 200)"},{"line_number":3461,"context_line":""},{"line_number":3462,"context_line":"    def test_hypervisors_show_with_ip(self):"},{"line_number":3463,"context_line":"        hypervisor_id \u003d 1"},{"line_number":3464,"context_line":"        subs \u003d {"},{"line_number":3465,"context_line":"            \u0027hypervisor_id\u0027: hypervisor_id"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BjPc%3D","line":3462,"in_reply_to":"AAAATn%2F%2BjRQ%3D","updated":"2013-11-24 04:23:11.000000000","message":"Done","commit_id":"a4a051ea9e990b1bc62f772c9adc0ac5e3084cce"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a3866db002f5fb428dd4c4ab2572b3e995d8b281","unresolved":false,"context_lines":[{"line_number":3415,"context_line":"    extends_name \u003d (\"nova.api.openstack.compute.contrib.\""},{"line_number":3416,"context_line":"                    \"hypervisors.Hypervisors\")"},{"line_number":3417,"context_line":"    extension_name \u003d (\"nova.api.openstack.compute.contrib.\""},{"line_number":3418,"context_line":"                      \"extended_hypervisors.Extended_hypervisors\")"},{"line_number":3419,"context_line":""},{"line_number":3420,"context_line":"    def test_hypervisors_show_with_ip(self):"},{"line_number":3421,"context_line":"        hypervisor_id \u003d 1"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2FsW0%3D","line":3418,"updated":"2014-01-03 10:54:56.000000000","message":"Why this class do not use CamelStyle?","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"6db4632a4d8800401af516aace30655febe9694d","unresolved":false,"context_lines":[{"line_number":3415,"context_line":"    extends_name \u003d (\"nova.api.openstack.compute.contrib.\""},{"line_number":3416,"context_line":"                    \"hypervisors.Hypervisors\")"},{"line_number":3417,"context_line":"    extension_name \u003d (\"nova.api.openstack.compute.contrib.\""},{"line_number":3418,"context_line":"                      \"extended_hypervisors.Extended_hypervisors\")"},{"line_number":3419,"context_line":""},{"line_number":3420,"context_line":"    def test_hypervisors_show_with_ip(self):"},{"line_number":3421,"context_line":"        hypervisor_id \u003d 1"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAT3%2F%2Fp9Q%3D","line":3418,"in_reply_to":"AAAAT3%2F%2FsW0%3D","updated":"2014-01-04 05:06:52.000000000","message":"See my reply in https://review.openstack.org/#/c/52733/15/nova/api/openstack/compute/contrib/extended_hypervisors.py \n\nJust want to make code consistent","commit_id":"5872b4fb2afbb114492df43153c87685263cf71e"}],"nova/tests/integrated/v3/api_samples/os-hypervisors/hypervisors-detail-resp.json.tpl":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"9093ab27e3d1ea0e75a8cdd043720d039f47b598","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"hypervisors\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"\t        \"cpu_info\": \"?\","},{"line_number":5,"context_line":"\t        \"current_workload\": 0,"},{"line_number":6,"context_line":"\t        \"disk_available_least\": 0,"},{"line_number":7,"context_line":"                \"host_ip\": \"%(ip)s\","}],"source_content_type":"text/x-smarty","patch_set":1,"id":"AAAATH%2F%2FQTU%3D","line":4,"updated":"2013-10-19 02:07:52.000000000","message":"tab space?","commit_id":"9092cafff53d1cee8d358beff89f6ae86e2d955d"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"b1950b2dedb80c261da680f5ca5996760846d134","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"hypervisors\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"\t        \"cpu_info\": \"?\","},{"line_number":5,"context_line":"\t        \"current_workload\": 0,"},{"line_number":6,"context_line":"\t        \"disk_available_least\": 0,"},{"line_number":7,"context_line":"                \"host_ip\": \"%(ip)s\","}],"source_content_type":"text/x-smarty","patch_set":1,"id":"AAAATH%2F%2FQRU%3D","line":4,"in_reply_to":"AAAATH%2F%2FQTU%3D","updated":"2013-10-19 02:32:42.000000000","message":"Thanks Guo Hui, this will be handled in https://review.openstack.org/#/c/52735/","commit_id":"9092cafff53d1cee8d358beff89f6ae86e2d955d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bcdc822892bfe30cf2d7c164d457bc4c916adc20","unresolved":false,"context_lines":[{"line_number":4,"context_line":"\t        \"cpu_info\": \"?\","},{"line_number":5,"context_line":"\t        \"current_workload\": 0,"},{"line_number":6,"context_line":"\t        \"disk_available_least\": 0,"},{"line_number":7,"context_line":"                \"host_ip\": \"%(ip)s\","},{"line_number":8,"context_line":"\t        \"free_disk_gb\": 1028,"},{"line_number":9,"context_line":"\t        \"free_ram_mb\": 7680,"},{"line_number":10,"context_line":"\t        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FOC4%3D","line":7,"updated":"2013-10-21 07:28:44.000000000","message":"same as before","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"bc8a876e5e0216e4aa279a8770e0bfb5adb0ef31","unresolved":false,"context_lines":[{"line_number":4,"context_line":"\t        \"cpu_info\": \"?\","},{"line_number":5,"context_line":"\t        \"current_workload\": 0,"},{"line_number":6,"context_line":"\t        \"disk_available_least\": 0,"},{"line_number":7,"context_line":"                \"host_ip\": \"%(ip)s\","},{"line_number":8,"context_line":"\t        \"free_disk_gb\": 1028,"},{"line_number":9,"context_line":"\t        \"free_ram_mb\": 7680,"},{"line_number":10,"context_line":"\t        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FN0k%3D","line":7,"in_reply_to":"AAAATH%2F%2FOC4%3D","updated":"2013-10-21 09:45:38.000000000","message":"Done","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"}],"nova/tests/integrated/v3/api_samples/os-hypervisors/hypervisors-detail-resp.xml.tpl":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"67223500cfeba6d37a15247210cc36593d42a9b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e"},{"line_number":2,"context_line":"\u003chypervisors\u003e"},{"line_number":3,"context_line":"\t\u003chypervisor vcpus_used\u003d\"0\" hypervisor_type\u003d\"fake\" local_gb_used\u003d\"0\" hypervisor_hostname\u003d\"fake-mini\" memory_mb_used\u003d\"512\" memory_mb\u003d\"8192\" current_workload\u003d\"0\" vcpus\u003d\"1\" cpu_info\u003d\"?\" running_vms\u003d\"0\" free_disk_gb\u003d\"1028\" hypervisor_version\u003d\"1\" disk_available_least\u003d\"0\" host_ip\u003d\"%(ip)s\" local_gb\u003d\"1028\" free_ram_mb\u003d\"7680\" id\u003d\"%(hypervisor_id)s\"\u003e"},{"line_number":4,"context_line":"\t  \u003cservice host\u003d\"%(host_name)s\" id\u003d\"2\"/\u003e"},{"line_number":5,"context_line":"\t\u003c/hypervisor\u003e"},{"line_number":6,"context_line":"\u003c/hypervisors\u003e"}],"source_content_type":"text/x-smarty","patch_set":2,"id":"AAAATH%2F%2FQQg%3D","line":3,"updated":"2013-10-19 02:42:15.000000000","message":"This tab issue will be also handled in https://review.openstack.org/#/c/52735/","commit_id":"b1597e2e2c4d2b9d2ed8a3fad49ff1e8774176f3"}],"nova/tests/integrated/v3/api_samples/os-hypervisors/hypervisors-show-resp.json.tpl":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bcdc822892bfe30cf2d7c164d457bc4c916adc20","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FOC0%3D","line":6,"updated":"2013-10-21 07:28:44.000000000","message":"ditto","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"bc8a876e5e0216e4aa279a8770e0bfb5adb0ef31","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"cpu_info\": \"?\","},{"line_number":4,"context_line":"        \"current_workload\": 0,"},{"line_number":5,"context_line":"        \"disk_available_least\": 0,"},{"line_number":6,"context_line":"        \"host_ip\": \"%(ip)s\","},{"line_number":7,"context_line":"        \"free_disk_gb\": 1028,"},{"line_number":8,"context_line":"        \"free_ram_mb\": 7680,"},{"line_number":9,"context_line":"        \"hypervisor_hostname\": \"fake-mini\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"AAAATH%2F%2FN0g%3D","line":6,"in_reply_to":"AAAATH%2F%2FOC0%3D","updated":"2013-10-21 09:45:38.000000000","message":"Done","commit_id":"7957dd5a36a45935bb85d9d4141f853282e8da37"}]}
