)]}'
{"masakari/db/sqlalchemy/api.py":[{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            models.FailoverSegment.service_type.in_(filters[\u0027service_type\u0027]))"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    if \u0027host\u0027 in filters:"},{"line_number":214,"context_line":"        hosts \u003d model_query(context, models.Host).filter("},{"line_number":215,"context_line":"            models.Host.name.in_(filters[\u0027host\u0027])).options("},{"line_number":216,"context_line":"            joinedload(\u0027failover_segment\u0027))"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        failover_segments \u003d []"},{"line_number":219,"context_line":"        for host in hosts.all():"},{"line_number":220,"context_line":"            failover_segments.append(host.failover_segment.uuid)"},{"line_number":221,"context_line":"        query \u003d query.filter("},{"line_number":222,"context_line":"            models.FailoverSegment.uuid.in_(failover_segments))"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    marker_row \u003d None"},{"line_number":225,"context_line":"    if marker is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_437de7e2","line":222,"range":{"start_line":214,"start_character":8,"end_line":222,"end_character":63},"updated":"2020-02-17 07:30:48.000000000","message":"Here ,you are executing another query to get the failover segments matching host.\n\nI think It\u0027s possible to get failover segments in a single query using inner join.\n\nselect * from failover_segments where recovery_method in (\u0027rh_priority\u0027, \u0027reserved_host\u0027) and uuid in (select failover_segment_id from hosts where name in (\u0027host1\u0027, \u0027host2\u0027));","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            models.FailoverSegment.service_type.in_(filters[\u0027service_type\u0027]))"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    if \u0027host\u0027 in filters:"},{"line_number":214,"context_line":"        hosts \u003d model_query(context, models.Host).filter("},{"line_number":215,"context_line":"            models.Host.name.in_(filters[\u0027host\u0027])).options("},{"line_number":216,"context_line":"            joinedload(\u0027failover_segment\u0027))"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        failover_segments \u003d []"},{"line_number":219,"context_line":"        for host in hosts.all():"},{"line_number":220,"context_line":"            failover_segments.append(host.failover_segment.uuid)"},{"line_number":221,"context_line":"        query \u003d query.filter("},{"line_number":222,"context_line":"            models.FailoverSegment.uuid.in_(failover_segments))"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    marker_row \u003d None"},{"line_number":225,"context_line":"    if marker is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_985a651d","line":222,"range":{"start_line":214,"start_character":8,"end_line":222,"end_character":63},"in_reply_to":"3fa7e38b_437de7e2","updated":"2020-02-17 14:50:52.000000000","message":"Done, removed another query call @214","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"}],"masakari/tests/unit/api/openstack/ha/test_segments.py":[{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \"\"\"Test Case for failover segment api.\"\"\""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    bad_request \u003d exception.ValidationError"},{"line_number":82,"context_line":"    api_version \u003d \u00271.2\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def setUp(self):"},{"line_number":85,"context_line":"        super(FailoverSegmentTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_635d837a","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":23},"updated":"2020-02-17 07:30:48.000000000","message":"Move this line and lines 89-91 to FailoverSegmentV1_2_TestCase class.","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \"\"\"Test Case for failover segment api.\"\"\""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    bad_request \u003d exception.ValidationError"},{"line_number":82,"context_line":"    api_version \u003d \u00271.2\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def setUp(self):"},{"line_number":85,"context_line":"        super(FailoverSegmentTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f8a279f9","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":23},"in_reply_to":"3fa7e38b_635d837a","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.controller \u003d segments.SegmentsController()"},{"line_number":87,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments\u0027,"},{"line_number":88,"context_line":"                                           use_admin_context\u003dTrue)"},{"line_number":89,"context_line":"        self.req12 \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dhost_1\u0027,"},{"line_number":90,"context_line":"                                             use_admin_context\u003dTrue,"},{"line_number":91,"context_line":"                                             version\u003dself.api_version)"},{"line_number":92,"context_line":"        self.context \u003d self.req.environ[\u0027masakari.context\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c341d78f","line":89,"range":{"start_line":89,"start_character":59,"end_line":89,"end_character":68},"updated":"2020-02-17 07:30:48.000000000","message":"This should be host.","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.controller \u003d segments.SegmentsController()"},{"line_number":87,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments\u0027,"},{"line_number":88,"context_line":"                                           use_admin_context\u003dTrue)"},{"line_number":89,"context_line":"        self.req12 \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dhost_1\u0027,"},{"line_number":90,"context_line":"                                             use_admin_context\u003dTrue,"},{"line_number":91,"context_line":"                                             version\u003dself.api_version)"},{"line_number":92,"context_line":"        self.context \u003d self.req.environ[\u0027masakari.context\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_98afc5e0","line":89,"range":{"start_line":89,"start_character":59,"end_line":89,"end_character":68},"in_reply_to":"3fa7e38b_c341d78f","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":448,"context_line":"class FailoverSegmentV1_2_TestCase(FailoverSegmentTestCase):"},{"line_number":449,"context_line":"    \"\"\"Test Case for failover segment api for version 1.2\"\"\""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    @mock.patch.object(ha_api.FailoverSegmentAPI, \u0027get_all\u0027)"},{"line_number":452,"context_line":"    @mock.patch.object(host_obj.Host, \u0027get_by_name\u0027)"},{"line_number":453,"context_line":"    def test_index_valid_host(self, mock_get_host, mock_get_all):"},{"line_number":454,"context_line":"        mock_get_host.return_value \u003d HOST"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e383b3a8","line":451,"range":{"start_line":451,"start_character":51,"end_line":451,"end_character":58},"updated":"2020-02-17 07:30:48.000000000","message":"Maybe the previous tests written are not correct.\n\nIMO, you should mock FailoverSegmentList-\u003eget_all method.\n\nAlso, assert on parameters passed to the get_all method from the controller.index method using `assert_called_once_with` method.","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":448,"context_line":"class FailoverSegmentV1_2_TestCase(FailoverSegmentTestCase):"},{"line_number":449,"context_line":"    \"\"\"Test Case for failover segment api for version 1.2\"\"\""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    @mock.patch.object(ha_api.FailoverSegmentAPI, \u0027get_all\u0027)"},{"line_number":452,"context_line":"    @mock.patch.object(host_obj.Host, \u0027get_by_name\u0027)"},{"line_number":453,"context_line":"    def test_index_valid_host(self, mock_get_host, mock_get_all):"},{"line_number":454,"context_line":"        mock_get_host.return_value \u003d HOST"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_587b8d7c","line":451,"range":{"start_line":451,"start_character":51,"end_line":451,"end_character":58},"in_reply_to":"3fa7e38b_e383b3a8","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                                  _make_segment_obj(result))"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    @mock.patch.object(ha_api.FailoverSegmentAPI, \u0027get_all\u0027)"},{"line_number":463,"context_line":"    def test_index_invalid_host(self, mock_get_all):"},{"line_number":464,"context_line":"        mock_get_all.return_value \u003d []"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dfake_mini\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e3d5f3b8","line":463,"range":{"start_line":463,"start_character":8,"end_line":463,"end_character":31},"updated":"2020-02-17 07:30:48.000000000","message":"Rename this test to test_index_query_non_existing_host","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                                  _make_segment_obj(result))"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    @mock.patch.object(ha_api.FailoverSegmentAPI, \u0027get_all\u0027)"},{"line_number":463,"context_line":"    def test_index_invalid_host(self, mock_get_all):"},{"line_number":464,"context_line":"        mock_get_all.return_value \u003d []"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dfake_mini\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f88b5967","line":463,"range":{"start_line":463,"start_character":8,"end_line":463,"end_character":31},"in_reply_to":"3fa7e38b_e3d5f3b8","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":463,"context_line":"    def test_index_invalid_host(self, mock_get_all):"},{"line_number":464,"context_line":"        mock_get_all.return_value \u003d []"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dfake_mini\u0027,"},{"line_number":467,"context_line":"                                      use_admin_context\u003dTrue,"},{"line_number":468,"context_line":"                                      version\u003d\u00271.2\u0027)"},{"line_number":469,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_63c26304","line":466,"range":{"start_line":466,"start_character":52,"end_line":466,"end_character":61},"updated":"2020-02-17 07:30:48.000000000","message":"This should be host.","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":463,"context_line":"    def test_index_invalid_host(self, mock_get_all):"},{"line_number":464,"context_line":"        mock_get_all.return_value \u003d []"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v1/segments?host_name\u003dfake_mini\u0027,"},{"line_number":467,"context_line":"                                      use_admin_context\u003dTrue,"},{"line_number":468,"context_line":"                                      version\u003d\u00271.2\u0027)"},{"line_number":469,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9888256d","line":466,"range":{"start_line":466,"start_character":52,"end_line":466,"end_character":61},"in_reply_to":"3fa7e38b_63c26304","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","unresolved":false,"context_lines":[{"line_number":468,"context_line":"                                      version\u003d\u00271.2\u0027)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        result \u003d self.controller.index(req)"},{"line_number":471,"context_line":"        self.assertEqual(result[\u0027segments\u0027], [])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_63eb437a","line":471,"range":{"start_line":471,"start_character":25,"end_line":471,"end_character":47},"updated":"2020-02-17 07:30:48.000000000","message":"General standard followed is self.assertEqual(expected, actual)","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","unresolved":false,"context_lines":[{"line_number":468,"context_line":"                                      version\u003d\u00271.2\u0027)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        result \u003d self.controller.index(req)"},{"line_number":471,"context_line":"        self.assertEqual(result[\u0027segments\u0027], [])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_58e06d2e","line":471,"range":{"start_line":471,"start_character":25,"end_line":471,"end_character":47},"in_reply_to":"3fa7e38b_63eb437a","updated":"2020-02-17 14:50:52.000000000","message":"Done","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"}],"releasenotes/notes/host-input-parameter-to-segement-list-62878af16b541f7d.yaml":[{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"67a53d5dcaa1980b40e379d2d6344ae883b79ff5","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":"    Added host query parameter to GET /segments REST API to filter out"},{"line_number":5,"context_line":"    segments based on host input parameter which will be returned in a new"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_23ad4ba3","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2020-02-17 07:30:48.000000000","message":"Add a new blueprint for adding support  for host query parameter for ``GET /segments`` API.","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"},{"author":{"_account_id":27302,"name":"Shilpa Devharakar","email":"shilpa.devharakar@nttdata.com","username":"shilpa.devharakar"},"change_message_id":"985d05efd9d468b5b53db6c627460f48d24df7b0","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":"    Added host query parameter to GET /segments REST API to filter out"},{"line_number":5,"context_line":"    segments based on host input parameter which will be returned in a new"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_383d718d","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"3fa7e38b_23ad4ba3","updated":"2020-02-17 14:50:52.000000000","message":"Added bluprint as suggested and referenced in commit message:\nhttps://blueprints.launchpad.net/masakari/+spec/host-input-parameter-to-segment-list","commit_id":"c91791a70aaec5e676460e2a39f2b26c78ecd74d"}]}
