)]}'
{"doc/source/misc.rst":[{"author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"change_message_id":"009c04d4c5e7d6ec3cb3c333ee1cc4f302960edf","unresolved":false,"context_lines":[{"line_number":138,"context_line":"retrieve it, one must use an HMAC-signed request, similar to TempURL."},{"line_number":139,"context_line":"The signature may be produced like so:"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    swift-temp-url GET 3600 /info secret 2\u003e/dev/null | sed s/temp_url/swiftinfo/g"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"XProfile"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"AAAAVn%2F%2FpTY%3D","line":141,"updated":"2014-03-04 22:33:57.000000000","message":"Not sure why the above is here?","commit_id":"3d5cd4e173a8c56f84e589da18606ef7a5e9d400"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"886cc1d1232043f08fc98ab4ed91a695022cef68","unresolved":false,"context_lines":[{"line_number":138,"context_line":"retrieve it, one must use an HMAC-signed request, similar to TempURL."},{"line_number":139,"context_line":"The signature may be produced like so:"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    swift-temp-url GET 3600 /info secret 2\u003e/dev/null | sed s/temp_url/swiftinfo/g"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"XProfile"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"AAAAVn%2F%2FnYM%3D","line":141,"in_reply_to":"AAAAVn%2F%2FpTY%3D","updated":"2014-03-05 03:31:26.000000000","message":"Done","commit_id":"3d5cd4e173a8c56f84e589da18606ef7a5e9d400"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    :members:"},{"line_number":122,"context_line":"    :show-inheritance:"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"XProfile"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. automodule:: swift.common.middleware.xprofile"}],"source_content_type":"text/x-rst","patch_set":24,"id":"AAAAWH%2F%2FKNc%3D","line":124,"updated":"2014-03-19 20:57:52.000000000","message":"Would this be better suited documenting this in the middleware doc module?","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    :members:"},{"line_number":122,"context_line":"    :show-inheritance:"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"XProfile"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. automodule:: swift.common.middleware.xprofile"}],"source_content_type":"text/x-rst","patch_set":24,"id":"AAAAWH%2F%2FGsE%3D","line":124,"in_reply_to":"AAAAWH%2F%2FKNc%3D","updated":"2014-03-24 15:05:21.000000000","message":"Done","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"}],"etc/proxy-server.conf-sample":[{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"56530ffdd9247d9b47fb54894252df87b87f82de","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"# Note: Put it at the beginning of the pipleline to profile all middleware."},{"line_number":512,"context_line":"[filter:profile]"},{"line_number":513,"context_line":"use \u003d egg:swift#profile"},{"line_number":514,"context_line":"log_filename_prefix \u003d /opt/stack/data/swift/profile/p1/proxy.profile"},{"line_number":515,"context_line":"# This prefix will be used to combine process id and time stamp to name the"},{"line_number":516,"context_line":"# profile data file."}],"source_content_type":"application/octet-stream","patch_set":11,"id":"AAAATn%2F%2BF%2B0%3D","line":513,"updated":"2013-12-02 16:44:48.000000000","message":"These lines should be commented-out in the sample file, and have values corresponding to the defaults implemented in the middleware itself (note that I didn\u0027t check that, so these values may already be equal to the defaults in the middleware, and if so, don\u0027t need to change).\n\nAlso, I think convention has been, thus far, to document config vars with comments immediately before the (commented-out) config var, not after it.","commit_id":"18f1f0abdda060aa2f183eef525004db3424a6b3"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"09410ec710b8c7dd5dff20a0bcb65e62c5e13b88","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"# Note: Put it at the beginning of the pipleline to profile all middleware."},{"line_number":512,"context_line":"[filter:profile]"},{"line_number":513,"context_line":"use \u003d egg:swift#profile"},{"line_number":514,"context_line":"log_filename_prefix \u003d /opt/stack/data/swift/profile/p1/proxy.profile"},{"line_number":515,"context_line":"# This prefix will be used to combine process id and time stamp to name the"},{"line_number":516,"context_line":"# profile data file."}],"source_content_type":"application/octet-stream","patch_set":11,"id":"AAAATn%2F%2BDag%3D","line":513,"in_reply_to":"AAAATn%2F%2BF%2B0%3D","updated":"2013-12-03 07:21:20.000000000","message":"agreed!","commit_id":"18f1f0abdda060aa2f183eef525004db3424a6b3"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"82e933818b55062a37483c4e730cbf871b042ca3","unresolved":false,"context_lines":[{"line_number":515,"context_line":"# This prefix will be used to combine process id and time stamp to name the"},{"line_number":516,"context_line":"# profile data file. Make sure current user has permission to write the"},{"line_number":517,"context_line":"# upper directory."},{"line_number":518,"context_line":"log_filename_prefix \u003d /var/log/swift/profile/default/proxy.profile"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"# the profile data will be dumped to local disk based on above naming rule"},{"line_number":521,"context_line":"# in this interval."}],"source_content_type":"application/octet-stream","patch_set":12,"id":"AAAATn%2F%2BAG8%3D","line":518,"updated":"2013-12-03 16:37:16.000000000","message":"This value still isn\u0027t commented out, and doesn\u0027t match the middleware\u0027s default of\n\n  DEFAULT_PROFILE_LOG \u003d \u0027/var/profile/swift/default/wsgi.profile\u0027\n\nI think that default should be under \"/var/log/swift\" somewhere so it\u0027s more likely to already have correct permissions.\n\nYou could mention in the comment that if you DON\u0027T override this value in the config file, AND you enable the profile middleware in more than one type of daemon, then their results will stomp all over each other.  You could also suggest the above, proxy-specific path in the comment, but not on the main line (which would also be commented out) which needs to have the middleware\u0027s default value, whatever that ends up being.\n\nPerhaps something like:\n\n  # This prefix will be used to combine process ID and timestamp to name the\n  # profile data file.  Make sure the executing user has permission to write\n  # into this path (missing path segments will be created, if necessary).\n  # If you enable profiling in more than one type of daemon, you must override\n  # this setting with a unique value like: /var/log/swift/profile/proxy.profile\n  # log_filename_prefix \u003d /var/log/swift/profile/default.profile\n\nAnd then in the other daemon sample config files, you\u0027d suggest /var/log/swift/profile/account.profile, /var/log/swift/profile/object.profile, etc.","commit_id":"0c6d6cac0750dfe25f21c5a6b4a9ac6749ebd454"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"703e3f0708b0a858be163ab615cee4601f2dbda3","unresolved":false,"context_lines":[{"line_number":515,"context_line":"# This prefix will be used to combine process id and time stamp to name the"},{"line_number":516,"context_line":"# profile data file. Make sure current user has permission to write the"},{"line_number":517,"context_line":"# upper directory."},{"line_number":518,"context_line":"log_filename_prefix \u003d /var/log/swift/profile/default/proxy.profile"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"# the profile data will be dumped to local disk based on above naming rule"},{"line_number":521,"context_line":"# in this interval."}],"source_content_type":"application/octet-stream","patch_set":12,"id":"AAAATn%2F99No%3D","line":518,"in_reply_to":"AAAATn%2F%2BAG8%3D","updated":"2013-12-04 01:41:05.000000000","message":"great suggestions!","commit_id":"0c6d6cac0750dfe25f21c5a6b4a9ac6749ebd454"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":575,"context_line":"# endpoint should be cannot always be guessed."},{"line_number":576,"context_line":"# allow_full_urls \u003d true"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"# Note: Put it at the beginning of the pipleline to profile all middleware."},{"line_number":579,"context_line":"[filter:xprofile]"},{"line_number":580,"context_line":"use \u003d egg:swift#xprofile"},{"line_number":581,"context_line":"# This option enable you to switch profilers which should inherit from python"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"AAAAWH%2F%2FKMU%3D","line":578,"updated":"2014-03-19 20:57:52.000000000","message":"It seems safe to recommend putting this middleware after catch_errors, gatekeeper and healthcheck.","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":575,"context_line":"# endpoint should be cannot always be guessed."},{"line_number":576,"context_line":"# allow_full_urls \u003d true"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"# Note: Put it at the beginning of the pipleline to profile all middleware."},{"line_number":579,"context_line":"[filter:xprofile]"},{"line_number":580,"context_line":"use \u003d egg:swift#xprofile"},{"line_number":581,"context_line":"# This option enable you to switch profilers which should inherit from python"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"AAAAWH%2F%2FGrQ%3D","line":578,"in_reply_to":"AAAAWH%2F%2FKMU%3D","updated":"2014-03-24 15:05:21.000000000","message":"Done","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"}],"swift/common/middleware/profile.py":[{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"82e933818b55062a37483c4e730cbf871b042ca3","unresolved":false,"context_lines":[{"line_number":171,"context_line":"except ImportError:"},{"line_number":172,"context_line":"    ODFLIB_INSTALLED \u003d False"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"DEFAULT_PROFILE_LOG \u003d \u0027/var/profile/swift/default/wsgi.profile\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"PROFILE_EXEC_EAGER \u003d \"\"\""},{"line_number":177,"context_line":"# unwind the iterator; it may call start_response, do lots of work, etc"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2BAFU%3D","line":174,"updated":"2013-12-03 16:37:16.000000000","message":"This middleware would be more robust if this defaulted to a directory under which the unprivileged Swift daemon user normally has access.  Perhaps something like\n\n  /var/log/swift/profile/default.profile","commit_id":"0c6d6cac0750dfe25f21c5a6b4a9ac6749ebd454"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"703e3f0708b0a858be163ab615cee4601f2dbda3","unresolved":false,"context_lines":[{"line_number":171,"context_line":"except ImportError:"},{"line_number":172,"context_line":"    ODFLIB_INSTALLED \u003d False"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"DEFAULT_PROFILE_LOG \u003d \u0027/var/profile/swift/default/wsgi.profile\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"PROFILE_EXEC_EAGER \u003d \"\"\""},{"line_number":177,"context_line":"# unwind the iterator; it may call start_response, do lots of work, etc"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F99NY%3D","line":174,"in_reply_to":"AAAATn%2F%2BAFU%3D","updated":"2013-12-04 01:41:05.000000000","message":"Done","commit_id":"0c6d6cac0750dfe25f21c5a6b4a9ac6749ebd454"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"bccb52aee1961fa8a38f1a7adf5200ac526b83c3","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"PATH_SAFE \u003d \u0027/:@\u0026+$,\u0027"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"class MiniRequest(object):"},{"line_number":1059,"context_line":""},{"line_number":1060,"context_line":"    def __init__(self, environ):"},{"line_number":1061,"context_line":"        self.environ \u003d environ"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9KXI%3D","line":1058,"updated":"2013-12-16 06:04:54.000000000","message":"Is there a reason swob.Request can\u0027t be used instead of this?","commit_id":"6fa35e0da5b2f0b2865416c57db1bff0fd62916c"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"53d843f87285dd181b16236ef7b792c710c03c7e","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"PATH_SAFE \u003d \u0027/:@\u0026+$,\u0027"},{"line_number":1056,"context_line":""},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"class MiniRequest(object):"},{"line_number":1059,"context_line":""},{"line_number":1060,"context_line":"    def __init__(self, environ):"},{"line_number":1061,"context_line":"        self.environ \u003d environ"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9EWk%3D","line":1058,"in_reply_to":"AAAATn%2F9KXI%3D","updated":"2013-12-17 04:48:50.000000000","message":"The swob.Request can\u0027t parse Request body in which the mini web form data will be saved. Instead, the body is processed as StringIO instance and saved as env[\u0027wsgi.input\u0027]. You can\u0027t get the query parameters in Request.params property because it only parse QUERY_STRING to get parameters. The similar case exists in formpost middleware in which the form data is parsed by using rfc822 instead of using swob.Request. correct me if I misunderstand this part. :-)","commit_id":"6fa35e0da5b2f0b2865416c57db1bff0fd62916c"}],"swift/common/middleware/xprofile.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    http://SERVER_IP:PORT/__profile__/current/NFL?format\u003djson"},{"line_number":45,"context_line":"    http://SERVER_IP:PORT/__profile__/all/NFL?format\u003djson"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    NFL is defined by concatenation of file name, function name and the first"},{"line_number":48,"context_line":"    line number."},{"line_number":49,"context_line":"    e.g.::"},{"line_number":50,"context_line":"        account.py:50(GETorHEAD)"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FKLg%3D","line":47,"updated":"2014-03-19 20:57:52.000000000","message":"Do you really mean python module name?","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    http://SERVER_IP:PORT/__profile__/current/NFL?format\u003djson"},{"line_number":45,"context_line":"    http://SERVER_IP:PORT/__profile__/all/NFL?format\u003djson"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    NFL is defined by concatenation of file name, function name and the first"},{"line_number":48,"context_line":"    line number."},{"line_number":49,"context_line":"    e.g.::"},{"line_number":50,"context_line":"        account.py:50(GETorHEAD)"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FGmA%3D","line":47,"in_reply_to":"AAAAWH%2F%2FKLg%3D","updated":"2014-03-24 15:05:21.000000000","message":"It is actually the file path of the modules. Normally the separator is slash \u0027/\u0027, not dot.","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":61,"context_line":"The profiling middleware can be configured in paste file for WSGI servers such"},{"line_number":62,"context_line":"as proxy, account, container and object servers."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Here\u0027s an example for proxy server:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"[pipeline:main]"},{"line_number":67,"context_line":"# Put it at the beginning of the pipleline to profile all middleware."}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FKLY%3D","line":64,"updated":"2014-03-19 20:57:52.000000000","message":"This seems like a bit of duplication, perhaps just reference the sample config files?","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"The profiling middleware can be configured in paste file for WSGI servers such"},{"line_number":62,"context_line":"as proxy, account, container and object servers."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Here\u0027s an example for proxy server:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"[pipeline:main]"},{"line_number":67,"context_line":"# Put it at the beginning of the pipleline to profile all middleware."}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FGp4%3D","line":64,"in_reply_to":"AAAAWH%2F%2FKLY%3D","updated":"2014-03-24 15:05:21.000000000","message":"Done","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                nc, cc, tt, tpc, ct, cpc, fn)"},{"line_number":369,"context_line":"        return csv"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def to_ods(self, *selection):"},{"line_number":372,"context_line":"        if self.fcn_list:"},{"line_number":373,"context_line":"            stat_list \u003d self.fcn_list[:]"},{"line_number":374,"context_line":"            order_text \u003d \"   Ordered by: \" + self.sort_type + \u0027\\n\u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FKPY%3D","line":371,"updated":"2014-03-19 20:57:52.000000000","message":"Can you get unit tests for this?","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                nc, cc, tt, tpc, ct, cpc, fn)"},{"line_number":369,"context_line":"        return csv"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def to_ods(self, *selection):"},{"line_number":372,"context_line":"        if self.fcn_list:"},{"line_number":373,"context_line":"            stat_list \u003d self.fcn_list[:]"},{"line_number":374,"context_line":"            order_text \u003d \"   Ordered by: \" + self.sort_type + \u0027\\n\u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FGhQ%3D","line":371,"in_reply_to":"AAAAWH%2F%2FKPY%3D","updated":"2014-03-24 15:05:21.000000000","message":"There is a test case of test_to_ods() in unit test module. It will be skipped by checking the availability of required odfpy library. The low test coverage maybe caused by this reason. Have no idea to coverage this without install odfpy.","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"0ff4e38ba29f43c4af0277006692ad2dce51c936","unresolved":false,"context_lines":[{"line_number":641,"context_line":"        else:"},{"line_number":642,"context_line":"            return empty_description"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def _get_stats(self, profile_id):"},{"line_number":645,"context_line":"        if profile_id is None or profile_id \u003d\u003d \u0027current\u0027:"},{"line_number":646,"context_line":"            log_file \u003d [l for l in glob.glob("},{"line_number":647,"context_line":"                self.log_filename_prefix + str(os.getpid()) + \u0027*\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FKOY%3D","line":644,"updated":"2014-03-19 20:57:52.000000000","message":"Who calls this method?","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"c3c0caf56d5e888c8f8272f728df647c9669ce9f","unresolved":false,"context_lines":[{"line_number":641,"context_line":"        else:"},{"line_number":642,"context_line":"            return empty_description"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def _get_stats(self, profile_id):"},{"line_number":645,"context_line":"        if profile_id is None or profile_id \u003d\u003d \u0027current\u0027:"},{"line_number":646,"context_line":"            log_file \u003d [l for l in glob.glob("},{"line_number":647,"context_line":"                self.log_filename_prefix + str(os.getpid()) + \u0027*\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAAWH%2F%2FGgI%3D","line":644,"in_reply_to":"AAAAWH%2F%2FKOY%3D","updated":"2014-03-24 15:05:21.000000000","message":"deprecated and removed.","commit_id":"3013697be1667dce5b2eb9911b71498186da0c3f"}]}
