)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"dee29983473607dff67193c4693fb4ab8a0cc1ee","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for alarm REST notifier is added."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Unfortunately, there is a case that the receiver succeeds in processing alarm"},{"line_number":14,"context_line":"notification, but fails to return the http response."},{"line_number":15,"context_line":"In this case, alarm notifier need to retry. By setting a unique request-id"},{"line_number":16,"context_line":"(in http request header) for each notifications (same id across retries),"},{"line_number":17,"context_line":"receiver can decide whether it is the same notification that already processed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ae5cdf2_18d3d838","line":14,"range":{"start_line":14,"start_character":38,"end_line":14,"end_character":42},"updated":"2014-06-19 06:42:35.000000000","message":"just a meaningless nit: http -\u003e HTTP","commit_id":"f87138800687e5c6d249f5be700b4899d1ab0d33"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"2036d749779faee7cd25410cab2e6145a324a5a4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for alarm REST notifier is added."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Unfortunately, there is a case that the receiver succeeds in processing alarm"},{"line_number":14,"context_line":"notification, but fails to return the http response."},{"line_number":15,"context_line":"In this case, alarm notifier need to retry. By setting a unique request-id"},{"line_number":16,"context_line":"(in http request header) for each notifications (same id across retries),"},{"line_number":17,"context_line":"receiver can decide whether it is the same notification that already processed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ae5cdf2_58a7f74f","line":14,"in_reply_to":"1ae5cdf2_18d3d838","updated":"2014-06-20 06:54:07.000000000","message":"Done.","commit_id":"f87138800687e5c6d249f5be700b4899d1ab0d33"}],"ceilometer/alarm/notifier/rest.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"55658a64954a40117e37b45f4117b0e031fa4540","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                help\u003d\u0027Whether to verify the SSL Server certificate when \u0027"},{"line_number":50,"context_line":"                \u0027calling alarm action.\u0027"},{"line_number":51,"context_line":"                ),"},{"line_number":52,"context_line":"    cfg.Opt(\u0027rest_notifier_max_retries\u0027,"},{"line_number":53,"context_line":"            type\u003dMaxRetriesType,"},{"line_number":54,"context_line":"            default\u003d0,"},{"line_number":55,"context_line":"            help\u003d\u0027Number of retries for REST notifier\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_884764a2","line":52,"updated":"2014-06-13 13:19:48.000000000","message":"Why not using IntOpt?","commit_id":"2fa31ea44a7329726291e057d2ac889503901285"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"b3f53eb51ee7d0e5e6cfb356481013c5c455fd1f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                help\u003d\u0027Whether to verify the SSL Server certificate when \u0027"},{"line_number":50,"context_line":"                \u0027calling alarm action.\u0027"},{"line_number":51,"context_line":"                ),"},{"line_number":52,"context_line":"    cfg.Opt(\u0027rest_notifier_max_retries\u0027,"},{"line_number":53,"context_line":"            type\u003dMaxRetriesType,"},{"line_number":54,"context_line":"            default\u003d0,"},{"line_number":55,"context_line":"            help\u003d\u0027Number of retries for REST notifier\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_27b75e3b","line":52,"in_reply_to":"1ae5cdf2_884764a2","updated":"2014-06-13 14:05:22.000000000","message":"Oops, thank you for comment.\n\nThis is just a mistake.","commit_id":"2fa31ea44a7329726291e057d2ac889503901285"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"be760f4c9dbc6719ee56d2e6146db75af4ae3aef","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # FIXME:Retries are automatically done by urllib3 in requests library."},{"line_number":100,"context_line":"        # However, there\u0027s no interval between retries."},{"line_number":101,"context_line":"        # Will better to put some interval between retries."},{"line_number":102,"context_line":"        session \u003d requests.Session()"},{"line_number":103,"context_line":"        session.mount(action.geturl(),"},{"line_number":104,"context_line":"                      HTTPAdapter(max_retries\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_42718243","line":101,"updated":"2014-06-16 12:38:38.000000000","message":"*It* will *be* better :)","commit_id":"2fa31ea44a7329726291e057d2ac889503901285"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"45516e43197bbb8d5f7506afbbd5ae083d987f3d","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # FIXME:Retries are automatically done by urllib3 in requests library."},{"line_number":100,"context_line":"        # However, there\u0027s no interval between retries."},{"line_number":101,"context_line":"        # Will better to put some interval between retries."},{"line_number":102,"context_line":"        session \u003d requests.Session()"},{"line_number":103,"context_line":"        session.mount(action.geturl(),"},{"line_number":104,"context_line":"                      HTTPAdapter(max_retries\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_eb9a4b6d","line":101,"in_reply_to":"1ae5cdf2_42718243","updated":"2014-06-17 02:57:47.000000000","message":"Done.","commit_id":"2fa31ea44a7329726291e057d2ac889503901285"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"dee29983473607dff67193c4693fb4ab8a0cc1ee","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            if cert:"},{"line_number":91,"context_line":"                kwargs[\u0027cert\u0027] \u003d (cert, key) if key else cert"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # FIXME:Retries are automatically done by urllib3 in requests library."},{"line_number":94,"context_line":"        # However, there\u0027s no interval between retries."},{"line_number":95,"context_line":"        # It will be better to put some interval between retries."},{"line_number":96,"context_line":"        session \u003d requests.Session()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_58956030","line":93,"updated":"2014-06-19 06:42:35.000000000","message":"It\u0027s a good practice to write fixmes in the following format:\n\nFIXME(\u003cyour_id\u003e): \u003csmth\u003e - so with your name and space between the \u0027:\u0027 and the text about what should be fixed","commit_id":"f87138800687e5c6d249f5be700b4899d1ab0d33"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"2036d749779faee7cd25410cab2e6145a324a5a4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            if cert:"},{"line_number":91,"context_line":"                kwargs[\u0027cert\u0027] \u003d (cert, key) if key else cert"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # FIXME:Retries are automatically done by urllib3 in requests library."},{"line_number":94,"context_line":"        # However, there\u0027s no interval between retries."},{"line_number":95,"context_line":"        # It will be better to put some interval between retries."},{"line_number":96,"context_line":"        session \u003d requests.Session()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_78a2f33f","line":93,"in_reply_to":"1ae5cdf2_58956030","updated":"2014-06-20 06:54:07.000000000","message":"Done","commit_id":"f87138800687e5c6d249f5be700b4899d1ab0d33"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"eb5f45817caaba9fbe8ae4fc6ee091d54afe96e8","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @staticmethod"},{"line_number":61,"context_line":"    def notify(action, alarm_id, previous, current, reason, reason_data,"},{"line_number":62,"context_line":"               headers\u003d{}):"},{"line_number":63,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":64,"context_line":"        if not req_id:"},{"line_number":65,"context_line":"            req_id \u003d context.generate_request_id()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_a41c2816","line":62,"updated":"2014-06-23 07:07:25.000000000","message":"-1: IMHO, according to patch: https://review.openstack.org/#/c/91046/ and its ref: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#default-parameter-values, the default value of param \u0027headers\u0027 should be None","commit_id":"2b014412c317b5fc9ba9815cd5bfd9d7de545567"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"22f7321f2fbcbeffd1fec5e4a207c3753d5f833a","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @staticmethod"},{"line_number":61,"context_line":"    def notify(action, alarm_id, previous, current, reason, reason_data,"},{"line_number":62,"context_line":"               headers\u003d{}):"},{"line_number":63,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":64,"context_line":"        if not req_id:"},{"line_number":65,"context_line":"            req_id \u003d context.generate_request_id()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_aaacef37","line":62,"in_reply_to":"1ae5cdf2_a41c2816","updated":"2014-06-23 08:41:03.000000000","message":"exactly, using the mutable defaults is the Python anti pattern that might lead to unpredictable behaviour.","commit_id":"2b014412c317b5fc9ba9815cd5bfd9d7de545567"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"b242475bf29fd83c310799c8f68a185113f77605","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @staticmethod"},{"line_number":61,"context_line":"    def notify(action, alarm_id, previous, current, reason, reason_data,"},{"line_number":62,"context_line":"               headers\u003d{}):"},{"line_number":63,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":64,"context_line":"        if not req_id:"},{"line_number":65,"context_line":"            req_id \u003d context.generate_request_id()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_da82e4a4","line":62,"in_reply_to":"1ae5cdf2_aaacef37","updated":"2014-06-23 11:10:01.000000000","message":"Done.","commit_id":"2b014412c317b5fc9ba9815cd5bfd9d7de545567"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"d032ad61cd29ddda8eeae4551f60b3e2f437cfd3","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               headers\u003dNone):"},{"line_number":63,"context_line":"        if not headers:"},{"line_number":64,"context_line":"            headers \u003d {}"},{"line_number":65,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":66,"context_line":"        if not req_id:"},{"line_number":67,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":68,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_fba88b79","line":65,"updated":"2014-07-08 11:25:59.000000000","message":"this will cause No attribute named x-openstack-request-id exception","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"0e24131446654e0d8dde5f18ef475d8c415cb03b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               headers\u003dNone):"},{"line_number":63,"context_line":"        if not headers:"},{"line_number":64,"context_line":"            headers \u003d {}"},{"line_number":65,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":66,"context_line":"        if not req_id:"},{"line_number":67,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":68,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_fe6799b5","line":65,"in_reply_to":"baada198_fba88b79","updated":"2014-07-08 11:35:16.000000000","message":"No, it won\u0027t:\n\n    \u003e\u003e\u003e headers \u003d {}\n    \u003e\u003e\u003e req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)\n    \u003e\u003e\u003e print req_id\n    None","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c4bd36b37f28ffbca01b3bfe9a223efd3d99bce8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               headers\u003dNone):"},{"line_number":63,"context_line":"        if not headers:"},{"line_number":64,"context_line":"            headers \u003d {}"},{"line_number":65,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":66,"context_line":"        if not req_id:"},{"line_number":67,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":68,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_b201863b","line":65,"in_reply_to":"baada198_fe6799b5","updated":"2014-07-10 07:02:09.000000000","message":"I agree with Chris.\nit won\u0027t.","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"d032ad61cd29ddda8eeae4551f60b3e2f437cfd3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        LOG.info(_("},{"line_number":71,"context_line":"            \"Notifying alarm %(alarm_id)s from %(previous)s \""},{"line_number":72,"context_line":"            \"to %(current)s with action %(action)s because \""},{"line_number":73,"context_line":"            \"%(reason)s. request-id: %(req_id)s\") %"},{"line_number":74,"context_line":"            ({\u0027alarm_id\u0027: alarm_id, \u0027previous\u0027: previous,"},{"line_number":75,"context_line":"              \u0027current\u0027: current, \u0027action\u0027: action,"},{"line_number":76,"context_line":"              \u0027reason\u0027: reason, \u0027req_id\u0027: req_id}))"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_3b084391","line":73,"updated":"2014-07-08 11:25:59.000000000","message":"please use complete word \"request_id\"","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c4bd36b37f28ffbca01b3bfe9a223efd3d99bce8","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        LOG.info(_("},{"line_number":71,"context_line":"            \"Notifying alarm %(alarm_id)s from %(previous)s \""},{"line_number":72,"context_line":"            \"to %(current)s with action %(action)s because \""},{"line_number":73,"context_line":"            \"%(reason)s. request-id: %(req_id)s\") %"},{"line_number":74,"context_line":"            ({\u0027alarm_id\u0027: alarm_id, \u0027previous\u0027: previous,"},{"line_number":75,"context_line":"              \u0027current\u0027: current, \u0027action\u0027: action,"},{"line_number":76,"context_line":"              \u0027reason\u0027: reason, \u0027req_id\u0027: req_id}))"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_d2fc3a42","line":73,"in_reply_to":"baada198_3b084391","updated":"2014-07-10 07:02:09.000000000","message":"Done","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"d032ad61cd29ddda8eeae4551f60b3e2f437cfd3","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # FIXME(rhonjo): Retries are automatically done by urllib3 in requests"},{"line_number":96,"context_line":"        # library. However, there\u0027s no interval between retries."},{"line_number":97,"context_line":"        # It will be better to put some interval between retries."},{"line_number":98,"context_line":"        session \u003d requests.Session()"},{"line_number":99,"context_line":"        session.mount(action.geturl(),"},{"line_number":100,"context_line":"                      requests.adapters.HTTPAdapter(max_retries\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_bb3a9332","line":97,"updated":"2014-07-08 11:25:59.000000000","message":"please rephrase the comments here. you are settign the max retries in the code below but comments says that you are setting the interval between retry.","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c4bd36b37f28ffbca01b3bfe9a223efd3d99bce8","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # FIXME(rhonjo): Retries are automatically done by urllib3 in requests"},{"line_number":96,"context_line":"        # library. However, there\u0027s no interval between retries."},{"line_number":97,"context_line":"        # It will be better to put some interval between retries."},{"line_number":98,"context_line":"        session \u003d requests.Session()"},{"line_number":99,"context_line":"        session.mount(action.geturl(),"},{"line_number":100,"context_line":"                      requests.adapters.HTTPAdapter(max_retries\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_f2fbfe44","line":97,"in_reply_to":"baada198_bb3a9332","updated":"2014-07-10 07:02:09.000000000","message":"I meant that setting the interval is better, but as a future work.\n\nI will change the comments to clarify it.","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"b4885112db799c10bc796ee0b3dbb6a1387b655d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def notify(action, alarm_id, previous, current, reason, reason_data,"},{"line_number":61,"context_line":"               headers\u003dNone):"},{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_1f2660ba","line":63,"updated":"2014-07-19 20:56:27.000000000","message":"Lines 62-62 would be more pythonic as:\n\n  headers \u003d headers or {}","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d28ae30f7de847d5116524ab62ad9837fc4cdcbf","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def notify(action, alarm_id, previous, current, reason, reason_data,"},{"line_number":61,"context_line":"               headers\u003dNone):"},{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f2519ad9","line":63,"in_reply_to":"baada198_1f2660ba","updated":"2014-07-22 06:02:13.000000000","message":"Done.","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"b4885112db799c10bc796ee0b3dbb6a1387b655d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":67,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_5f1c5866","line":65,"updated":"2014-07-19 20:56:27.000000000","message":"Replace lines 64-65 with:\n\n  if \u0027x-openstack-request-id\u0027 not in headers:","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"4f94c19aebb2376ce7b379fa76a189d24eec4e7e","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":67,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_814035a6","line":65,"in_reply_to":"baada198_0a2b6782","updated":"2014-07-21 15:30:55.000000000","message":"Fair enough, how about simply:\n\n  if not headers.get(\u0027x-openstack-request-id\u0027):","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"db764094017fb35ba8292eb8317d11cce87a7d25","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":67,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_0a2b6782","line":65,"in_reply_to":"baada198_5f1c5866","updated":"2014-07-21 12:03:15.000000000","message":"What about the case where x-openstack-request-id header is present but has no value?","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"d28ae30f7de847d5116524ab62ad9837fc4cdcbf","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not headers:"},{"line_number":63,"context_line":"            headers \u003d {}"},{"line_number":64,"context_line":"        req_id \u003d headers.get(\u0027x-openstack-request-id\u0027)"},{"line_number":65,"context_line":"        if not req_id:"},{"line_number":66,"context_line":"            req_id \u003d context.generate_request_id()"},{"line_number":67,"context_line":"            headers[\u0027x-openstack-request-id\u0027] \u003d req_id"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_526246ad","line":65,"in_reply_to":"baada198_814035a6","updated":"2014-07-22 06:02:13.000000000","message":"Done.","commit_id":"07043c55dfb58b4218156ec93b68fd6c1b819675"}],"ceilometer/tests/alarm/test_notifier.py":[{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"d032ad61cd29ddda8eeae4551f60b3e2f437cfd3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.service \u003d service.AlarmNotifierService()"},{"line_number":48,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":49,"context_line":"            \u0027ceilometer.openstack.common.context.generate_request_id\u0027,"},{"line_number":50,"context_line":"            self._fake_generate_request_id))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch(\u0027ceilometer.pipeline.setup_pipeline\u0027, mock.MagicMock())"},{"line_number":53,"context_line":"    def test_init_host(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_fb496bb8","line":50,"updated":"2014-07-08 11:25:59.000000000","message":"could you please make sure that tThis mock  will be called or not, as you setting the request id in the HEADERS and in your code your checking for the request_id in the headers","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c4bd36b37f28ffbca01b3bfe9a223efd3d99bce8","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.service \u003d service.AlarmNotifierService()"},{"line_number":48,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":49,"context_line":"            \u0027ceilometer.openstack.common.context.generate_request_id\u0027,"},{"line_number":50,"context_line":"            self._fake_generate_request_id))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @mock.patch(\u0027ceilometer.pipeline.setup_pipeline\u0027, mock.MagicMock())"},{"line_number":53,"context_line":"    def test_init_host(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_f51cc86c","line":50,"in_reply_to":"baada198_fb496bb8","updated":"2014-07-10 07:02:09.000000000","message":"I\u0027m not sure about your point, but currently, we don\u0027t have x-openstack-request-id in headers when RestAlarmNotifier is called. However, it is possible that x-openstack-request-id will be set somewhere on callers\u0027 side in the future. Therefore x-openstack-request-id is checked against headers, to make sure.\n\nSince x-openstack-request-id is not set currently, we cannot have a test case for that.","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"d032ad61cd29ddda8eeae4551f60b3e2f437cfd3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @staticmethod"},{"line_number":103,"context_line":"    def _fake_generate_request_id():"},{"line_number":104,"context_line":"        return \"fake_request_id\""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_notify_alarm_rest_action_ok(self):"},{"line_number":107,"context_line":"        action \u003d \u0027http://host/action\u0027"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_fb532b37","line":105,"updated":"2014-07-08 11:25:59.000000000","message":"its better to return from the HEADERS","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"},{"author":{"_account_id":8988,"name":"Rikimaru Honjo","email":"honjo.rikimaru@ntt-tx.co.jp","username":"rikimaru.honjo","inactive":true},"change_message_id":"c4bd36b37f28ffbca01b3bfe9a223efd3d99bce8","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @staticmethod"},{"line_number":103,"context_line":"    def _fake_generate_request_id():"},{"line_number":104,"context_line":"        return \"fake_request_id\""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_notify_alarm_rest_action_ok(self):"},{"line_number":107,"context_line":"        action \u003d \u0027http://host/action\u0027"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_15185c74","line":105,"in_reply_to":"baada198_fb532b37","updated":"2014-07-10 07:02:09.000000000","message":"Done","commit_id":"a2e8a2f5bf184e76f82a1b658ace853cd9f55beb"}]}
