)]}'
{"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"8c54494b096d0e3ce53ce25ec9a8f56c66cb6412","unresolved":false,"context_lines":[{"line_number":839,"context_line":"        \"\"\""},{"line_number":840,"context_line":"        return self._list(_server_group.ServerGroup, paginated\u003dFalse, **query)"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"    def hypervisor_list(self, **query):"},{"line_number":843,"context_line":"        \"\"\"Return a generator of hypervisor"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"            :returns: Agenerator of hypervisor"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_d0e54a09","line":842,"range":{"start_line":842,"start_character":8,"end_line":842,"end_character":23},"updated":"2016-03-01 01:54:41.000000000","message":"rename this to \u0027hypervisors\u0027","commit_id":"042c4c77221f3ef6073bc13a550c7502f39a6d60"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"8c54494b096d0e3ce53ce25ec9a8f56c66cb6412","unresolved":false,"context_lines":[{"line_number":843,"context_line":"        \"\"\"Return a generator of hypervisor"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"            :returns: Agenerator of hypervisor"},{"line_number":846,"context_line":"            :rtype: class: `~openstack.compute.v2_hypervisor.Hypervisor`"},{"line_number":847,"context_line":"        \"\"\""},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        return self._list(_hypervisor.Hypervisor, paginated\u003dFalse, **query)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_b0b36609","line":846,"range":{"start_line":846,"start_character":49,"end_line":846,"end_character":50},"updated":"2016-03-01 01:54:41.000000000","message":".","commit_id":"042c4c77221f3ef6073bc13a550c7502f39a6d60"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"8c54494b096d0e3ce53ce25ec9a8f56c66cb6412","unresolved":false,"context_lines":[{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        return self._list(_hypervisor.Hypervisor, paginated\u003dFalse, **query)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"    def find_hypervisor(self, id, ignore_missing\u003dTrue):"},{"line_number":852,"context_line":"        \"\"\"Find a hypervisor from id to get the corresponding host"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"        :param id: The ID of a hypervisor"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_d03d4a2c","line":851,"range":{"start_line":851,"start_character":30,"end_line":851,"end_character":32},"updated":"2016-03-01 01:54:41.000000000","message":"A find operation is different from a get operation. A \u0027find\u0027 operation is meant to support name or id, but a \u0027get\u0027 is supposed to get a specific resource using an UUID.\n\nIf the service supports retrieving hypervisor by name, this \u0027id\u0027 should be changed to \u0027name_or_id\u0027 which is the implicit convention here. If the service doesn\u0027t support retrieving by name, then this method is not needed at all.\n\nAt the same time, I think we need a \u0027get_hypervisor\u0027 call that does the retrieval-by-ID job.","commit_id":"042c4c77221f3ef6073bc13a550c7502f39a6d60"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"a70c83003fb06a031d7adbc54f7c3b196d512da1","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        :param name_or_id: The name or id of a hypervisor"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        :returns:"},{"line_number":857,"context_line":"            One:class:`~openstack.compute.v2.hypervisor.Hypervisor` object"},{"line_number":858,"context_line":"            or None"},{"line_number":859,"context_line":"        \"\"\""},{"line_number":860,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_5fdc16e4","line":857,"range":{"start_line":857,"start_character":15,"end_line":857,"end_character":16},"updated":"2016-03-02 13:59:10.000000000","message":"missing a space after \"One\"","commit_id":"c2bdf598939ff883210c881da560f2c7ff5b5a7e"},{"author":{"_account_id":15857,"name":"Xinhui Li","email":"lxinhui@vmware.com","username":"Cindia-blue"},"change_message_id":"8d185a7ffd6eaf46d5f0955feb9cece823e105f6","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        :param name_or_id: The name or id of a hypervisor"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        :returns:"},{"line_number":857,"context_line":"            One:class:`~openstack.compute.v2.hypervisor.Hypervisor` object"},{"line_number":858,"context_line":"            or None"},{"line_number":859,"context_line":"        \"\"\""},{"line_number":860,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_35ab29d8","line":857,"range":{"start_line":857,"start_character":15,"end_line":857,"end_character":16},"in_reply_to":"7af24918_5fdc16e4","updated":"2016-03-02 14:15:19.000000000","message":"Done","commit_id":"c2bdf598939ff883210c881da560f2c7ff5b5a7e"}],"openstack/compute/v2/hypervisor.py":[{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"8c54494b096d0e3ce53ce25ec9a8f56c66cb6412","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    allow_create \u003d True"},{"line_number":29,"context_line":"    allow_retrieve \u003d True"},{"line_number":30,"context_line":"    allow_delete \u003d True"},{"line_number":31,"context_line":"    allow_list \u003d True"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # Properties"},{"line_number":34,"context_line":"    # only list most important properties"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_908582d0","line":31,"updated":"2016-03-01 01:54:41.000000000","message":"If creation and deletion are both supported, we\u0027d better expose them as proxy methods.","commit_id":"042c4c77221f3ef6073bc13a550c7502f39a6d60"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"8c54494b096d0e3ce53ce25ec9a8f56c66cb6412","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    allow_list \u003d True"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # Properties"},{"line_number":34,"context_line":"    # only list most important properties"},{"line_number":35,"context_line":"    #: status of hypervisor  : enabled"},{"line_number":36,"context_line":"    status \u003d resource.prop(\u0027status\u0027)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_50c2dae9","line":34,"updated":"2016-03-01 01:54:41.000000000","message":"We\u0027d better list most properties unless you know that some properties are really useless. That brings us to another question, if an attribute is not useful, why nova models it as an attribute?\n\nOne of the key points of a SDK is that we need to make sure the resources are not modeled based on a single use case. It should be modeled based on what the service exposes, because we never know how people would use it.","commit_id":"042c4c77221f3ef6073bc13a550c7502f39a6d60"}]}
