)]}'
{"doc/ext/nova_todo.py":[{"author":{"_account_id":21683,"name":"edan david","email":"edand@mellanox.com","username":"edand"},"change_message_id":"8b7a9b7348907d7ab332cc2692b9bd345e3e2e90","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    if not hasattr(env, \u0027todo_all_todos\u0027):"},{"line_number":23,"context_line":"        env.todo_all_todos \u003d []"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # remove the item that was added in the constructor, since I\u0027m tried of"},{"line_number":26,"context_line":"    # reading through docutils for the proper way to construct an empty list"},{"line_number":27,"context_line":"    lists \u003d []"},{"line_number":28,"context_line":"    for i in range(5):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_4d5f0c41","line":25,"updated":"2016-07-12 12:59:33.000000000","message":"I think this is not a typo, correct me if i\u0027m wrong but i think he meant to say he\u0027s had enough of reading the docutils...","commit_id":"c621e7efe646f08f4f6292c21c54b215de28804e"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"21cd501fc8792f04951df1918bad4492ddfbd06c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    if not hasattr(env, \u0027todo_all_todos\u0027):"},{"line_number":23,"context_line":"        env.todo_all_todos \u003d []"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # remove the item that was added in the constructor, since I\u0027m tried of"},{"line_number":26,"context_line":"    # reading through docutils for the proper way to construct an empty list"},{"line_number":27,"context_line":"    lists \u003d []"},{"line_number":28,"context_line":"    for i in range(5):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_77c73298","line":25,"in_reply_to":"1aa78d24_4d5f0c41","updated":"2016-07-12 13:37:03.000000000","message":"You\u0027re right. Fixed:)","commit_id":"c621e7efe646f08f4f6292c21c54b215de28804e"}],"etc/nova/rootwrap.conf":[{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"70b3499096f4e898e5b5a0a4620aa45d128fdf02","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Configuration for nova-rootwrap"},{"line_number":2,"context_line":"# This file should be owned by (and only-writeable by) the root user"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[DEFAULT]"},{"line_number":5,"context_line":"# List of directories to load filter definitions from (separated by \u0027,\u0027)."}],"source_content_type":"text/plain","patch_set":6,"id":"dada55a8_e8ba78e0","side":"PARENT","line":2,"updated":"2016-07-19 12:34:24.000000000","message":"Isn\u0027t writeable considered a valid alternative spelling? Not convinced that this needs to be changed.","commit_id":"29f82ad191cbe0c3ca8cab10519631d867dc71d4"}],"etc/nova/rootwrap.d/api-metadata.filters":[{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"70b3499096f4e898e5b5a0a4620aa45d128fdf02","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# nova-rootwrap command filters for api-metadata nodes"},{"line_number":2,"context_line":"# This is needed on nova-api hosts running with \"metadata\" in enabled_apis"},{"line_number":3,"context_line":"# or when running nova-api-metadata"},{"line_number":4,"context_line":"# This file should be owned by (and only-writeable by) the root user"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[Filters]"},{"line_number":7,"context_line":"# nova/network/linux_net.py: \u0027ip[6]tables-save\u0027 % (cmd, \u0027-t\u0027, ..."}],"source_content_type":"application/octet-stream","patch_set":6,"id":"dada55a8_c8a4d4ba","side":"PARENT","line":4,"updated":"2016-07-19 12:34:24.000000000","message":"Same here.","commit_id":"29f82ad191cbe0c3ca8cab10519631d867dc71d4"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/_bittorrent_seeder":[{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"70b3499096f4e898e5b5a0a4620aa45d128fdf02","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    try:"},{"line_number":65,"context_line":"        pid \u003d os.fork()"},{"line_number":66,"context_line":"        if pid \u003e 0:"},{"line_number":67,"context_line":"            # second parent exits"},{"line_number":68,"context_line":"            sys.exit(0)"},{"line_number":69,"context_line":"    except OSError, e:  # noqa"},{"line_number":70,"context_line":"        logging.error(\"fork #2 failed: %d (%s)\" % ("}],"source_content_type":"application/octet-stream","patch_set":6,"id":"dada55a8_8872dc47","side":"PARENT","line":67,"updated":"2016-07-19 12:34:24.000000000","message":"This is the present tense form of exit, the usage is correct.","commit_id":"29f82ad191cbe0c3ca8cab10519631d867dc71d4"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/xenstore.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"e1a5234e81fcfc56f760e241206fe0b7ddc274a8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            json.loads(ret)"},{"line_number":59,"context_line":"        except ValueError:"},{"line_number":60,"context_line":"            # Value should already be JSON-encoded, but some operations"},{"line_number":61,"context_line":"            # may write raw sting values; this will catch those and"},{"line_number":62,"context_line":"            # properly encode them."},{"line_number":63,"context_line":"            ret \u003d json.dumps(ret)"},{"line_number":64,"context_line":"        return ret"}],"source_content_type":"text/x-python","patch_set":8,"id":"bacf61ea_ad003403","side":"PARENT","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":33},"updated":"2016-08-05 11:45:01.000000000","message":"nice","commit_id":"29f82ad191cbe0c3ca8cab10519631d867dc71d4"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"33a519ac7ca7bce49e8b02fd9e1ff9ff12c17000","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    already stored in that location, it is overwritten. As in read_record,"},{"line_number":112,"context_line":"    the dom_id and path must be specified in the arg_dict; additionally,"},{"line_number":113,"context_line":"    you must specify a \u0027value\u0027 key, whose value must be a string. Typically,"},{"line_number":114,"context_line":"    you can jsonify more complex values and store the json output."},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":"    cmd \u003d [\"xenstore-write\","},{"line_number":117,"context_line":"           \"/local/domain/%(dom_id)s/%(path)s\" % arg_dict,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dada55a8_cf364d02","line":114,"range":{"start_line":114,"start_character":54,"end_line":114,"end_character":58},"updated":"2016-07-26 15:46:07.000000000","message":"In some places, JSON is capital, some places are not. How about make them consistent?","commit_id":"8b8c1e59123f2e9b19b836b3bcef08e3808b38f1"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"33a519ac7ca7bce49e8b02fd9e1ff9ff12c17000","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    already stored in that location, it is overwritten. As in read_record,"},{"line_number":112,"context_line":"    the dom_id and path must be specified in the arg_dict; additionally,"},{"line_number":113,"context_line":"    you must specify a \u0027value\u0027 key, whose value must be a string. Typically,"},{"line_number":114,"context_line":"    you can jsonify more complex values and store the json output."},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":"    cmd \u003d [\"xenstore-write\","},{"line_number":117,"context_line":"           \"/local/domain/%(dom_id)s/%(path)s\" % arg_dict,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dada55a8_ef9511e4","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":19},"updated":"2016-07-26 15:46:07.000000000","message":"Is that correct?","commit_id":"8b8c1e59123f2e9b19b836b3bcef08e3808b38f1"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"e1a5234e81fcfc56f760e241206fe0b7ddc274a8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    already stored in that location, it is overwritten. As in read_record,"},{"line_number":112,"context_line":"    the dom_id and path must be specified in the arg_dict; additionally,"},{"line_number":113,"context_line":"    you must specify a \u0027value\u0027 key, whose value must be a string. Typically,"},{"line_number":114,"context_line":"    you can jsonify more complex values and store the json output."},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":"    cmd \u003d [\"xenstore-write\","},{"line_number":117,"context_line":"           \"/local/domain/%(dom_id)s/%(path)s\" % arg_dict,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bacf61ea_9042a33c","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":19},"in_reply_to":"dada55a8_ef9511e4","updated":"2016-08-05 11:45:01.000000000","message":"I think JSON is ok. And jsonify","commit_id":"8b8c1e59123f2e9b19b836b3bcef08e3808b38f1"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"33a519ac7ca7bce49e8b02fd9e1ff9ff12c17000","unresolved":false,"context_lines":[{"line_number":123,"context_line":"@jsonify"},{"line_number":124,"context_line":"def list_records(self, arg_dict):"},{"line_number":125,"context_line":"    \"\"\"Returns all the stored data at or below the given path for the"},{"line_number":126,"context_line":"    given dom_id. The data is returned as a jsonified dict, with the"},{"line_number":127,"context_line":"    path as the key and the stored value as the value. If the path"},{"line_number":128,"context_line":"    doesn\u0027t exist, an empty dict is returned."},{"line_number":129,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"dada55a8_0f3d05dd","line":126,"range":{"start_line":126,"start_character":44,"end_line":126,"end_character":53},"updated":"2016-07-26 15:46:07.000000000","message":"is that correct?","commit_id":"8b8c1e59123f2e9b19b836b3bcef08e3808b38f1"}]}
