)]}'
{"nova/compute/binary.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"0543cee542d9b0f6dab9c668ca0888cbc9e983de","unresolved":false,"context_lines":[{"line_number":35,"context_line":"NOVA_ROOTWRAP \u003d \"nova-rootwrap\""},{"line_number":36,"context_line":"NOVA_SCHEDULER \u003d \"nova-scheduler\""},{"line_number":37,"context_line":"NOVA_XVPVNCPROXY \u003d \"nova-xvpvncproxy\""},{"line_number":38,"context_line":"NOVA_CONDUCTOR \u003d \"nova-conductor\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"ALL \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_9b48885d","line":38,"updated":"2015-02-19 15:16:33.000000000","message":"nit , would be better to be alphabetical order","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ea1aed5cfe1c5bbd9d8f8822f2b3a9a39b72df93","unresolved":false,"context_lines":[{"line_number":38,"context_line":"NOVA_CONDUCTOR \u003d \"nova-conductor\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"ALL \u003d ("},{"line_number":42,"context_line":"    NOVA_ALL,"},{"line_number":43,"context_line":"    NOVA_API_EC2,"},{"line_number":44,"context_line":"    NOVA_API_METADATA,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_a2a6c1bf","line":41,"updated":"2015-03-04 16:16:39.000000000","message":"Given that the primary use of this seems to be the \u0027in\u0027 test below, it would probably be better represented as a set.","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5f6b7056ccee8dc6690db8a354b1e806a260ab37","unresolved":false,"context_lines":[{"line_number":38,"context_line":"NOVA_CONDUCTOR \u003d \"nova-conductor\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"ALL \u003d ("},{"line_number":42,"context_line":"    NOVA_ALL,"},{"line_number":43,"context_line":"    NOVA_API_EC2,"},{"line_number":44,"context_line":"    NOVA_API_METADATA,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_6a7bdc7a","line":41,"in_reply_to":"9a80dd14_a2a6c1bf","updated":"2015-03-10 12:47:47.000000000","message":"I do not think a set is a good datastructure to represent an immutable list of constants.","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"44ca0d9f2d819fb3c48c8cd51cb74774f78e5cd9","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def is_valid(name):"},{"line_number":66,"context_line":"    \"\"\"Check if a string is a valid binary"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    :param name: binary name to validate"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_d92c324d","line":66,"updated":"2015-03-12 13:32:31.000000000","message":"doc string should end with \u0027.\u0027\n\nhttp://docs.openstack.org/developer/hacking/","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"}],"nova/db/api.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"44ca0d9f2d819fb3c48c8cd51cb74774f78e5cd9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"def service_get_by_host_and_binary(context, host, binary):"},{"line_number":109,"context_line":"    \"\"\"Get a service by it\u0027s name and binary."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    Raises InvalidBinaryName"},{"line_number":112,"context_line":"    \"\"\""},{"line_number":113,"context_line":"    return IMPL.service_get_by_host_and_binary(context, host, binary)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_f9bd76d8","line":111,"updated":"2015-03-12 13:32:31.000000000","message":"raises: InvalidBinaryName\n\nhttp://docs.openstack.org/developer/hacking/","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"520eddfb1c1c9a33d8736eb29336b70beac248aa","unresolved":false,"context_lines":[{"line_number":108,"context_line":"def service_get_by_host_and_binary(context, host, binary):"},{"line_number":109,"context_line":"    \"\"\"Get a service by it\u0027s name and binary."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    Raises InvalidBinaryName"},{"line_number":112,"context_line":"    \"\"\""},{"line_number":113,"context_line":"    return IMPL.service_get_by_host_and_binary(context, host, binary)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_cc02ad08","line":111,"in_reply_to":"9a80dd14_f9bd76d8","updated":"2015-03-12 15:10:26.000000000","message":"Done","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"0543cee542d9b0f6dab9c668ca0888cbc9e983de","unresolved":false,"context_lines":[{"line_number":410,"context_line":"@require_admin_context"},{"line_number":411,"context_line":"def service_get_all_by_binary(context, bin):"},{"line_number":412,"context_line":"    if not binary.is_valid(bin):"},{"line_number":413,"context_line":"        raise exception.InvalidBinaryName(binary\u003dbin)"},{"line_number":414,"context_line":"    return model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":415,"context_line":"                filter_by(disabled\u003dFalse).\\"},{"line_number":416,"context_line":"                filter_by(binary\u003dbin).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_bb18eccd","line":413,"updated":"2015-02-19 15:16:33.000000000","message":"can we move this check to upper layer .e.g object layer?\nnot a big deal, though","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"439317f9e67c5570eb1a5d83a56d478270cf6b31","unresolved":false,"context_lines":[{"line_number":410,"context_line":"@require_admin_context"},{"line_number":411,"context_line":"def service_get_all_by_binary(context, bin):"},{"line_number":412,"context_line":"    if not binary.is_valid(bin):"},{"line_number":413,"context_line":"        raise exception.InvalidBinaryName(binary\u003dbin)"},{"line_number":414,"context_line":"    return model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":415,"context_line":"                filter_by(disabled\u003dFalse).\\"},{"line_number":416,"context_line":"                filter_by(binary\u003dbin).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_f18c4537","line":413,"in_reply_to":"da86d52c_bb18eccd","updated":"2015-02-19 15:53:05.000000000","message":"I can, but why you want do that? it looks reasonable to this in the lower layer, my aim was to add this check in db/api.py, but i wanted to stay on the same way than the current code which raise these kind of exceptions here","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2f5dd64581b4e309a7dbe59a85c312c49b96c414","unresolved":false,"context_lines":[{"line_number":410,"context_line":"@require_admin_context"},{"line_number":411,"context_line":"def service_get_all_by_binary(context, bin):"},{"line_number":412,"context_line":"    if not binary.is_valid(bin):"},{"line_number":413,"context_line":"        raise exception.InvalidBinaryName(binary\u003dbin)"},{"line_number":414,"context_line":"    return model_query(context, models.Service, read_deleted\u003d\"no\").\\"},{"line_number":415,"context_line":"                filter_by(disabled\u003dFalse).\\"},{"line_number":416,"context_line":"                filter_by(binary\u003dbin).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_712135b3","line":413,"in_reply_to":"da86d52c_f18c4537","updated":"2015-02-19 16:00:42.000000000","message":"yes, my fault, I agree,","commit_id":"4bb0205b02219abacadc32d1f1018ab14ffa435f"}]}
