)]}'
{"monasca/common/repositories/influxdb/metrics_repository.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"26b446052731bbb2d75c58fe6c7d0ccb3166cfd6","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        from_clause +\u003d \u0027/\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if start_timestamp is not None:"},{"line_number":102,"context_line":"            from_clause +\u003d \" where time \u003e \" + str(start_timestamp) + \"s\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if end_timestamp is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_a032ca0d","line":101,"updated":"2014-10-14 19:42:58.000000000","message":"CLI says:\n  \u003cUTC_START_TIME\u003e      measurements \u003e\u003d UTC time. format:\n                        2014-01-01T00:00:00Z.\n\nNote the \u003e\u003d. Same for end time","commit_id":"2358a84b4a7d5c491f4287447b475d32be146df3"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e4ca38812de4a817f08aafc5da3bb307e3f2a088","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        from_clause +\u003d \u0027/\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if start_timestamp is not None:"},{"line_number":102,"context_line":"            from_clause +\u003d \" where time \u003e \" + str(start_timestamp) + \"s\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if end_timestamp is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_a389f427","line":101,"in_reply_to":"baa201ad_6300ecab","updated":"2014-10-14 19:54:03.000000000","message":"Can you subtract 1 and add 1 or something? Can\u0027t change the semantics of what start_time and end_time mean.","commit_id":"2358a84b4a7d5c491f4287447b475d32be146df3"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"7adac0f8b1eb44534570edd1e85e91f016e98e23","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        from_clause +\u003d \u0027/\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if start_timestamp is not None:"},{"line_number":102,"context_line":"            from_clause +\u003d \" where time \u003e \" + str(start_timestamp) + \"s\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if end_timestamp is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_6300ecab","line":101,"in_reply_to":"baa201ad_a032ca0d","updated":"2014-10-14 19:50:17.000000000","message":"that\u0027s a no-no.  RepositoryException: 400: Cannot use time with \u0027\u003e\u003d\u0027","commit_id":"2358a84b4a7d5c491f4287447b475d32be146df3"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"26b446052731bbb2d75c58fe6c7d0ccb3166cfd6","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if start_timestamp is not None:"},{"line_number":102,"context_line":"            from_clause +\u003d \" where time \u003e \" + str(start_timestamp) + \"s\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if end_timestamp is not None:"},{"line_number":105,"context_line":"            from_clause +\u003d \" and time \u003c \" + str(end_timestamp) + \"s\""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return from_clause"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_400afe26","line":104,"updated":"2014-10-14 19:42:58.000000000","message":"Should probably be under the if start_timestamp: above since bad things will happen if end_timestamp is set and start_timestamp is None","commit_id":"2358a84b4a7d5c491f4287447b475d32be146df3"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"21695cf950abe047396ffc2ad70278e5ad45dce8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if start_timestamp is not None:"},{"line_number":102,"context_line":"            from_clause +\u003d \" where time \u003e \" + str(start_timestamp) + \"s\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if end_timestamp is not None:"},{"line_number":105,"context_line":"            from_clause +\u003d \" and time \u003c \" + str(end_timestamp) + \"s\""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return from_clause"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_a33814a1","line":104,"in_reply_to":"baa201ad_400afe26","updated":"2014-10-14 19:45:56.000000000","message":"that\u0027s up to the caller to ensure.","commit_id":"2358a84b4a7d5c491f4287447b475d32be146df3"}],"monasca/v2/reference/helpers.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9c20be0d9489d7863fa3549d1fa38682e954ad41","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    try:"},{"line_number":126,"context_line":"        params \u003d parse_query_string(req.query_string)"},{"line_number":127,"context_line":"        if \u0027start_time\u0027 in params:"},{"line_number":128,"context_line":"            start_time \u003d datetime.datetime.strptime(params[\u0027start_time\u0027], \"%Y-%m-%dT%H:%M:%SZ\")"},{"line_number":129,"context_line":"            timestamp \u003d (start_time - datetime.datetime(1970,1,1)).total_seconds()"},{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_96827350","line":128,"updated":"2014-10-14 16:43:13.000000000","message":"Shouldn\u0027t this be the ISO format?","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"f110cc4c7c3d2d636dac0caef847a1b0ceb5d67e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    try:"},{"line_number":126,"context_line":"        params \u003d parse_query_string(req.query_string)"},{"line_number":127,"context_line":"        if \u0027start_time\u0027 in params:"},{"line_number":128,"context_line":"            start_time \u003d datetime.datetime.strptime(params[\u0027start_time\u0027], \"%Y-%m-%dT%H:%M:%SZ\")"},{"line_number":129,"context_line":"            timestamp \u003d (start_time - datetime.datetime(1970,1,1)).total_seconds()"},{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_7650afd4","line":128,"in_reply_to":"baa201ad_96827350","updated":"2014-10-14 16:48:35.000000000","message":"this is in iso format.  http://en.wikipedia.org/wiki/ISO_8601","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9c20be0d9489d7863fa3549d1fa38682e954ad41","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            raise Exception(\"Missing start time\")"},{"line_number":133,"context_line":"    except Exception as ex:"},{"line_number":134,"context_line":"        LOG.debug(ex)"},{"line_number":135,"context_line":"        raise falcon.HTTPBadRequest(\u0027Bad request\u0027, ex.message)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_166843b9","line":133,"updated":"2014-10-14 16:43:13.000000000","message":"Shouldn\u0027t this also be a falcon.HTTPBadRequest? Wouldn\u0027t this cause a HTTP 500?","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"f110cc4c7c3d2d636dac0caef847a1b0ceb5d67e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            raise Exception(\"Missing start time\")"},{"line_number":133,"context_line":"    except Exception as ex:"},{"line_number":134,"context_line":"        LOG.debug(ex)"},{"line_number":135,"context_line":"        raise falcon.HTTPBadRequest(\u0027Bad request\u0027, ex.message)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_960513c4","line":133,"in_reply_to":"baa201ad_166843b9","updated":"2014-10-14 16:48:35.000000000","message":"the exception will be caught by the outer try-catch and be rethrown as an falcoln.HTTPBadRequest.","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"8c310f625b37e675bf5349d3d88c4a9c5abdd8ae","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            raise Exception(\"Missing start time\")"},{"line_number":133,"context_line":"    except Exception as ex:"},{"line_number":134,"context_line":"        LOG.debug(ex)"},{"line_number":135,"context_line":"        raise falcon.HTTPBadRequest(\u0027Bad request\u0027, ex.message)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_b62e97f8","line":133,"in_reply_to":"baa201ad_960513c4","updated":"2014-10-14 16:59:51.000000000","message":"Then why is the below exception a falcon.HTTPBadRequest? They seen the same kind of exception","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"3445fec7894321f7af44a33bea46cfecee5c433c","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            return timestamp"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            raise Exception(\"Missing start time\")"},{"line_number":133,"context_line":"    except Exception as ex:"},{"line_number":134,"context_line":"        LOG.debug(ex)"},{"line_number":135,"context_line":"        raise falcon.HTTPBadRequest(\u0027Bad request\u0027, ex.message)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_b67cd7ec","line":133,"in_reply_to":"baa201ad_b62e97f8","updated":"2014-10-14 17:01:46.000000000","message":"the inner is a specific problem that we check for. the outer is any problem, including parse problems from the datetime functions.","commit_id":"f56331ff9000d646d60db2c13c58170f6186c27b"}]}
