)]}'
{"tools/README.rst":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"680a9de2101428fa89698593bb385d4730193dd7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Gnocchi tools"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This page describes several tools build-in the Gnocchi (Time-Series Storage)"},{"line_number":6,"context_line":"project."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_cc1635a7","line":3,"updated":"2014-11-13 14:41:37.000000000","message":"Now that the doc has been merged, I\u0027d like to see this in the published doc rather than a README.","commit_id":"2d1bfab4182d2a6f9757116d992976dbe1cf2ee2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"680a9de2101428fa89698593bb385d4730193dd7","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This python script has the arguments structure as below:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    gnocchi_base_perf_tests.py [-h] [--entity-number ENTITY_NUMBER]"},{"line_number":25,"context_line":"                                    [--measure-batches MEASURE_BATCHES_NUMBER]"},{"line_number":26,"context_line":"                                    [--batch_size BATCH_SIZE]"},{"line_number":27,"context_line":"                                    [--gnocchi-url GNOCCHI_URL]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a890539_8c1c2dc3","line":24,"updated":"2014-11-13 14:41:37.000000000","message":"I don\u0027t think it\u0027s a good idea to duplicate the output. If it changes, it\u0027s likely we\u0027ll forget to update it here too. Let\u0027s just document some common use case scenario.","commit_id":"2d1bfab4182d2a6f9757116d992976dbe1cf2ee2"}],"tools/gnocchi_base_perf_tests.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"85c29b39b78b9d77c5446edf24c2421af636852d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import requests"},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG_DATA \u003d {}"},{"line_number":27,"context_line":"ENTITIES \u003d []"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_cc6419bb","line":26,"updated":"2014-10-27 15:28:50.000000000","message":"I think you should and could avoid global vars here.\n\nJust store this in TimedCalling and move append_log_data and dump_data to TimedCalling too, that\u0027ll be cleaner.","commit_id":"2d1bfab4182d2a6f9757116d992976dbe1cf2ee2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"85c29b39b78b9d77c5446edf24c2421af636852d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                                              tenant_name\u003dargs.tenant_name,"},{"line_number":182,"context_line":"                                              auth_url\u003dargs.auth_url,"},{"line_number":183,"context_line":"                                              force_new_token\u003dTrue)"},{"line_number":184,"context_line":"            # Delete _auth_token and use auth_ref further"},{"line_number":185,"context_line":"            del keystone.auth_token"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        for index in six.range(args.entity_count):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_4c490930","line":184,"updated":"2014-10-27 15:28:50.000000000","message":"?","commit_id":"2d1bfab4182d2a6f9757116d992976dbe1cf2ee2"}],"tools/make_performance_tests.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import argparse"},{"line_number":2,"context_line":"import datetime"},{"line_number":3,"context_line":"import json"},{"line_number":4,"context_line":"import random"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_1e519a62","line":1,"updated":"2014-10-20 15:50:39.000000000","message":"Lacks headers","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import argparse"},{"line_number":2,"context_line":"import datetime"},{"line_number":3,"context_line":"import json"},{"line_number":4,"context_line":"import random"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_8be52aaa","line":1,"in_reply_to":"9aa7fdbe_1e519a62","updated":"2014-10-21 13:25:55.000000000","message":"Oh, I\u0027ll fix it it next patchset","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    while RUNNING:"},{"line_number":18,"context_line":"        time.sleep(sleeptime)"},{"line_number":19,"context_line":"        for name, data in LOG_DATA.items():"},{"line_number":20,"context_line":"            with open(\"/tmp/gnocchi_%s.log\" % name, \u0027a\u0027) as f:"},{"line_number":21,"context_line":"                for meter in data:"},{"line_number":22,"context_line":"                    f.write(\"%s\\n\" % \" \".join(\"%.2f\" % m for m in meter))"},{"line_number":23,"context_line":"        LOG_DATA.clear()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_7eee268d","line":20,"updated":"2014-10-20 15:50:39.000000000","message":"Would be cool to have that configurable, and likely in current directory.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    while RUNNING:"},{"line_number":18,"context_line":"        time.sleep(sleeptime)"},{"line_number":19,"context_line":"        for name, data in LOG_DATA.items():"},{"line_number":20,"context_line":"            with open(\"/tmp/gnocchi_%s.log\" % name, \u0027a\u0027) as f:"},{"line_number":21,"context_line":"                for meter in data:"},{"line_number":22,"context_line":"                    f.write(\"%s\\n\" % \" \".join(\"%.2f\" % m for m in meter))"},{"line_number":23,"context_line":"        LOG_DATA.clear()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_0ba05a42","line":20,"in_reply_to":"9aa7fdbe_7eee268d","updated":"2014-10-21 13:25:55.000000000","message":"Ok, done","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"def append_log_data(log_name, index, time, count):"},{"line_number":27,"context_line":"    if log_name not in LOG_DATA:"},{"line_number":28,"context_line":"        LOG_DATA[log_name] \u003d []"},{"line_number":29,"context_line":"    if count !\u003d 0 and count is not None:"},{"line_number":30,"context_line":"        LOG_DATA[log_name].append([index, time, count, time/count])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_3efc9e3e","line":29,"updated":"2014-10-20 15:50:39.000000000","message":"so that\u0027s \"if count:\" basically :)","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"def append_log_data(log_name, index, time, count):"},{"line_number":27,"context_line":"    if log_name not in LOG_DATA:"},{"line_number":28,"context_line":"        LOG_DATA[log_name] \u003d []"},{"line_number":29,"context_line":"    if count !\u003d 0 and count is not None:"},{"line_number":30,"context_line":"        LOG_DATA[log_name].append([index, time, count, time/count])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_4b8982c9","line":29,"in_reply_to":"9aa7fdbe_3efc9e3e","updated":"2014-10-21 13:25:55.000000000","message":"Earlier I used one more cases and forget simplify it. Done.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        LOG_DATA[log_name].append([index, time, count, time/count])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TimedCalling():"},{"line_number":34,"context_line":"    def __init__(self, log_name):"},{"line_number":35,"context_line":"        self.log_name \u003d log_name"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_3e93befb","line":33,"updated":"2014-10-20 15:50:39.000000000","message":"inherits from object here please. :)","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        LOG_DATA[log_name].append([index, time, count, time/count])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TimedCalling():"},{"line_number":34,"context_line":"    def __init__(self, log_name):"},{"line_number":35,"context_line":"        self.log_name \u003d log_name"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_ab902eed","line":33,"in_reply_to":"9aa7fdbe_3e93befb","updated":"2014-10-21 13:25:55.000000000","message":"Done","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            response_content \u003d json.loads(resp.content)"},{"line_number":57,"context_line":"            ENTITIES.append(response_content[\"id\"])"},{"line_number":58,"context_line":"    except Exception:"},{"line_number":59,"context_line":"        return 0"},{"line_number":60,"context_line":"    else:"},{"line_number":61,"context_line":"        return 1"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_debb9270","line":59,"updated":"2014-10-20 15:50:39.000000000","message":"Seems like the value is not used, and likely a boolean would be clearer. :)","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            response_content \u003d json.loads(resp.content)"},{"line_number":57,"context_line":"            ENTITIES.append(response_content[\"id\"])"},{"line_number":58,"context_line":"    except Exception:"},{"line_number":59,"context_line":"        return 0"},{"line_number":60,"context_line":"    else:"},{"line_number":61,"context_line":"        return 1"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_cb4ad282","line":59,"in_reply_to":"9aa7fdbe_debb9270","updated":"2014-10-21 13:25:55.000000000","message":"Done","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            tenant_name\u003dself.tenant,"},{"line_number":115,"context_line":"            auth_url\u003dself.auth_url)"},{"line_number":116,"context_line":"        return client.auth_token"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def main():"},{"line_number":120,"context_line":"    parser \u003d argparse.ArgumentParser()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_5e2c02ac","line":117,"updated":"2014-10-20 15:50:39.000000000","message":"I am not sure all this is useful, AFAIK keystoneclient handles token renewing automatically now.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            tenant_name\u003dself.tenant,"},{"line_number":115,"context_line":"            auth_url\u003dself.auth_url)"},{"line_number":116,"context_line":"        return client.auth_token"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def main():"},{"line_number":120,"context_line":"    parser \u003d argparse.ArgumentParser()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_0735aed9","line":117,"in_reply_to":"9aa7fdbe_5e2c02ac","updated":"2014-10-21 13:25:55.000000000","message":"I\u0027ll simplify this class","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                        default\u003d\"http://localhost:5000/v2.0\")"},{"line_number":143,"context_line":"    args \u003d parser.parse_args()"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    thread \u003d threading.Thread(target\u003ddump_data)"},{"line_number":146,"context_line":"    thread.start()"},{"line_number":147,"context_line":"    token \u003d TokenManager(args.username, args.password,"},{"line_number":148,"context_line":"                         args.tenant_name, args.auth_url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_794d6072","line":145,"updated":"2014-10-20 15:50:39.000000000","message":"This is a terrible design, don\u0027t do that! Your function is not thread-safe.\n\nJust dump the result as you run the test or at the end.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                        default\u003d\"http://localhost:5000/v2.0\")"},{"line_number":143,"context_line":"    args \u003d parser.parse_args()"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    thread \u003d threading.Thread(target\u003ddump_data)"},{"line_number":146,"context_line":"    thread.start()"},{"line_number":147,"context_line":"    token \u003d TokenManager(args.username, args.password,"},{"line_number":148,"context_line":"                         args.tenant_name, args.auth_url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_2b18be80","line":145,"in_reply_to":"9aa7fdbe_794d6072","updated":"2014-10-21 13:25:55.000000000","message":"Oh, you are right. I\u0027ll move dumping logged data into file to end of tests.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87750a643602a7544dfd82a3927f9f4c2cf480cd","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    thread \u003d threading.Thread(target\u003ddump_data)"},{"line_number":146,"context_line":"    thread.start()"},{"line_number":147,"context_line":"    token \u003d TokenManager(args.username, args.password,"},{"line_number":148,"context_line":"                         args.tenant_name, args.auth_url)"},{"line_number":149,"context_line":"    for index in range(args.entity_count):"},{"line_number":150,"context_line":"        _write_entity(index, token.token, args.gnocchi_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_391d9867","line":147,"updated":"2014-10-20 15:50:39.000000000","message":"Getting a token is costly, I think this tool should support an option to run without using a token if Gnocchi is configured to have no auth somehow. :) But that\u0027s something doable later I guess.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"77a17ad9ab52565a11757d6f84cd156d81580e3a","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    thread \u003d threading.Thread(target\u003ddump_data)"},{"line_number":146,"context_line":"    thread.start()"},{"line_number":147,"context_line":"    token \u003d TokenManager(args.username, args.password,"},{"line_number":148,"context_line":"                         args.tenant_name, args.auth_url)"},{"line_number":149,"context_line":"    for index in range(args.entity_count):"},{"line_number":150,"context_line":"        _write_entity(index, token.token, args.gnocchi_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_2719d279","line":147,"in_reply_to":"9aa7fdbe_391d9867","updated":"2014-10-21 13:25:55.000000000","message":"Yes, I\u0027ll add this option, but I think we should use keystone to check token expiration.","commit_id":"d471151796b580fecaa3c13643b7995e8f778248"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    if log_name not in LOG_DATA:"},{"line_number":40,"context_line":"        LOG_DATA[log_name] \u003d []"},{"line_number":41,"context_line":"    if count:"},{"line_number":42,"context_line":"        LOG_DATA[log_name].append([index, time, count, time / count])"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class TimedCalling(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_6c21e09e","line":42,"updated":"2014-10-22 09:19:31.000000000","message":"Since time / count is computed, I would tend not to write it in the file but only print it at the end when you dump the result on the screen.\nI think it\u0027s better to just have a log file with raw data of what was measured, not other computations. :)","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                         data\u003ddata,"},{"line_number":69,"context_line":"                         headers\u003dheaders)"},{"line_number":70,"context_line":"    try:"},{"line_number":71,"context_line":"        if resp.content:"},{"line_number":72,"context_line":"            response_content \u003d json.loads(resp.content)"},{"line_number":73,"context_line":"            ENTITIES.append(response_content[\"id\"])"},{"line_number":74,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_ec6230d7","line":71,"updated":"2014-10-22 09:19:31.000000000","message":"so if there\u0027s no content you\u0027re happy?","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            response_content \u003d json.loads(resp.content)"},{"line_number":73,"context_line":"            ENTITIES.append(response_content[\"id\"])"},{"line_number":74,"context_line":"    except Exception:"},{"line_number":75,"context_line":"        print \u0027Failed in writing %s entity\u0027 % index"},{"line_number":76,"context_line":"        return False"},{"line_number":77,"context_line":"    else:"},{"line_number":78,"context_line":"        print \u0027%s entity has been written\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_cc3c8cc2","line":75,"updated":"2014-10-22 09:19:31.000000000","message":"print() for Python 3\n\n\"Failed creating entity #%d\"","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            ENTITIES.append(response_content[\"id\"])"},{"line_number":74,"context_line":"    except Exception:"},{"line_number":75,"context_line":"        print \u0027Failed in writing %s entity\u0027 % index"},{"line_number":76,"context_line":"        return False"},{"line_number":77,"context_line":"    else:"},{"line_number":78,"context_line":"        print \u0027%s entity has been written\u0027"},{"line_number":79,"context_line":"        return 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_4c517c0d","line":76,"updated":"2014-10-22 09:19:31.000000000","message":"Did you mean return 0 rather than False? that\u0027d make more sense since you expect a count","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":83,"context_line":"def _write_measures(index, token, url, entity, timestamp, interval, size\u003d100):"},{"line_number":84,"context_line":"    measures_url \u003d url + \"/v1/entity/%s/measures\" % entity"},{"line_number":85,"context_line":"    data \u003d []"},{"line_number":86,"context_line":"    for i in range(size):"},{"line_number":87,"context_line":"        timestamp +\u003d interval"},{"line_number":88,"context_line":"        data.append({\u0027timestamp\u0027: timestamp.isoformat(),"},{"line_number":89,"context_line":"                     \u0027value\u0027: 100})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_6ca64012","line":86,"updated":"2014-10-22 09:19:31.000000000","message":"six.range","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                         data\u003djson.dumps(data),"},{"line_number":95,"context_line":"                         headers\u003dheaders)"},{"line_number":96,"context_line":"    if resp.status_code / 200 !\u003d 2:"},{"line_number":97,"context_line":"        print \u0027Failed in writing %s measures batch\u0027 % index"},{"line_number":98,"context_line":"        return False"},{"line_number":99,"context_line":"    print \u0027%s measures batch has been written\u0027 % index"},{"line_number":100,"context_line":"    return size"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_6c6f20c6","line":97,"updated":"2014-10-22 09:19:31.000000000","message":"Same as above","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                         headers\u003dheaders)"},{"line_number":96,"context_line":"    if resp.status_code / 200 !\u003d 2:"},{"line_number":97,"context_line":"        print \u0027Failed in writing %s measures batch\u0027 % index"},{"line_number":98,"context_line":"        return False"},{"line_number":99,"context_line":"    print \u0027%s measures batch has been written\u0027 % index"},{"line_number":100,"context_line":"    return size"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_8c7284ab","line":98,"updated":"2014-10-22 09:19:31.000000000","message":"Same as above","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        return 0"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class TokenManager(object):"},{"line_number":120,"context_line":"    def __init__(self, user, password, tenant, auth_url, need_auth\u003dTrue):"},{"line_number":121,"context_line":"        self.need_auth \u003d need_auth"},{"line_number":122,"context_line":"        self.user \u003d user"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_8c452419","line":119,"updated":"2014-10-22 09:19:31.000000000","message":"I still don\u0027t think you need this class, renewal is handled by keystoneclient\n\nhttps://git.openstack.org/cgit/openstack/python-keystoneclient/tree/keystoneclient/httpclient.py#n282","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        token_manager \u003d TokenManager(args.username, args.password,"},{"line_number":184,"context_line":"                                     args.tenant_name, args.auth_url,"},{"line_number":185,"context_line":"                                     args.need_auth)"},{"line_number":186,"context_line":"        for index in range(args.entity_count):"},{"line_number":187,"context_line":"            _write_entity(index, token_manager.token, args.gnocchi_url,"},{"line_number":188,"context_line":"                          args.archive_policy)"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_9171bde2","line":186,"updated":"2014-10-22 09:19:31.000000000","message":"six.range :)","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        start_timestamp \u003d datetime.datetime.utcnow()"},{"line_number":191,"context_line":"        interval \u003d datetime.timedelta(minutes\u003d1)"},{"line_number":192,"context_line":"        for index in range(args.measure_count):"},{"line_number":193,"context_line":"            entity \u003d ENTITIES[random.randint(0, len(ENTITIES) - 1)]"},{"line_number":194,"context_line":"            _write_measures(index, token_manager.token, args.gnocchi_url,"},{"line_number":195,"context_line":"                            entity, start_timestamp, interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_31649121","line":192,"updated":"2014-10-22 09:19:31.000000000","message":"six.range would be better :)","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9f5c0effff8aef38b86f83ce0b5afa9244dab368","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                            entity, start_timestamp, interval)"},{"line_number":196,"context_line":"            _get_measures(index, token_manager.token, args.gnocchi_url, entity)"},{"line_number":197,"context_line":"    except Exception:"},{"line_number":198,"context_line":"        raise"},{"line_number":199,"context_line":"    finally:"},{"line_number":200,"context_line":"        dump_data(args.dir)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_31bd7169","line":198,"updated":"2014-10-22 09:19:31.000000000","message":"You can remove those 2 lines actually :)","commit_id":"2aca333488d24d22cf77bb5db930fe05654d6f5f"}]}
