)]}'
{"java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepoImpl.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      String orderByPart \u003d \"\";"},{"line_number":169,"context_line":"      if (sortBy !\u003d null \u0026\u0026 !sortBy.isEmpty()) {"},{"line_number":170,"context_line":"        orderByPart \u003d \" order by \" + COMMA_JOINER.join(sortBy);"},{"line_number":171,"context_line":"        if (!sortBy.contains(\"id\")) {"},{"line_number":172,"context_line":"          orderByPart \u003d orderByPart + \",id\";"},{"line_number":173,"context_line":"        }"},{"line_number":174,"context_line":"      } else {"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_1b418638","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":37},"updated":"2016-01-14 01:47:08.000000000","message":"Does this work right if the user specifies \"id desc\"?","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      String orderByPart \u003d \"\";"},{"line_number":169,"context_line":"      if (sortBy !\u003d null \u0026\u0026 !sortBy.isEmpty()) {"},{"line_number":170,"context_line":"        orderByPart \u003d \" order by \" + COMMA_JOINER.join(sortBy);"},{"line_number":171,"context_line":"        if (!sortBy.contains(\"id\")) {"},{"line_number":172,"context_line":"          orderByPart \u003d orderByPart + \",id\";"},{"line_number":173,"context_line":"        }"},{"line_number":174,"context_line":"      } else {"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_e50cdfed","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":37},"in_reply_to":"da6ed579_1b418638","updated":"2016-01-14 19:15:52.000000000","message":"It does not, fixed.","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}],"java/src/main/java/monasca/api/resource/AlarmResource.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    return Links.paginateAlarming(paging_limit, Links.hydrate(alarms, uriInfo), uriInfo);"},{"line_number":206,"context_line":"  }"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  private List\u003cString\u003e parseAndValidateSortBy(String sortBy) {"},{"line_number":209,"context_line":"    List\u003cString\u003e sortByList \u003d new ArrayList\u003c\u003e();"},{"line_number":210,"context_line":"    if (sortBy !\u003d null \u0026\u0026 !sortBy.isEmpty()) {"},{"line_number":211,"context_line":"      List\u003cString\u003e fieldList \u003d Lists.newArrayList(Splitter.on(\u0027,\u0027).omitEmptyStrings().trimResults().split(sortBy));"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_f8c6f898","line":208,"range":{"start_line":208,"start_character":23,"end_line":208,"end_character":45},"updated":"2016-01-14 01:47:08.000000000","message":"This practically the same code as in AlarmDefinitionResource.java. You should move it into a utility class","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    return Links.paginateAlarming(paging_limit, Links.hydrate(alarms, uriInfo), uriInfo);"},{"line_number":206,"context_line":"  }"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  private List\u003cString\u003e parseAndValidateSortBy(String sortBy) {"},{"line_number":209,"context_line":"    List\u003cString\u003e sortByList \u003d new ArrayList\u003c\u003e();"},{"line_number":210,"context_line":"    if (sortBy !\u003d null \u0026\u0026 !sortBy.isEmpty()) {"},{"line_number":211,"context_line":"      List\u003cString\u003e fieldList \u003d Lists.newArrayList(Splitter.on(\u0027,\u0027).omitEmptyStrings().trimResults().split(sortBy));"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_252e7743","line":208,"range":{"start_line":208,"start_character":23,"end_line":208,"end_character":45},"in_reply_to":"da6ed579_f8c6f898","updated":"2016-01-14 19:15:52.000000000","message":"Done","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}],"java/src/test/java/monasca/api/infrastructure/persistence/hibernate/AlarmDefinitionSqlRepositoryImplTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":52,"context_line":"import javax.ws.rs.WebApplicationException;"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"@Test(groups \u003d \"orm\")"},{"line_number":55,"context_line":"public class AlarmDefinitionSqlRepositoryImplTest {"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  private SessionFactory sessionFactory;"},{"line_number":58,"context_line":"  private AlarmDefinitionRepo repo;"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_58e064fa","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":49},"updated":"2016-01-14 01:47:08.000000000","message":"I don\u0027t see any tests of the new sort_by functionality","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"import javax.ws.rs.WebApplicationException;"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"@Test(groups \u003d \"orm\")"},{"line_number":55,"context_line":"public class AlarmDefinitionSqlRepositoryImplTest {"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  private SessionFactory sessionFactory;"},{"line_number":58,"context_line":"  private AlarmDefinitionRepo repo;"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_25d5171b","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":49},"in_reply_to":"da6ed579_58e064fa","updated":"2016-01-14 19:15:52.000000000","message":"sort_by is not implemented with hibernate","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}],"java/src/test/java/monasca/api/infrastructure/persistence/hibernate/AlarmSqlRepositoryImplTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":63,"context_line":"import monasca.common.model.metric.MetricDefinition;"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@Test(groups \u003d \"orm\")"},{"line_number":66,"context_line":"public class AlarmSqlRepositoryImplTest {"},{"line_number":67,"context_line":"  private static final String TENANT_ID \u003d \"bob\";"},{"line_number":68,"context_line":"  private static final String ALARM_ID \u003d \"234111\";"},{"line_number":69,"context_line":"  private static final DateTimeFormatter ISO_8601_FORMATTER \u003d ISODateTimeFormat.dateOptionalTimeParser().withZoneUTC();"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_b8ef20e8","line":66,"range":{"start_line":66,"start_character":13,"end_line":66,"end_character":39},"updated":"2016-01-14 01:47:08.000000000","message":"I don\u0027t see any tests of the new sort_by functionality","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":63,"context_line":"import monasca.common.model.metric.MetricDefinition;"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@Test(groups \u003d \"orm\")"},{"line_number":66,"context_line":"public class AlarmSqlRepositoryImplTest {"},{"line_number":67,"context_line":"  private static final String TENANT_ID \u003d \"bob\";"},{"line_number":68,"context_line":"  private static final String ALARM_ID \u003d \"234111\";"},{"line_number":69,"context_line":"  private static final DateTimeFormatter ISO_8601_FORMATTER \u003d ISODateTimeFormat.dateOptionalTimeParser().withZoneUTC();"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_05e013f9","line":66,"range":{"start_line":66,"start_character":13,"end_line":66,"end_character":39},"in_reply_to":"da6ed579_b8ef20e8","updated":"2016-01-14 19:15:52.000000000","message":"sort_by is not implemented for hibernate","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}],"java/src/test/java/monasca/api/resource/AlarmDefinitionResourceTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"package monasca.api.resource;"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import com.google.common.collect.Lists;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import static org.mockito.Matchers.any;"},{"line_number":20,"context_line":"import static org.mockito.Matchers.anyInt;"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_d8e0d498","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":39},"updated":"2016-01-14 01:47:08.000000000","message":"This import is not used","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"package monasca.api.resource;"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import com.google.common.collect.Lists;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import static org.mockito.Matchers.any;"},{"line_number":20,"context_line":"import static org.mockito.Matchers.anyInt;"}],"source_content_type":"text/x-java","patch_set":16,"id":"da6ed579_65ef8fe9","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":39},"in_reply_to":"da6ed579_d8e0d498","updated":"2016-01-14 19:15:52.000000000","message":"Done","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}],"monasca_api/v2/common/validation.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"89e05b635e949ade7dcd57aafaaee0cf70ab23be","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                                                   sort_by_values[0],"},{"line_number":51,"context_line":"                                                   \u0027,\u0027.join(list(allowed_sort_by))))"},{"line_number":52,"context_line":"        if len(sort_by_values) \u003c 2:"},{"line_number":53,"context_line":"            sort_by_field +\u003d \u0027 asc\u0027"},{"line_number":54,"context_line":"        elif sort_by_values[1] not in [\u0027asc\u0027, \u0027desc\u0027]:"},{"line_number":55,"context_line":"            raise HTTPUnprocessableEntityError(\"Unprocessable Entity\","},{"line_number":56,"context_line":"                                               \"sort_by value {} must be \u0027asc\u0027 or \u0027desc\u0027\".format("}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_3b07aa19","line":53,"range":{"start_line":53,"start_character":12,"end_line":53,"end_character":35},"updated":"2016-01-14 01:47:08.000000000","message":"I don\u0027t believe this modifies the values stored in sort_by_list. If not, there is  not point to this line","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"eff76e1749c2abfb29ed5c62164cee5a5e621fdf","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                                                   sort_by_values[0],"},{"line_number":51,"context_line":"                                                   \u0027,\u0027.join(list(allowed_sort_by))))"},{"line_number":52,"context_line":"        if len(sort_by_values) \u003c 2:"},{"line_number":53,"context_line":"            sort_by_field +\u003d \u0027 asc\u0027"},{"line_number":54,"context_line":"        elif sort_by_values[1] not in [\u0027asc\u0027, \u0027desc\u0027]:"},{"line_number":55,"context_line":"            raise HTTPUnprocessableEntityError(\"Unprocessable Entity\","},{"line_number":56,"context_line":"                                               \"sort_by value {} must be \u0027asc\u0027 or \u0027desc\u0027\".format("}],"source_content_type":"text/x-python","patch_set":16,"id":"da6ed579_05b7b3f5","line":53,"range":{"start_line":53,"start_character":12,"end_line":53,"end_character":35},"in_reply_to":"da6ed579_3b07aa19","updated":"2016-01-14 19:15:52.000000000","message":"Done","commit_id":"0d6c5647dbb623fdbee1af3cc863003f15235cfb"}]}
