)]}'
{"octavia/api/drivers/amphora_driver/driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def pool_update(self, pool):"},{"line_number":112,"context_line":"        pool_dict \u003d pool.to_dict()"},{"line_number":113,"context_line":"        if \u0027admin_state_up\u0027 in pool_dict:"},{"line_number":114,"context_line":"            pool_dict[\u0027enabled\u0027] \u003d pool_dict.pop(\u0027admin_state_up\u0027)"},{"line_number":115,"context_line":"        pool_id \u003d pool_dict.pop(\u0027pool_id\u0027)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        payload \u003d {consts.POOL_ID: pool_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6ce356a5","line":114,"updated":"2018-05-14 18:58:56.000000000","message":"This is the third time I\u0027ve seen this (and I\u0027m sure it\u0027ll be in the rest too), is there not a good way we could have this done in the to_dict method? It\u0027s difficult because it needs to know if it\u0027s an update, I assume?\n... I don\u0027t have a good answer yet, but I guess this is something we can think about when we have infinite freetime. \u003c_\u003c","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def pool_update(self, pool):"},{"line_number":112,"context_line":"        pool_dict \u003d pool.to_dict()"},{"line_number":113,"context_line":"        if \u0027admin_state_up\u0027 in pool_dict:"},{"line_number":114,"context_line":"            pool_dict[\u0027enabled\u0027] \u003d pool_dict.pop(\u0027admin_state_up\u0027)"},{"line_number":115,"context_line":"        pool_id \u003d pool_dict.pop(\u0027pool_id\u0027)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        payload \u003d {consts.POOL_ID: pool_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bfee4e1f","line":114,"in_reply_to":"5f7c97a3_6ce356a5","updated":"2018-05-16 03:40:19.000000000","message":"Yeah, this is the flip side. It is decoding \"admin_state_up\" from the provider spec to the \"enabled\" that octavia used. So, It can\u0027t be on the sender side, it\u0027s Octavia specific.","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"}],"octavia/api/v2/controllers/pool.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"            # Dispatch to the driver"},{"line_number":199,"context_line":"            LOG.info(\"Sending create Pool %s to provider %s\","},{"line_number":200,"context_line":"                     db_pool.id, provider)"},{"line_number":201,"context_line":"            driver_utils.call_provider("},{"line_number":202,"context_line":"                provider, driver.pool_create, provider_pool)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_cc862aba","line":200,"updated":"2018-05-14 18:58:56.000000000","message":"`provider` -\u003e `driver.name`","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"            # Dispatch to the driver"},{"line_number":199,"context_line":"            LOG.info(\"Sending create Pool %s to provider %s\","},{"line_number":200,"context_line":"                     db_pool.id, provider)"},{"line_number":201,"context_line":"            driver_utils.call_provider("},{"line_number":202,"context_line":"                provider, driver.pool_create, provider_pool)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_7fb756f6","line":200,"in_reply_to":"5f7c97a3_cc862aba","updated":"2018-05-16 03:40:19.000000000","message":"Done","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            LOG.info(\"Sending create Pool %s to provider %s\","},{"line_number":200,"context_line":"                     db_pool.id, provider)"},{"line_number":201,"context_line":"            driver_utils.call_provider("},{"line_number":202,"context_line":"                provider, driver.pool_create, provider_pool)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"            lock_session.commit()"},{"line_number":205,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6c9116f1","line":202,"updated":"2018-05-14 18:58:56.000000000","message":"`provider` -\u003e `driver.name`","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            LOG.info(\"Sending create Pool %s to provider %s\","},{"line_number":200,"context_line":"                     db_pool.id, provider)"},{"line_number":201,"context_line":"            driver_utils.call_provider("},{"line_number":202,"context_line":"                provider, driver.pool_create, provider_pool)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"            lock_session.commit()"},{"line_number":205,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1fd2e228","line":202,"in_reply_to":"5f7c97a3_6c9116f1","updated":"2018-05-16 03:40:19.000000000","message":"Done","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                driver_utils.pool_dict_to_provider_dict(pool_dict))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"            # Dispatch to the driver"},{"line_number":285,"context_line":"            LOG.info(\"Sending update Pool %s to provider %s\", id, provider)"},{"line_number":286,"context_line":"            driver_utils.call_provider("},{"line_number":287,"context_line":"                provider, driver.pool_update,"},{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4cc45af5","line":285,"updated":"2018-05-14 18:58:56.000000000","message":"`provider` -\u003e `driver.name`","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                driver_utils.pool_dict_to_provider_dict(pool_dict))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"            # Dispatch to the driver"},{"line_number":285,"context_line":"            LOG.info(\"Sending update Pool %s to provider %s\", id, provider)"},{"line_number":286,"context_line":"            driver_utils.call_provider("},{"line_number":287,"context_line":"                provider, driver.pool_update,"},{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3fcd5e84","line":285,"in_reply_to":"5f7c97a3_4cc45af5","updated":"2018-05-16 03:40:19.000000000","message":"Done","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            # Dispatch to the driver"},{"line_number":285,"context_line":"            LOG.info(\"Sending update Pool %s to provider %s\", id, provider)"},{"line_number":286,"context_line":"            driver_utils.call_provider("},{"line_number":287,"context_line":"                provider, driver.pool_update,"},{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            # Update the database to reflect what the driver just accepted"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0cbae26c","line":287,"updated":"2018-05-14 18:58:56.000000000","message":"`provider` -\u003e `driver.name`","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            # Dispatch to the driver"},{"line_number":285,"context_line":"            LOG.info(\"Sending update Pool %s to provider %s\", id, provider)"},{"line_number":286,"context_line":"            driver_utils.call_provider("},{"line_number":287,"context_line":"                provider, driver.pool_update,"},{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            # Update the database to reflect what the driver just accepted"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_dfc78a63","line":287,"in_reply_to":"5f7c97a3_0cbae26c","updated":"2018-05-16 03:40:19.000000000","message":"Done","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            # Update the database to reflect what the driver just accepted"},{"line_number":291,"context_line":"            pool.provisioning_status \u003d constants.PENDING_UPDATE"},{"line_number":292,"context_line":"            db_pool_dict \u003d pool.to_dict(render_unsets\u003dFalse)"},{"line_number":293,"context_line":"            self.repositories.update_pool_and_sp(lock_session, id,"},{"line_number":294,"context_line":"                                                 db_pool_dict)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8c535239","line":291,"updated":"2018-05-14 18:58:56.000000000","message":"This is happening AFTER we make the call to the driver... We have a lock session for this row still, is it possible for the driver finish and callback to set everything to ACTIVE before we commit? I thought the provider driver call should be last, but I\u0027m guessing it\u0027s here because you don\u0027t want the DB update to happen if the provider explodes?\nI guess this SHOULD be so quick that it\u0027ll never be a problem...","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                driver_dm.Pool.from_dict(provider_pool_dict))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            # Update the database to reflect what the driver just accepted"},{"line_number":291,"context_line":"            pool.provisioning_status \u003d constants.PENDING_UPDATE"},{"line_number":292,"context_line":"            db_pool_dict \u003d pool.to_dict(render_unsets\u003dFalse)"},{"line_number":293,"context_line":"            self.repositories.update_pool_and_sp(lock_session, id,"},{"line_number":294,"context_line":"                                                 db_pool_dict)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_5fa93a8d","line":291,"in_reply_to":"5f7c97a3_8c535239","updated":"2018-05-16 03:40:19.000000000","message":"Yeah, I think before or after doesn\u0027t matter, but it is a good point that we will have the record locked.  We should add commentary to the driver developer doc that advises they should return from the driver call before updating the status.","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"}],"octavia/tests/functional/api/v2/test_pool.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"923a64da66bd618f2e05286be08525cfff554def","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            \u0027project_id\u0027: self.project_id}"},{"line_number":738,"context_line":"        response \u003d self.post(self.POOLS_PATH, self._build_body(lb_pool),"},{"line_number":739,"context_line":"                             status\u003d500)"},{"line_number":740,"context_line":"        self.assertIn(\u0027Provider \\\u0027bad_driver\\\u0027 reports error: broken\u0027,"},{"line_number":741,"context_line":"                      response.json.get(\u0027faultstring\u0027))"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"    def test_create_over_quota(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_ac108e58","line":740,"updated":"2018-05-14 18:58:56.000000000","message":"erg, we HAVE to expect 500s from bad provider stuff? I hate exposing even the possibility for a 500 from our API, but ... maybe this is correct...","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b5c396ff13e070663d0f2c6ddbcd6b9a0033915d","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            \u0027project_id\u0027: self.project_id}"},{"line_number":738,"context_line":"        response \u003d self.post(self.POOLS_PATH, self._build_body(lb_pool),"},{"line_number":739,"context_line":"                             status\u003d500)"},{"line_number":740,"context_line":"        self.assertIn(\u0027Provider \\\u0027bad_driver\\\u0027 reports error: broken\u0027,"},{"line_number":741,"context_line":"                      response.json.get(\u0027faultstring\u0027))"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"    def test_create_over_quota(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bfc16e56","line":740,"in_reply_to":"5f7c97a3_ac108e58","updated":"2018-05-16 03:40:19.000000000","message":"Let\u0027s talk about these and decide in the cleanup patch.","commit_id":"5da6291b4a6846255d5bcc81b74ce0bdedeaf828"}]}
