)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c74c265d2190b20b15cfd10574b7f2e7f0b41e71","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add floating IP qos_policy actions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now we can associate a qos policy to one floating IP, and"},{"line_number":10,"context_line":"dissociate it. The commands are:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  $ openstack floating ip create --qos-policy ..."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ff82abbf_f9dc8275","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":40},"updated":"2017-11-22 21:28:52.000000000","message":"the","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c74c265d2190b20b15cfd10574b7f2e7f0b41e71","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  $ openstack floating ip unset --qos-policy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"These commands are based on the neutron patch:"},{"line_number":18,"context_line":"https://review.openstack.org/#/c/424466/"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Partially-Implements blueprint: floating-ip-rate-limit"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ff82abbf_d98c1e81","line":18,"updated":"2017-11-22 21:28:52.000000000","message":"better would be IMHO to put here change-id instead of link to Gerrit","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"}],"doc/source/cli/command-objects/floating-ip.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. option:: --qos-policy \u003cqos-policy\u003e"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    QoS policy to attach to this floating IP (name or ID)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    *Network version 2 only*"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_5e179452","line":52,"updated":"2017-11-22 21:27:27.000000000","message":"IMHO should be \"to the floating IP\" instead of \"this\"","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":".. option:: --qos-policy \u003cqos-policy\u003e"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    Attach QoS policy to this floating IP (name or ID)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":".. option:: --no-qos-policy"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_fe0d483e","line":177,"updated":"2017-11-22 21:27:27.000000000","message":"same here","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":".. option:: --no-qos-policy"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    Remove the QoS policy attached to this floating IP"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":".. _floating_ip_set-floating-ip:"},{"line_number":184,"context_line":".. describe:: \u003cfloating-ip\u003e"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_be07c01c","line":181,"updated":"2017-11-22 21:27:27.000000000","message":"and here","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"}],"openstackclient/network/v2/floating_ip.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        parser.add_argument("},{"line_number":177,"context_line":"            \u0027--qos-policy\u0027,"},{"line_number":178,"context_line":"            metavar\u003d\u0027\u003cqos-policy\u003e\u0027,"},{"line_number":179,"context_line":"            help\u003d_(\"Attach QoS policy to this floating IP (name or ID)\")"},{"line_number":180,"context_line":"        )"},{"line_number":181,"context_line":"        parser.add_argument("},{"line_number":182,"context_line":"            \u0027--description\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_d9173e45","line":179,"range":{"start_line":179,"start_character":41,"end_line":179,"end_character":45},"updated":"2017-11-22 21:27:27.000000000","message":"s/this/the","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        parser.add_argument("},{"line_number":475,"context_line":"            \u0027--qos-policy\u0027,"},{"line_number":476,"context_line":"            metavar\u003d\u0027\u003cqos-policy\u003e\u0027,"},{"line_number":477,"context_line":"            help\u003d_(\"Attach QoS policy to this floating IP (name or ID)\")"},{"line_number":478,"context_line":"        )"},{"line_number":479,"context_line":"        parser.add_argument("},{"line_number":480,"context_line":"            \u0027--no-qos-policy\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_79287285","line":477,"range":{"start_line":477,"start_character":41,"end_line":477,"end_character":45},"updated":"2017-11-22 21:27:27.000000000","message":"the","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":479,"context_line":"        parser.add_argument("},{"line_number":480,"context_line":"            \u0027--no-qos-policy\u0027,"},{"line_number":481,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":482,"context_line":"            help\u003d_(\"Remove the QoS policy attached to this floating IP\")"},{"line_number":483,"context_line":"        )"},{"line_number":484,"context_line":"        return parser"},{"line_number":485,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_3922eaa5","line":482,"range":{"start_line":482,"start_character":54,"end_line":482,"end_character":58},"updated":"2017-11-22 21:27:27.000000000","message":"the","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f319396d9deaa2fb88857f33db2d57a21ac58a9b","unresolved":false,"context_lines":[{"line_number":480,"context_line":"            \u0027--no-qos-policy\u0027,"},{"line_number":481,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":482,"context_line":"            help\u003d_(\"Remove the QoS policy attached to the floating IP\")"},{"line_number":483,"context_line":"        )"},{"line_number":484,"context_line":"        return parser"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_cfa69b54","line":483,"updated":"2018-01-04 09:03:30.000000000","message":"In my understanding, --no-qos-policy and --qos-policy cannot be specified at the same time. Could you create a mutually exclusive group?\n\n  qos_policy_group \u003d parser.add_mutually_exclusive_group()\n  qos_policy_group.add_argument(....)","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b1712dc43ff21f4192491a6a8ce3d15588407189","unresolved":false,"context_lines":[{"line_number":480,"context_line":"            \u0027--no-qos-policy\u0027,"},{"line_number":481,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":482,"context_line":"            help\u003d_(\"Remove the QoS policy attached to the floating IP\")"},{"line_number":483,"context_line":"        )"},{"line_number":484,"context_line":"        return parser"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_239f2004","line":483,"in_reply_to":"9f91af0f_cfa69b54","updated":"2018-01-04 12:17:21.000000000","message":"Done","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"}],"openstackclient/tests/unit/network/v2/test_floating_ip_network.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e9e9fe4cf0b925585a92137d561b634fe022d936","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_create_floating_ip_with_qos(self):"},{"line_number":203,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":204,"context_line":"        self.network.find_qos_policy \u003d mock.Mock(return_value\u003dqos_policy)"},{"line_number":205,"context_line":"        arglist \u003d ["},{"line_number":206,"context_line":"            \u0027--qos-policy\u0027, qos_policy.id,"},{"line_number":207,"context_line":"            self.floating_ip.floating_network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf8cb3f7_bf06f085","line":204,"range":{"start_line":204,"start_character":7,"end_line":204,"end_character":73},"updated":"2017-12-25 04:45:47.000000000","message":"There is no need for a new Mock object. Let\u0027s use:\n\n  self.network.find_qos_policy.return_value \u003d qos_policy","commit_id":"5b9e9e976e295d395bec6fd03063820ab6de8c6f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5ea3c7d2d19754686e2047dc63222c939d2f32b4","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_create_floating_ip_with_qos(self):"},{"line_number":203,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":204,"context_line":"        self.network.find_qos_policy \u003d mock.Mock(return_value\u003dqos_policy)"},{"line_number":205,"context_line":"        arglist \u003d ["},{"line_number":206,"context_line":"            \u0027--qos-policy\u0027, qos_policy.id,"},{"line_number":207,"context_line":"            self.floating_ip.floating_network_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf8cb3f7_e2929f4b","line":204,"range":{"start_line":204,"start_character":7,"end_line":204,"end_character":73},"in_reply_to":"bf8cb3f7_bf06f085","updated":"2017-12-25 06:43:27.000000000","message":"Done","commit_id":"5b9e9e976e295d395bec6fd03063820ab6de8c6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e9e9fe4cf0b925585a92137d561b634fe022d936","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        self.network.create_ip.assert_called_once_with(**{"},{"line_number":218,"context_line":"            \u0027floating_network_id\u0027: self.floating_ip.floating_network_id,"},{"line_number":219,"context_line":"            \u0027qos_policy_id\u0027: qos_policy.id,"},{"line_number":220,"context_line":"        })"},{"line_number":221,"context_line":"        self.assertEqual(self.columns, columns)"},{"line_number":222,"context_line":"        self.assertEqual(self.data, data)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf8cb3f7_3ffae074","line":220,"range":{"start_line":217,"start_character":55,"end_line":220,"end_character":9},"updated":"2017-12-25 04:45:47.000000000","message":"(no action needed)\nActually there is no need to use **{...} style, but the other tests in this test class already use the same style, so I am okay with this.","commit_id":"5b9e9e976e295d395bec6fd03063820ab6de8c6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e9e9fe4cf0b925585a92137d561b634fe022d936","unresolved":false,"context_lines":[{"line_number":709,"context_line":"    )"},{"line_number":710,"context_line":"    def test_port_and_qos_policy_option(self, find_floating_ip_mock):"},{"line_number":711,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":712,"context_line":"        self.network.find_qos_policy \u003d mock.Mock(return_value\u003dqos_policy)"},{"line_number":713,"context_line":"        find_floating_ip_mock.side_effect \u003d ["},{"line_number":714,"context_line":"            self.floating_ip,"},{"line_number":715,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf8cb3f7_bf2b50e9","line":712,"updated":"2017-12-25 04:45:47.000000000","message":"Same for L.204","commit_id":"5b9e9e976e295d395bec6fd03063820ab6de8c6f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5ea3c7d2d19754686e2047dc63222c939d2f32b4","unresolved":false,"context_lines":[{"line_number":709,"context_line":"    )"},{"line_number":710,"context_line":"    def test_port_and_qos_policy_option(self, find_floating_ip_mock):"},{"line_number":711,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":712,"context_line":"        self.network.find_qos_policy \u003d mock.Mock(return_value\u003dqos_policy)"},{"line_number":713,"context_line":"        find_floating_ip_mock.side_effect \u003d ["},{"line_number":714,"context_line":"            self.floating_ip,"},{"line_number":715,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf8cb3f7_8299536f","line":712,"in_reply_to":"bf8cb3f7_bf2b50e9","updated":"2017-12-25 06:43:27.000000000","message":"Done","commit_id":"5b9e9e976e295d395bec6fd03063820ab6de8c6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f319396d9deaa2fb88857f33db2d57a21ac58a9b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":36,"context_line":"        # Get a shortcut to the DomainManager Mock"},{"line_number":37,"context_line":"        self.domains_mock \u003d self.app.client_manager.identity.domains"},{"line_number":38,"context_line":"        self.network.find_qos_policy \u003d mock.Mock()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_c2a7a44f","line":38,"updated":"2018-01-04 09:03:30.000000000","message":"I am not a big fan of preparing find_qos_policy mock in the base class.\nSee my suggestion below.","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b1712dc43ff21f4192491a6a8ce3d15588407189","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":36,"context_line":"        # Get a shortcut to the DomainManager Mock"},{"line_number":37,"context_line":"        self.domains_mock \u003d self.app.client_manager.identity.domains"},{"line_number":38,"context_line":"        self.network.find_qos_policy \u003d mock.Mock()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_c3a67454","line":38,"in_reply_to":"9f91af0f_c2a7a44f","updated":"2018-01-04 12:17:21.000000000","message":"Aha, please see your former comment [1]. And I will revert this back to patch set 3.\n\n\n[1] https://review.openstack.org/#/c/517845/3/openstackclient/tests/unit/network/v2/test_floating_ip_network.py@204","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7048f35cbb932bdb28df08d90fe1ef997c242180","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":36,"context_line":"        # Get a shortcut to the DomainManager Mock"},{"line_number":37,"context_line":"        self.domains_mock \u003d self.app.client_manager.identity.domains"},{"line_number":38,"context_line":"        self.network.find_qos_policy \u003d mock.Mock()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class TestCreateFloatingIPNetwork(TestFloatingIPNetwork):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_f52557ac","line":38,"in_reply_to":"9f91af0f_c3a67454","updated":"2018-01-05 08:13:26.000000000","message":"Sorry, I seemed to be confused and thought self.network.find_qos_policy was already defined, but I completely misread... You\u0027re right.","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f319396d9deaa2fb88857f33db2d57a21ac58a9b","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_create_floating_ip_with_qos(self):"},{"line_number":204,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":205,"context_line":"        self.network.find_qos_policy.return_value \u003d qos_policy"},{"line_number":206,"context_line":"        arglist \u003d ["},{"line_number":207,"context_line":"            \u0027--qos-policy\u0027, qos_policy.id,"},{"line_number":208,"context_line":"            self.floating_ip.floating_network_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_226c5007","line":205,"range":{"start_line":205,"start_character":8,"end_line":205,"end_character":62},"updated":"2018-01-04 09:03:30.000000000","message":"You can do the following:\n\n  self.netwrok.find_qos_policy \u003d mock.Mock(return_value\u003dqos_policy)\n\nIf so, L.38 would be unnecessary.","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b1712dc43ff21f4192491a6a8ce3d15588407189","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_create_floating_ip_with_qos(self):"},{"line_number":204,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":205,"context_line":"        self.network.find_qos_policy.return_value \u003d qos_policy"},{"line_number":206,"context_line":"        arglist \u003d ["},{"line_number":207,"context_line":"            \u0027--qos-policy\u0027, qos_policy.id,"},{"line_number":208,"context_line":"            self.floating_ip.floating_network_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_236de003","line":205,"range":{"start_line":205,"start_character":8,"end_line":205,"end_character":62},"in_reply_to":"9f91af0f_226c5007","updated":"2018-01-04 12:17:21.000000000","message":"Aha, please see your former comment [1]. And I will revert this back to patch set 3.\n\n\n[1] https://review.openstack.org/#/c/517845/3/openstackclient/tests/unit/network/v2/test_floating_ip_network.py@204","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f319396d9deaa2fb88857f33db2d57a21ac58a9b","unresolved":false,"context_lines":[{"line_number":710,"context_line":"    )"},{"line_number":711,"context_line":"    def test_port_and_qos_policy_option(self, find_floating_ip_mock):"},{"line_number":712,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":713,"context_line":"        self.network.find_qos_policy.return_value \u003d qos_policy"},{"line_number":714,"context_line":"        find_floating_ip_mock.side_effect \u003d ["},{"line_number":715,"context_line":"            self.floating_ip,"},{"line_number":716,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_427154e0","line":713,"updated":"2018-01-04 09:03:30.000000000","message":"Same for L.204.","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b1712dc43ff21f4192491a6a8ce3d15588407189","unresolved":false,"context_lines":[{"line_number":710,"context_line":"    )"},{"line_number":711,"context_line":"    def test_port_and_qos_policy_option(self, find_floating_ip_mock):"},{"line_number":712,"context_line":"        qos_policy \u003d network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()"},{"line_number":713,"context_line":"        self.network.find_qos_policy.return_value \u003d qos_policy"},{"line_number":714,"context_line":"        find_floating_ip_mock.side_effect \u003d ["},{"line_number":715,"context_line":"            self.floating_ip,"},{"line_number":716,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_03721ce4","line":713,"in_reply_to":"9f91af0f_427154e0","updated":"2018-01-04 12:17:21.000000000","message":"Aha, please see your former comment [1]. And I will revert this back to patch set 3.\n\n\n[1] https://review.openstack.org/#/c/517845/3/openstackclient/tests/unit/network/v2/test_floating_ip_network.py@204","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"}],"releasenotes/notes/bp-neutron-floating-ip-rate-limit-8387c040a6fb9acd.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"324d418bff839af5e38efc592e0a02b571d5790c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now we can associate a qos policy to one floating IP, and"},{"line_number":5,"context_line":"    dissociate it."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ff82abbf_59a80eda","line":4,"updated":"2017-11-22 21:27:27.000000000","message":"I\u0027m not sure if it should be written in so \"personal\" way.\nMaybe better would be something like \"QoS policy can be associated/removed to floating IP\" or something like that","commit_id":"cdda12d185b683507e84f30de04a72e44cd94050"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f319396d9deaa2fb88857f33db2d57a21ac58a9b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for attach qos policy to the floating IP, and remove the qos"},{"line_number":5,"context_line":"    policy attached to the floating IP."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f91af0f_922bd880","line":5,"updated":"2018-01-04 09:03:30.000000000","message":"Could you include the option name here? It makes readers understand this more easily.","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b1712dc43ff21f4192491a6a8ce3d15588407189","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for attach qos policy to the floating IP, and remove the qos"},{"line_number":5,"context_line":"    policy attached to the floating IP."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f91af0f_c38d14d4","line":5,"in_reply_to":"9f91af0f_922bd880","updated":"2018-01-04 12:17:21.000000000","message":"Done","commit_id":"d31950420cac2fde4bb26dfc755b8ec80ccc6c27"}]}
