)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"e6574d2ccffcf65a9ce12a8fc1651655de33c554","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Masahito Muroi \u003cmuroi.masahito@lab.ntt.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-01-29 15:21:11 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support on_start and on_end method in FloatinIPPlugin class"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8628a567a431d21e92fc94987ecd49497618ddfb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9fdfeff1_d2cf8b26","line":7,"range":{"start_line":7,"start_character":38,"end_line":7,"end_character":53},"updated":"2019-01-31 17:48:37.000000000","message":"FloatingIPPlugin","commit_id":"55dedfa2c2775fe271aa78f07976617c80c2fcbb"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"662d9b7e1933f6fcce4e4b0b30d65b09b1915615","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Masahito Muroi \u003cmuroi.masahito@lab.ntt.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-01-29 15:21:11 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support on_start and on_end method in FloatinIPPlugin class"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8628a567a431d21e92fc94987ecd49497618ddfb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9fdfeff1_604b1cb0","line":7,"range":{"start_line":7,"start_character":38,"end_line":7,"end_character":53},"in_reply_to":"9fdfeff1_d2cf8b26","updated":"2019-02-06 04:53:53.000000000","message":"Done","commit_id":"55dedfa2c2775fe271aa78f07976617c80c2fcbb"}],"blazar/plugins/floatingips/floatingip_plugin.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"48c1bc3801127d798852f6e874843892ed22c588","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            fip \u003d db_api.floatingip_get(alloc[\u0027floatingip_id\u0027])"},{"line_number":107,"context_line":"            fip_pool.create_reserved_floatingip("},{"line_number":108,"context_line":"                fip[\u0027subnet_id\u0027], fip[\u0027floating_ip_address\u0027],"},{"line_number":109,"context_line":"                ctx.project_id, fip_reservation[\u0027reservation_id\u0027])"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def on_end(self, resource_id):"},{"line_number":112,"context_line":"        fip_reservation \u003d db_api.fip_reservation_get(resource_id)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5fc1f717_147dbee6","line":109,"updated":"2019-03-20 08:27:54.000000000","message":"Oh, this reminds me what we had in https://review.openstack.org/#/c/625724/.\n\ncreate_reserved_floatingip*s*() would be better than create_reserved_floatingip(), IMO","commit_id":"9e963f838fcfe1fa246651ef9668960551c734bd"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"48c1bc3801127d798852f6e874843892ed22c588","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        fip_pool \u003d neutron.FloatingIPPool(fip_reservation[\u0027network_id\u0027])"},{"line_number":117,"context_line":"        for alloc in allocations:"},{"line_number":118,"context_line":"            fip \u003d db_api.floatingip_get(alloc[\u0027floatingip_id\u0027])"},{"line_number":119,"context_line":"            fip_pool.delete_reserved_floatingip(fip[\u0027floating_ip_address\u0027])"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def _matching_fips(self, network_id, fip_addresses, amount,"},{"line_number":122,"context_line":"                       start_date, end_date):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5fc1f717_34755afb","line":119,"range":{"start_line":119,"start_character":21,"end_line":119,"end_character":47},"updated":"2019-03-20 08:27:54.000000000","message":"ditto","commit_id":"9e963f838fcfe1fa246651ef9668960551c734bd"}],"blazar/utils/openstack/neutron.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"e6574d2ccffcf65a9ce12a8fc1651655de33c554","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        }"},{"line_number":119,"context_line":"        self.neutron.replace_tag(\u0027floatingips\u0027, fip[\u0027id\u0027], body)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def delete_reserved_floatingip(self, address):"},{"line_number":122,"context_line":"        query \u003d {\u0027floating_ip_address\u0027: address}"},{"line_number":123,"context_line":"        fips \u003d self.neutron.list_floatingips(**query)[\u0027floatingips\u0027]"},{"line_number":124,"context_line":"        if not fips:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_1298b319","line":121,"updated":"2019-01-31 17:48:37.000000000","message":"According to the last comments in the spec, it is possible for the same IP address to be used in two separate networks, so we want both network and address here?","commit_id":"55dedfa2c2775fe271aa78f07976617c80c2fcbb"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"662d9b7e1933f6fcce4e4b0b30d65b09b1915615","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        }"},{"line_number":119,"context_line":"        self.neutron.replace_tag(\u0027floatingips\u0027, fip[\u0027id\u0027], body)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def delete_reserved_floatingip(self, address):"},{"line_number":122,"context_line":"        query \u003d {\u0027floating_ip_address\u0027: address}"},{"line_number":123,"context_line":"        fips \u003d self.neutron.list_floatingips(**query)[\u0027floatingips\u0027]"},{"line_number":124,"context_line":"        if not fips:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_a0510465","line":121,"in_reply_to":"9fdfeff1_1298b319","updated":"2019-02-06 04:53:53.000000000","message":"Nice catch. Done","commit_id":"55dedfa2c2775fe271aa78f07976617c80c2fcbb"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"48c1bc3801127d798852f6e874843892ed22c588","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        }"},{"line_number":126,"context_line":"        fips \u003d self.neutron.list_floatingips(**query)[\u0027floatingips\u0027]"},{"line_number":127,"context_line":"        if not fips:"},{"line_number":128,"context_line":"            # The floating ip address already deleted by the user."},{"line_number":129,"context_line":"            return None"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        fip \u003d next(iter(fips))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5fc1f717_34fc7a3d","line":128,"range":{"start_line":128,"start_character":12,"end_line":128,"end_character":66},"updated":"2019-03-20 08:27:54.000000000","message":"nit: This warrants a debug or warning message, IMO","commit_id":"9e963f838fcfe1fa246651ef9668960551c734bd"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"48c1bc3801127d798852f6e874843892ed22c588","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        fips \u003d self.neutron.list_floatingips(**query)[\u0027floatingips\u0027]"},{"line_number":127,"context_line":"        if not fips:"},{"line_number":128,"context_line":"            # The floating ip address already deleted by the user."},{"line_number":129,"context_line":"            return None"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        fip \u003d next(iter(fips))"},{"line_number":132,"context_line":"        if fip[\u0027port_id\u0027]:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5fc1f717_94844eb3","line":129,"range":{"start_line":129,"start_character":19,"end_line":129,"end_character":23},"updated":"2019-03-20 08:27:54.000000000","message":"nit: not needed","commit_id":"9e963f838fcfe1fa246651ef9668960551c734bd"}]}
