)]}'
{"octavia/controller/worker/flows/amphora_flows.py":[{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"42d6df1c89a5ed9f1d2c26c377a7222abf2073b6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        into the flow"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        :returns: The flow for creating the amphora"},{"line_number":45,"context_line":"        /Users/tvardeman/workspace/octavia/octavia/controller/worker/flows/amphora_flows.py"},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        create_amphora_flow \u003d linear_flow.Flow(constants.CREATE_AMPHORA_FLOW)"},{"line_number":48,"context_line":"        create_amphora_flow.add(database_tasks.CreateAmphoraInDB("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_520e4fe6","line":45,"range":{"start_line":45,"start_character":25,"end_line":45,"end_character":34},"updated":"2016-01-27 05:57:12.000000000","message":"Just noticed this. I\u0027m guessing this comment was included in error.","commit_id":"f8e749d47832d49831a3369e273a078642cb44bf"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"def5311abe151c0f0ba12a24ea10e0860695c4f6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        into the flow"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        :returns: The flow for creating the amphora"},{"line_number":45,"context_line":"        /Users/tvardeman/workspace/octavia/octavia/controller/worker/flows/amphora_flows.py"},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        create_amphora_flow \u003d linear_flow.Flow(constants.CREATE_AMPHORA_FLOW)"},{"line_number":48,"context_line":"        create_amphora_flow.add(database_tasks.CreateAmphoraInDB("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_a8eddc26","line":45,"range":{"start_line":45,"start_character":25,"end_line":45,"end_character":34},"in_reply_to":"9a68dd71_520e4fe6","updated":"2016-01-27 06:39:38.000000000","message":"This is actually a copy-paste fail.  I\u0027ll edit this line out via the new gerrit \"fix\" tool... Just to see how it works :D","commit_id":"f8e749d47832d49831a3369e273a078642cb44bf"}],"octavia/controller/worker/tasks/compute_tasks.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"80c5454b19537d03a5cf99afa695be325725f9c0","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        :returns: An amphora object"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        i \u003d 0"},{"line_number":158,"context_line":"        while i \u003c\u003d CONF.controller_worker.amp_active_retries:"},{"line_number":159,"context_line":"            time.sleep(CONF.controller_worker.amp_active_wait_sec)"},{"line_number":160,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":161,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_b9a6d00c","line":158,"updated":"2016-01-15 19:09:49.000000000","message":"for i in range(100)\n\nI\u0027d say to do six for py2 and py3 range differences but this is going to be a small integer so its negligible.","commit_id":"9c751dca78b63d0d297132f3caa2fc7e16c5e715"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4e0eae23fa6e204531933c02541250dda1123cbb","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        i \u003d 0"},{"line_number":158,"context_line":"        while i \u003c\u003d CONF.controller_worker.amp_active_retries:"},{"line_number":159,"context_line":"            time.sleep(CONF.controller_worker.amp_active_wait_sec)"},{"line_number":160,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":161,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"},{"line_number":162,"context_line":"                return amp"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_29160df2","line":159,"updated":"2016-01-15 19:29:43.000000000","message":"I usually prefer to be optimistic and sleep after a test.  Maybe containers will boot so fast it will be ACTIVE or ERROR immediately.","commit_id":"9c751dca78b63d0d297132f3caa2fc7e16c5e715"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"42d6df1c89a5ed9f1d2c26c377a7222abf2073b6","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        :raises: Generic exception if the amphora is not active"},{"line_number":155,"context_line":"        :returns: An amphora object"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        for i in range(CONF.controller_worker.amp_active_retries):"},{"line_number":158,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":159,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"},{"line_number":160,"context_line":"                return amp"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_52596f8d","line":157,"updated":"2016-01-27 05:57:12.000000000","message":"Er... was I reading that other patch correctly:  Is \"range\" in python2 and python3 the same function?  If not, you should probably use six.moves.range or six.moves.xrange, right?","commit_id":"f8e749d47832d49831a3369e273a078642cb44bf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"4ea8f51dfbb3512824c33510d987992fd8fed103","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        :raises: Generic exception if the amphora is not active"},{"line_number":155,"context_line":"        :returns: An amphora object"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        for i in range(CONF.controller_worker.amp_active_retries):"},{"line_number":158,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":159,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"},{"line_number":160,"context_line":"                return amp"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_4a5f8c75","line":157,"in_reply_to":"9a68dd71_08966894","updated":"2016-02-02 22:33:06.000000000","message":"Yes, range() is in both, but the range implementation in py3 is the xrange function from py2 -- so it is correct that \"range()\" in py3 is more efficient than in py2. You SHOULD use six.moves to use xrange if possible though, depending on whether the optimization is worth it. In this case, there is a range of up to how many integers? If it\u0027s only up to like 100, it isn\u0027t worth it, but if this number goes into the thousands or higher order, it might be worth it since the fix is so easy.","commit_id":"f8e749d47832d49831a3369e273a078642cb44bf"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"def5311abe151c0f0ba12a24ea10e0860695c4f6","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        :raises: Generic exception if the amphora is not active"},{"line_number":155,"context_line":"        :returns: An amphora object"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        for i in range(CONF.controller_worker.amp_active_retries):"},{"line_number":158,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":159,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"},{"line_number":160,"context_line":"                return amp"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_08966894","line":157,"in_reply_to":"9a68dd71_52596f8d","updated":"2016-01-27 06:39:38.000000000","message":"I just did a quick google, it looks like \"range\" is in both Python2 and Python3, just performs better in Python3.  xrange apparently isn\u0027t in Python3.  I read that here:\nhttps://wiki.python.org/moin/Python2orPython3\n\nThoughts?","commit_id":"f8e749d47832d49831a3369e273a078642cb44bf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bff97c55fe94a6877e52680c91bee35edb6fc3f0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            amp \u003d self.compute.get_amphora(compute_id)"},{"line_number":159,"context_line":"            if amp.status \u003d\u003d constants.ACTIVE:"},{"line_number":160,"context_line":"                return amp"},{"line_number":161,"context_line":"            elif amp.status \u003d\u003d constants.ERROR:"},{"line_number":162,"context_line":"                raise exceptions.ComputeBuildException()"},{"line_number":163,"context_line":"            time.sleep(CONF.controller_worker.amp_active_wait_sec)"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_9105bf15","line":161,"updated":"2016-02-02 21:19:09.000000000","message":"The unit test needs to be updated for this conditional.","commit_id":"a727956452b27107ff3c72b0042d802a54c95c8d"}]}
