)]}'
{"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"c48e653eb1452efa25eeb247dd434f025add44fb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Base URL for torrent files.\u0027),"},{"line_number":90,"context_line":"    cfg.FloatOpt(\u0027xenapi_torrent_seed_chance\u0027,"},{"line_number":91,"context_line":"                 default\u003d1.0,"},{"line_number":92,"context_line":"                 help\u003d\u0027Percent chance that peer will become a seeder.\u0027),"},{"line_number":93,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_seed_duration\u0027,"},{"line_number":94,"context_line":"               default\u003d3600,"},{"line_number":95,"context_line":"               help\u003d\u0027Number of seconds after downloading an image via\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FTcM%3D","line":92,"updated":"2012-09-24 18:10:59.000000000","message":"Perhaps add on the end of the help message:\n\n1.0 \u003d 100% chance\n\nOr reword like: Chance that peer will become a seeder; 1.0 \u003d\u003d 100% chance\n\nI think that \"Percent chance\" may be a little too ambiguous.","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"01c5ef47b5322cf62118b475e4be1f3dd5dbb0a9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Base URL for torrent files.\u0027),"},{"line_number":90,"context_line":"    cfg.FloatOpt(\u0027xenapi_torrent_seed_chance\u0027,"},{"line_number":91,"context_line":"                 default\u003d1.0,"},{"line_number":92,"context_line":"                 help\u003d\u0027Percent chance that peer will become a seeder.\u0027),"},{"line_number":93,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_seed_duration\u0027,"},{"line_number":94,"context_line":"               default\u003d3600,"},{"line_number":95,"context_line":"               help\u003d\u0027Number of seconds after downloading an image via\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FSo4%3D","line":92,"in_reply_to":"AAAALH%2F%2FTXo%3D","updated":"2012-09-25 15:40:11.000000000","message":"Good call, I\u0027ll tweak the wording.","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"de93177668c51383498af7494adfc8a184f696a1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Base URL for torrent files.\u0027),"},{"line_number":90,"context_line":"    cfg.FloatOpt(\u0027xenapi_torrent_seed_chance\u0027,"},{"line_number":91,"context_line":"                 default\u003d1.0,"},{"line_number":92,"context_line":"                 help\u003d\u0027Percent chance that peer will become a seeder.\u0027),"},{"line_number":93,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_seed_duration\u0027,"},{"line_number":94,"context_line":"               default\u003d3600,"},{"line_number":95,"context_line":"               help\u003d\u0027Number of seconds after downloading an image via\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FTXo%3D","line":92,"in_reply_to":"AAAALH%2F%2FTcM%3D","updated":"2012-09-24 18:39:32.000000000","message":"or may you could say \n\n\"probability that a peer will become a seeder\"","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"de93177668c51383498af7494adfc8a184f696a1","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_seed_duration\u0027,"},{"line_number":94,"context_line":"               default\u003d3600,"},{"line_number":95,"context_line":"               help\u003d\u0027Number of seconds after downloading an image via\u0027"},{"line_number":96,"context_line":"                    \u0027 BitTorrent that it should be seeded for other peers.\u0027),"},{"line_number":97,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_max_last_accessed\u0027,"},{"line_number":98,"context_line":"               default\u003d86400,"},{"line_number":99,"context_line":"               help\u003d\u0027Cached torrent files not accessed within this number of\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FTXg%3D","line":96,"updated":"2012-09-24 18:39:32.000000000","message":"is there no way we could have, after %x of download complete a peer will become a seeder.","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"01c5ef47b5322cf62118b475e4be1f3dd5dbb0a9","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_seed_duration\u0027,"},{"line_number":94,"context_line":"               default\u003d3600,"},{"line_number":95,"context_line":"               help\u003d\u0027Number of seconds after downloading an image via\u0027"},{"line_number":96,"context_line":"                    \u0027 BitTorrent that it should be seeded for other peers.\u0027),"},{"line_number":97,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_max_last_accessed\u0027,"},{"line_number":98,"context_line":"               default\u003d86400,"},{"line_number":99,"context_line":"               help\u003d\u0027Cached torrent files not accessed within this number of\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FSpQ%3D","line":96,"in_reply_to":"AAAALH%2F%2FTXg%3D","updated":"2012-09-25 15:40:11.000000000","message":"A \u0027seeder\u0027 by definition must have 100% of the file, otherwise it\u0027s just a \u0027peer\u0027 in the swarm.\n\nBut \u0027peers\u0027 are also uploading to each other, so after they first block was successfully fetched, it  announces possession, and other \u0027peers\u0027 can pull from it instead of just the \u0027initial-seeder\u0027.","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"de93177668c51383498af7494adfc8a184f696a1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_max_last_accessed\u0027,"},{"line_number":98,"context_line":"               default\u003d86400,"},{"line_number":99,"context_line":"               help\u003d\u0027Cached torrent files not accessed within this number of\u0027"},{"line_number":100,"context_line":"                    \u0027 seconds can be reaped\u0027),"},{"line_number":101,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_listen_port_start\u0027,"},{"line_number":102,"context_line":"               default\u003d6881,"},{"line_number":103,"context_line":"               help\u003d\u0027Beginning of port range to listen on\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FTXc%3D","line":100,"updated":"2012-09-24 18:39:32.000000000","message":"wondering if we should have 86401 to add a buffer for just a bit of delay? (may be doesn\u0027t even matter right now but if it fits might be something useful down the line)","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"01c5ef47b5322cf62118b475e4be1f3dd5dbb0a9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_max_last_accessed\u0027,"},{"line_number":98,"context_line":"               default\u003d86400,"},{"line_number":99,"context_line":"               help\u003d\u0027Cached torrent files not accessed within this number of\u0027"},{"line_number":100,"context_line":"                    \u0027 seconds can be reaped\u0027),"},{"line_number":101,"context_line":"    cfg.IntOpt(\u0027xenapi_torrent_listen_port_start\u0027,"},{"line_number":102,"context_line":"               default\u003d6881,"},{"line_number":103,"context_line":"               help\u003d\u0027Beginning of port range to listen on\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FSo8%3D","line":100,"in_reply_to":"AAAALH%2F%2FTXc%3D","updated":"2012-09-25 15:40:11.000000000","message":"Not quite sure I understand the need for an extra second.\n\nThe one-day default was just a number I picked out of thin-air.","commit_id":"5871043d4469687d9208f01bb2d6a42148d64a1f"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"93c920d46e0f75b73778a1266e0e52c82971c871","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"    return [str(uuid.uuid4()) for i in xrange(MAX_VDI_CHAIN_SIZE)]"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"def _determine_if_image_uses_bittorrent(context, instance):"},{"line_number":1021,"context_line":"    bittorrent \u003d False"},{"line_number":1022,"context_line":"    xenapi_torrent_images \u003d FLAGS.xenapi_torrent_images.lower()"},{"line_number":1023,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FRC8%3D","line":1020,"updated":"2012-09-27 16:10:51.000000000","message":"Minor, but I think it would be just as descriptive if the name was \u0027_image_uses_bittorrent\u0027. Especially when reading the code later:\n\n  if _image_uses_bittorrent(content, instance):","commit_id":"61c584a6620f16e34992291daccde4bf841dd051"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/bittorrent":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"93c920d46e0f75b73778a1266e0e52c82971c871","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _delete_if_exists(path):"},{"line_number":43,"context_line":"    # TODO(sirp): this could eventually go in plugin/utils.py, when BT merges"},{"line_number":44,"context_line":"    # into trunk"},{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        os.unlink(path)"},{"line_number":47,"context_line":"    except OSError, e:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAALH%2F%2FRCo%3D","line":44,"updated":"2012-09-27 16:10:51.000000000","message":"Should this get done with this patch then?","commit_id":"61c584a6620f16e34992291daccde4bf841dd051"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"88fdb13a8fe958e65229e32e692a8f41768a77ab","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    # FIXME(sirp): **kwargs is needed in the signature b/c the compute code is"},{"line_number":238,"context_line":"    # passing in `uuid_stack`, `project_id` and `auth_token` which aren\u0027t used."},{"line_number":239,"context_line":"    # When this code lands in trunk, we can refactor this to pass only the"},{"line_number":240,"context_line":"    # parameters that BT actually uses."},{"line_number":241,"context_line":"    seed_cache_path \u003d _make_seed_cache()"},{"line_number":242,"context_line":"    torrent_cache_path \u003d _make_torrent_cache()"},{"line_number":243,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAALH%2F%2FOHY%3D","line":240,"updated":"2012-10-03 16:05:05.000000000","message":"Shouldn\u0027t this get done now that this is hitting trunk?","commit_id":"0a1f2defb699325eaa470ca452c611768d491e6a"}]}
