)]}'
{"monasca_notification/types/email_notifier.py":[{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"c1e35c5b7096345866457e921b6692f18f43eec8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"With dimensions:"},{"line_number":39,"context_line":"{metric_dimensions}\u0027\u0027\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"EMAIL_NO_HOST_BASE \u003d u\u0027\u0027\u0027{message}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alarm \"{alarm_name}\" transitioned to the {state} state at {timestamp} UTC"},{"line_number":44,"context_line":"Alarm_id: {alarm_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_31464b24","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":34},"updated":"2016-01-27 22:24:37.000000000","message":"Can we add \"on multiple hosts\" here so we can indicate that we know the alarm is happening on multiple systems.","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"7c0b24ee426442972425d8d8df07ba2beb72d2e4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"With dimensions:"},{"line_number":39,"context_line":"{metric_dimensions}\u0027\u0027\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"EMAIL_NO_HOST_BASE \u003d u\u0027\u0027\u0027{message}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alarm \"{alarm_name}\" transitioned to the {state} state at {timestamp} UTC"},{"line_number":44,"context_line":"Alarm_id: {alarm_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_14a53d03","line":41,"range":{"start_line":41,"start_character":33,"end_line":41,"end_character":34},"in_reply_to":"7a5de9d1_31464b24","updated":"2016-01-27 23:09:33.000000000","message":"Done","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"c1e35c5b7096345866457e921b6692f18f43eec8","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        if len(hostname) \u003d\u003d 1:  # Type 1"},{"line_number":151,"context_line":"            if targethost:"},{"line_number":152,"context_line":"                text \u003d EMAIL_SINGLE_HOST_BASE.format(**{"},{"line_number":153,"context_line":"                    \"hostname\": hostname[0],"},{"line_number":154,"context_line":"                    \"target_host\": targethost[0],"},{"line_number":155,"context_line":"                    \"message\": notification.message.lower(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_510507c0","line":152,"range":{"start_line":152,"start_character":52,"end_line":152,"end_character":56},"updated":"2016-01-27 22:24:37.000000000","message":"Is there another way to add keyword arguments here?","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"7c0b24ee426442972425d8d8df07ba2beb72d2e4","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        if len(hostname) \u003d\u003d 1:  # Type 1"},{"line_number":151,"context_line":"            if targethost:"},{"line_number":152,"context_line":"                text \u003d EMAIL_SINGLE_HOST_BASE.format(**{"},{"line_number":153,"context_line":"                    \"hostname\": hostname[0],"},{"line_number":154,"context_line":"                    \"target_host\": targethost[0],"},{"line_number":155,"context_line":"                    \"message\": notification.message.lower(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_14e77de5","line":152,"range":{"start_line":152,"start_character":52,"end_line":152,"end_character":56},"in_reply_to":"7a5de9d1_510507c0","updated":"2016-01-27 23:09:33.000000000","message":"Done","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"edd9a98eb98ef9ad59f1b921f66fc4d1e3f64910","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        overflow_stmt \u003d u\"...and {} more\".format(len(dimension_pairs) - 20)"},{"line_number":228,"context_line":"        dimension_pairs \u003d list(dimension_pairs)[:20]"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    dimensions \u003d u\u0027{\u0027 + u\",\\n \".join(dimension_pairs) + u\u0027}\u0027"},{"line_number":231,"context_line":"    return dimensions + overflow_stmt"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_b32b0d82","line":230,"updated":"2016-01-28 10:25:43.000000000","message":"Very minor nitpick; I think this will end up formatting like;\n\n    {key0: item0,\n     key1: item1,\n     ...\n     key19: item19}...and 10 more\n\nShould the \"...and {} more\" have a space before the ellipsis, or be on a new line?","commit_id":"2e809e94c5ef1ddc5efd53d95f1a5c90b01d121b"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"e9a68500b4eab80f36f537c276e8dd30cec2045e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        overflow_stmt \u003d u\"...and {} more\".format(len(dimension_pairs) - 20)"},{"line_number":228,"context_line":"        dimension_pairs \u003d list(dimension_pairs)[:20]"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    dimensions \u003d u\u0027{\u0027 + u\",\\n \".join(dimension_pairs) + u\u0027}\u0027"},{"line_number":231,"context_line":"    return dimensions + overflow_stmt"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_e478cb2d","line":230,"in_reply_to":"7a5de9d1_b32b0d82","updated":"2016-01-28 15:58:31.000000000","message":"Yes, that is the resulting format. Do you think it should be\n{\n    key1: value1,\n    key2: value2,\n    ...\n}\n...and XX more.","commit_id":"2e809e94c5ef1ddc5efd53d95f1a5c90b01d121b"}],"tests/test_email_notification.py":[{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"c1e35c5b7096345866457e921b6692f18f43eec8","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        return_value \u003d self.trap.pop(0)"},{"line_number":155,"context_line":"        self.assertTrue(return_value)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_email_notification_dimensions_overflow(self):"},{"line_number":158,"context_line":"        metrics \u003d []"},{"line_number":159,"context_line":"        for i in xrange(20):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_d120174c","line":156,"updated":"2016-01-27 22:24:37.000000000","message":"We should add tests for the subject line and for an email containing a target host.","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"7c0b24ee426442972425d8d8df07ba2beb72d2e4","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        return_value \u003d self.trap.pop(0)"},{"line_number":155,"context_line":"        self.assertTrue(return_value)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_email_notification_dimensions_overflow(self):"},{"line_number":158,"context_line":"        metrics \u003d []"},{"line_number":159,"context_line":"        for i in xrange(20):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_b4d8e91e","line":156,"in_reply_to":"7a5de9d1_d120174c","updated":"2016-01-27 23:09:33.000000000","message":"Done","commit_id":"1b2460fb26674dd87df8b2310b272f602517fc22"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"edd9a98eb98ef9ad59f1b921f66fc4d1e3f64910","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        self.assertEqual(email[\u0027to\u0027], \"To: me@here.com\")"},{"line_number":200,"context_line":"        self.assertRegexpMatches(email[\u0027raw\u0027], \"Content-Type: text/plain\")"},{"line_number":201,"context_line":"        self.assertRegexpMatches(email[\u0027subject\u0027], \"Subject: ALARM LOW .test Alarm.\")"},{"line_number":202,"context_line":"        self.assertRegexpMatches(email[\u0027body\u0027], \"...and [0-9]+ more\")"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        body_lines \u003d email[\u0027body\u0027].splitlines()"},{"line_number":205,"context_line":"        remaining_lines \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_185fa042","line":202,"updated":"2016-01-28 10:25:43.000000000","message":"Pedantically, the \"...\" will match any three characters!","commit_id":"2e809e94c5ef1ddc5efd53d95f1a5c90b01d121b"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"e9a68500b4eab80f36f537c276e8dd30cec2045e","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        self.assertEqual(email[\u0027to\u0027], \"To: me@here.com\")"},{"line_number":200,"context_line":"        self.assertRegexpMatches(email[\u0027raw\u0027], \"Content-Type: text/plain\")"},{"line_number":201,"context_line":"        self.assertRegexpMatches(email[\u0027subject\u0027], \"Subject: ALARM LOW .test Alarm.\")"},{"line_number":202,"context_line":"        self.assertRegexpMatches(email[\u0027body\u0027], \"...and [0-9]+ more\")"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        body_lines \u003d email[\u0027body\u0027].splitlines()"},{"line_number":205,"context_line":"        remaining_lines \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_84c5573d","line":202,"in_reply_to":"7a5de9d1_185fa042","updated":"2016-01-28 15:58:31.000000000","message":"oops, yes you are correct. Will fix","commit_id":"2e809e94c5ef1ddc5efd53d95f1a5c90b01d121b"}]}
