)]}'
{"etc/vitrage/api-paste.ini":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"35ecbdd47419efab6f63fb7b789dd6ad1ddc0477","unresolved":false,"context_lines":[{"line_number":42,"context_line":"paste.app_factory \u003d vitrage.api.app:app_factory"},{"line_number":43,"context_line":"root \u003d vitrage.api.controllers.v1.root.V1Controller"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[filter:basic_and_keystone_auth]"},{"line_number":46,"context_line":"paste.filter_factory \u003d vitrage.middleware.basic_and_keystone_auth:filter_factory"},{"line_number":47,"context_line":"oslo_config_project \u003d vitrage"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_a63066b9","line":45,"updated":"2018-07-23 12:30:30.000000000","message":"Backward compatibility?","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"paste.app_factory \u003d vitrage.api.app:app_factory"},{"line_number":43,"context_line":"root \u003d vitrage.api.controllers.v1.root.V1Controller"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[filter:basic_and_keystone_auth]"},{"line_number":46,"context_line":"paste.filter_factory \u003d vitrage.middleware.basic_and_keystone_auth:filter_factory"},{"line_number":47,"context_line":"oslo_config_project \u003d vitrage"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_2ab5d9ed","line":45,"in_reply_to":"5f7c97a3_a63066b9","updated":"2018-07-24 14:21:13.000000000","message":"yes it is included","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/api/controllers/v1/event.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5dca7d19","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"updated":"2018-07-23 15:17:03.000000000","message":"Is there a way to hide the Prometheus stuff? or at least have a dict or user-agent-\u003eevent_type mapping that will be initialized in init or something like that","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"8ae4876fae8dc3af61a1b13ee8a576a85f81cc4c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_d6c7303d","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"in_reply_to":"5f7c97a3_2ae639e9","updated":"2018-07-24 14:55:43.000000000","message":"How about doing this instead:\n\nif user_agent:\n\n  event_time \u003d datetime.utcnow()\n\n  event_type \u003d user_agent\n\n  details \u003d kwargs\n\n\n\nThen change in api_handler/apis/event.py: always send event_type as the notification_type, unless it is DoctorDetails.STATUS.\n\nAnd last - change PROMETHEUS_EVENT_TYPE to be \"Alertmanager\". Its current value was a random selection. It can be whatever works best for us.\n\n\nThis way, we won\u0027t have \u0027prometheus\u0027 in the API layer.","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c66d707a15ab5b30f93f7312f247be9933483f48","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_2fc8fe72","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"in_reply_to":"5f7c97a3_2b3332c6","updated":"2018-07-31 06:22:06.000000000","message":"I see. If we had more time I would change it to something more general, but let\u0027s leave it. I still think we should change the code in api_handler/apis/event.py to something like:\n\nif event_type DoctorStatus.UP:\n\n  ...\n\nelif  event_type DoctorStatus.DOWN:\n\n  ... \n\nelse:\n\n  notification_type \u003d event_type\n\n\nSo you will have a reference to Prometheus only here and not in two places.","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"ba857db0dd4c404c4d0967a5486fa31cf67b2b9e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_05e2c302","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"in_reply_to":"5f7c97a3_2fc8fe72","updated":"2018-07-31 08:11:12.000000000","message":"Done","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_2ae639e9","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"in_reply_to":"5f7c97a3_5dca7d19","updated":"2018-07-24 14:21:13.000000000","message":"fixed slightly please review again in patch 2","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"60505f25c052688a239563c5b4fa068e84c2812a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        enforce(\"event post\", pecan.request.headers,"},{"line_number":40,"context_line":"                pecan.request.enforcer, {})"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        user_agent \u003d pecan.request.headers.get(\u0027User-Agent\u0027)"},{"line_number":43,"context_line":"        if user_agent and user_agent.startswith(\"Alertmanager\"):"},{"line_number":44,"context_line":"            event_time \u003d datetime.utcnow()"},{"line_number":45,"context_line":"            event_type \u003d PROMETHEUS_EVENT_TYPE"},{"line_number":46,"context_line":"            details \u003d kwargs"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            event_time \u003d kwargs[\u0027time\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_2b3332c6","line":46,"range":{"start_line":42,"start_character":8,"end_line":46,"end_character":28},"in_reply_to":"5f7c97a3_d6c7303d","updated":"2018-07-29 11:39:17.000000000","message":"great idea but user_agent starts with \"Alertmanager\" and then comes the version. like \u0027Alertmanager/0.15.0\u0027.\nso your suggestions would be a problem","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/api_handler/apis/event.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            event \u003d {EventProperties.TYPE: event_type,"},{"line_number":44,"context_line":"                     EventProperties.TIME: event_time,"},{"line_number":45,"context_line":"                     EventProperties.DETAILS: details}"},{"line_number":46,"context_line":"            if event_type \u003d\u003d PROMETHEUS_EVENT_TYPE:"},{"line_number":47,"context_line":"                notification_type \u003d event_type"},{"line_number":48,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.UP:"},{"line_number":49,"context_line":"                notification_type \u003d DoctorProperties.CUSTOM_EVENT_UP"},{"line_number":50,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.DOWN:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_3dd1c1cb","line":47,"range":{"start_line":46,"start_character":12,"end_line":47,"end_character":46},"updated":"2018-07-23 15:17:03.000000000","message":"Same here regarding the Prometheus event","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            event \u003d {EventProperties.TYPE: event_type,"},{"line_number":44,"context_line":"                     EventProperties.TIME: event_time,"},{"line_number":45,"context_line":"                     EventProperties.DETAILS: details}"},{"line_number":46,"context_line":"            if event_type \u003d\u003d PROMETHEUS_EVENT_TYPE:"},{"line_number":47,"context_line":"                notification_type \u003d event_type"},{"line_number":48,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.UP:"},{"line_number":49,"context_line":"                notification_type \u003d DoctorProperties.CUSTOM_EVENT_UP"},{"line_number":50,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.DOWN:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_caca2546","line":47,"range":{"start_line":46,"start_character":12,"end_line":47,"end_character":46},"in_reply_to":"5f7c97a3_36c30d5b","updated":"2018-07-24 14:21:13.000000000","message":"+1","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"eb5ff1bfcaf8550f2eb45ae24aaa5c8e1f49dc15","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            event \u003d {EventProperties.TYPE: event_type,"},{"line_number":44,"context_line":"                     EventProperties.TIME: event_time,"},{"line_number":45,"context_line":"                     EventProperties.DETAILS: details}"},{"line_number":46,"context_line":"            if event_type \u003d\u003d PROMETHEUS_EVENT_TYPE:"},{"line_number":47,"context_line":"                notification_type \u003d event_type"},{"line_number":48,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.UP:"},{"line_number":49,"context_line":"                notification_type \u003d DoctorProperties.CUSTOM_EVENT_UP"},{"line_number":50,"context_line":"            elif details.get(DoctorDetails.STATUS) \u003d\u003d DoctorStatus.DOWN:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_36c30d5b","line":47,"range":{"start_line":46,"start_character":12,"end_line":47,"end_character":46},"in_reply_to":"5f7c97a3_3dd1c1cb","updated":"2018-07-24 10:10:56.000000000","message":"we have to send the PROMETHEUS_EVENT_TYPE here, so the collector knows which driver to use.","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/datasources/prometheus/driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def enrich_event(self, event, event_type):"},{"line_number":67,"context_line":"        \"\"\"Get an event from Prometheus and create a list of alarm events"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        :param event: dictionary of this form:"},{"line_number":70,"context_line":"            {"},{"line_number":71,"context_line":"              \"status\": \"firing\","},{"line_number":72,"context_line":"              \"groupLabels\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5db11d91","line":69,"range":{"start_line":69,"start_character":22,"end_line":69,"end_character":46},"updated":"2018-07-23 15:17:03.000000000","message":"If everything is enclosed in \u0027details\u0027 now, then please update the comment","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"35ecbdd47419efab6f63fb7b789dd6ad1ddc0477","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        LOG.debug(\u0027Going to enrich event: %s\u0027, str(event))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        alarms \u003d []"},{"line_number":131,"context_line":"        details \u003d event.get(\u0027details\u0027)"},{"line_number":132,"context_line":"        if details:"},{"line_number":133,"context_line":"            for alarm in details.get(PProps.ALERTS, []):"},{"line_number":134,"context_line":"                alarm[DSProps.EVENT_TYPE] \u003d event_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_667d6e1d","line":131,"updated":"2018-07-23 12:30:30.000000000","message":"In vitrage/common/constants.py you have \"EventProperties\". It even has \"DETAILS\". Why not use it?\nYou even added \"DETAILS\" in prometheus/properties.py.\nYou know what to do...","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        LOG.debug(\u0027Going to enrich event: %s\u0027, str(event))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        alarms \u003d []"},{"line_number":131,"context_line":"        details \u003d event.get(\u0027details\u0027)"},{"line_number":132,"context_line":"        if details:"},{"line_number":133,"context_line":"            for alarm in details.get(PProps.ALERTS, []):"},{"line_number":134,"context_line":"                alarm[DSProps.EVENT_TYPE] \u003d event_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_dd8bedbe","line":131,"in_reply_to":"5f7c97a3_667d6e1d","updated":"2018-07-23 15:17:03.000000000","message":"+1","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        LOG.debug(\u0027Going to enrich event: %s\u0027, str(event))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        alarms \u003d []"},{"line_number":131,"context_line":"        details \u003d event.get(\u0027details\u0027)"},{"line_number":132,"context_line":"        if details:"},{"line_number":133,"context_line":"            for alarm in details.get(PProps.ALERTS, []):"},{"line_number":134,"context_line":"                alarm[DSProps.EVENT_TYPE] \u003d event_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_eac6016a","line":131,"in_reply_to":"5f7c97a3_dd8bedbe","updated":"2018-07-24 14:21:13.000000000","message":"Done","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/datasources/prometheus/properties.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    ALERTS \u003d \u0027alerts\u0027"},{"line_number":19,"context_line":"    ANNOTATIONS \u003d \u0027annotations\u0027"},{"line_number":20,"context_line":"    LABELS \u003d \u0027labels\u0027"},{"line_number":21,"context_line":"    DETAILS \u003d \u0027details\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PrometheusAlertStatus(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_bd615113","line":21,"range":{"start_line":21,"start_character":4,"end_line":21,"end_character":23},"updated":"2018-07-23 15:17:03.000000000","message":"Is it really a Prometheus property? or is it the same property that is used by Doctor?","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    ALERTS \u003d \u0027alerts\u0027"},{"line_number":19,"context_line":"    ANNOTATIONS \u003d \u0027annotations\u0027"},{"line_number":20,"context_line":"    LABELS \u003d \u0027labels\u0027"},{"line_number":21,"context_line":"    DETAILS \u003d \u0027details\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PrometheusAlertStatus(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_8aed0dba","line":21,"range":{"start_line":21,"start_character":4,"end_line":21,"end_character":23},"in_reply_to":"5f7c97a3_bd615113","updated":"2018-07-24 14:21:13.000000000","message":"you are right. removed","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/middleware/basic_and_keystone_auth.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        header_val \u003d \u0027Keystone uri\u003d\\\u0027%s\\\u0027\u0027 % self.auth_url"},{"line_number":50,"context_line":"        return [(\u0027WWW-Authenticate\u0027, header_val)]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def process_request(self, req):"},{"line_number":53,"context_line":"        if req.path \u003d\u003d \u0027/v1/event\u0027:"},{"line_number":54,"context_line":"            basic_auth_info \u003d self._get_basic_authenticator(req)"},{"line_number":55,"context_line":"            if basic_auth_info:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_9d2a5595","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":23},"updated":"2018-07-23 15:17:03.000000000","message":"Please add some comments in this file","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        header_val \u003d \u0027Keystone uri\u003d\\\u0027%s\\\u0027\u0027 % self.auth_url"},{"line_number":50,"context_line":"        return [(\u0027WWW-Authenticate\u0027, header_val)]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def process_request(self, req):"},{"line_number":53,"context_line":"        if req.path \u003d\u003d \u0027/v1/event\u0027:"},{"line_number":54,"context_line":"            basic_auth_info \u003d self._get_basic_authenticator(req)"},{"line_number":55,"context_line":"            if basic_auth_info:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_0a2fbdf5","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":23},"in_reply_to":"5f7c97a3_9d2a5595","updated":"2018-07-24 14:21:13.000000000","message":"Done","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"}],"vitrage/tests/functional/api/v1/test_basic.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    \u0027Content-Type\u0027: \u0027application/json\u0027"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"EVENT_DETAILS \u003d {"},{"line_number":31,"context_line":"    \"status\": \"firing\","},{"line_number":32,"context_line":"    \"groupLabels\": {"},{"line_number":33,"context_line":"        \"alertname\": \"HighInodeUsage\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_3860efd0","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":13},"updated":"2018-07-23 15:17:03.000000000","message":"Please add another test with the \"old style\" Doctor event, to make sure it also works","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    \u0027Content-Type\u0027: \u0027application/json\u0027"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"EVENT_DETAILS \u003d {"},{"line_number":31,"context_line":"    \"status\": \"firing\","},{"line_number":32,"context_line":"    \"groupLabels\": {"},{"line_number":33,"context_line":"        \"alertname\": \"HighInodeUsage\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_8aeaedd6","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":13},"in_reply_to":"5f7c97a3_3860efd0","updated":"2018-07-24 14:21:13.000000000","message":"in test_auth the test test_in_keystone_mode_auth_success is checking something like","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"df215737ead24079555429d3eeb8786495932ebf","unresolved":false,"context_lines":[{"line_number":87,"context_line":"}}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class BasicTest(FunctionalTest):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def __init__(self, *args, **kwds):"},{"line_number":93,"context_line":"        super(BasicTest, self).__init__(*args, **kwds)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_986fc3c6","line":90,"range":{"start_line":90,"start_character":6,"end_line":90,"end_character":15},"updated":"2018-07-23 15:17:03.000000000","message":"Why is it called BasicTest? how about AuthorizationTest? (or something more suitable)","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"}}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class BasicTest(FunctionalTest):"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def __init__(self, *args, **kwds):"},{"line_number":93,"context_line":"        super(BasicTest, self).__init__(*args, **kwds)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_aaa3299b","line":90,"range":{"start_line":90,"start_character":6,"end_line":90,"end_character":15},"in_reply_to":"5f7c97a3_986fc3c6","updated":"2018-07-24 14:21:13.000000000","message":"changing to BasicAuthTest","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"35ecbdd47419efab6f63fb7b789dd6ad1ddc0477","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5f7c97a3_464cf2c8","line":149,"updated":"2018-07-23 12:30:30.000000000","message":"I believe there are http constants for all numbers you added in this class, and it will be more readable:\nimport httplib\nCheck maybe resp.\nhttplib.OK\nhttplib.UNAUTHORIZED (401)\nI see using hard coded numbers everywhere, and it\u0027s too hard coded","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"f11a88fedf957730e41a909096fa70f67d5ae84c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5f7c97a3_0aa57db4","line":149,"in_reply_to":"5f7c97a3_464cf2c8","updated":"2018-07-24 14:21:13.000000000","message":"Done","commit_id":"01c1d3cee1eeab353c5a7adbda3ebc7033f5dcb3"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"cf5a215c57ede899bb8df9d486ed68929166694b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"ERR_MSG_1 \u003d \u0027The request you have made requires authentication.\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"ERR_MSG_2 \u003d \u0027Authorization exception: Could not find versioned identity \u0027 \\"},{"line_number":103,"context_line":"            \u0027endpoints when attempting to authenticate. Please check that \u0027 \\"},{"line_number":104,"context_line":"            \u0027your auth_url is correct.\u0027"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_8be5a609","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":9},"updated":"2018-07-29 12:34:31.000000000","message":"use a better name","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"52224a137e88372acdab29c3e0bd9f57615976f9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"ERR_MSG_1 \u003d \u0027The request you have made requires authentication.\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"ERR_MSG_2 \u003d \u0027Authorization exception: Could not find versioned identity \u0027 \\"},{"line_number":103,"context_line":"            \u0027endpoints when attempting to authenticate. Please check that \u0027 \\"},{"line_number":104,"context_line":"            \u0027your auth_url is correct.\u0027"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_0b8196fa","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":9},"in_reply_to":"5f7c97a3_8be5a609","updated":"2018-07-29 12:37:09.000000000","message":"Done","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"cf5a215c57ede899bb8df9d486ed68929166694b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                              headers\u003dwrong_headers,"},{"line_number":156,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":157,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":158,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_2"},{"line_number":159,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_in_basic_mode_auth_no_header(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ebad3aa4","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":58},"updated":"2018-07-29 12:34:31.000000000","message":"create a constant with a better name no need for this assignment","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"52224a137e88372acdab29c3e0bd9f57615976f9","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                              headers\u003dwrong_headers,"},{"line_number":156,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":157,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":158,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_2"},{"line_number":159,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_in_basic_mode_auth_no_header(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_8b936659","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":58},"in_reply_to":"5f7c97a3_ebad3aa4","updated":"2018-07-29 12:37:09.000000000","message":"Done","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"cf5a215c57ede899bb8df9d486ed68929166694b","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":157,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":158,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_2"},{"line_number":159,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_in_basic_mode_auth_no_header(self):"},{"line_number":162,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_cbc87e76","line":159,"range":{"start_line":159,"start_character":45,"end_line":159,"end_character":54},"updated":"2018-07-29 12:34:31.000000000","message":"does this return a json string or a dictionary ?","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"52224a137e88372acdab29c3e0bd9f57615976f9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":157,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":158,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_2"},{"line_number":159,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_in_basic_mode_auth_no_header(self):"},{"line_number":162,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_4b8b0e1d","line":159,"range":{"start_line":159,"start_character":45,"end_line":159,"end_character":54},"in_reply_to":"5f7c97a3_cbc87e76","updated":"2018-07-29 12:37:09.000000000","message":"dict","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"cf5a215c57ede899bb8df9d486ed68929166694b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":165,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_1"},{"line_number":166,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @mock.patch(\u0027keystoneauth1.identity.generic.password.Password\u0027)"},{"line_number":169,"context_line":"    @mock.patch(\u0027keystoneauth1.session.Session\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_6bc12a4f","line":166,"range":{"start_line":165,"start_character":8,"end_line":166,"end_character":55},"updated":"2018-07-29 12:34:31.000000000","message":"same as above","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"52224a137e88372acdab29c3e0bd9f57615976f9","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":165,"context_line":"        NO_TOKEN_ERROR_MSG[\"error\"][\"message\"] \u003d ERR_MSG_1"},{"line_number":166,"context_line":"        self.assertEqual(NO_TOKEN_ERROR_MSG, resp.json)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @mock.patch(\u0027keystoneauth1.identity.generic.password.Password\u0027)"},{"line_number":169,"context_line":"    @mock.patch(\u0027keystoneauth1.session.Session\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_eb7bfa27","line":166,"range":{"start_line":165,"start_character":8,"end_line":166,"end_character":55},"in_reply_to":"5f7c97a3_6bc12a4f","updated":"2018-07-29 12:37:09.000000000","message":"Done","commit_id":"fc8fa0bef59242dd24193211c41f173610f253cc"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"940905ab1bbcb3719ff3d5e28ee37863fc341171","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"ERR_MISSING_AUTH \u003d {\u0027error\u0027: {"},{"line_number":110,"context_line":"    \u0027code\u0027: httplib.UNAUTHORIZED,"},{"line_number":111,"context_line":"    \u0027title\u0027: httplib.responses.get(httplib.UNAUTHORIZED),"},{"line_number":112,"context_line":"    \u0027message\u0027: ERR_MSG_MISSING_AUTH,"},{"line_number":113,"context_line":"}}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_4b5d407a","line":111,"range":{"start_line":111,"start_character":13,"end_line":111,"end_character":56},"updated":"2018-07-30 13:52:03.000000000","message":"httplib.responses[httplib.UNAUTHORIZED]","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"ba857db0dd4c404c4d0967a5486fa31cf67b2b9e","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"ERR_MISSING_AUTH \u003d {\u0027error\u0027: {"},{"line_number":110,"context_line":"    \u0027code\u0027: httplib.UNAUTHORIZED,"},{"line_number":111,"context_line":"    \u0027title\u0027: httplib.responses.get(httplib.UNAUTHORIZED),"},{"line_number":112,"context_line":"    \u0027message\u0027: ERR_MSG_MISSING_AUTH,"},{"line_number":113,"context_line":"}}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_3790664f","line":111,"range":{"start_line":111,"start_character":13,"end_line":111,"end_character":56},"in_reply_to":"5f7c97a3_4b5d407a","updated":"2018-07-31 08:11:12.000000000","message":"Done","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"940905ab1bbcb3719ff3d5e28ee37863fc341171","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"ERR_MISSING_VERSIONED_IDENTITY_ENDPOINTS \u003d {\u0027error\u0027: {"},{"line_number":116,"context_line":"    \u0027code\u0027: httplib.UNAUTHORIZED,"},{"line_number":117,"context_line":"    \u0027title\u0027: httplib.responses.get(httplib.UNAUTHORIZED),"},{"line_number":118,"context_line":"    \u0027message\u0027: ERR_MSG_MISSING_VERSIONED_IDENTITY_ENDPOINTS,"},{"line_number":119,"context_line":"}}"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_2b580487","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":55},"updated":"2018-07-30 13:52:03.000000000","message":"same as above","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"ba857db0dd4c404c4d0967a5486fa31cf67b2b9e","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"ERR_MISSING_VERSIONED_IDENTITY_ENDPOINTS \u003d {\u0027error\u0027: {"},{"line_number":116,"context_line":"    \u0027code\u0027: httplib.UNAUTHORIZED,"},{"line_number":117,"context_line":"    \u0027title\u0027: httplib.responses.get(httplib.UNAUTHORIZED),"},{"line_number":118,"context_line":"    \u0027message\u0027: ERR_MSG_MISSING_VERSIONED_IDENTITY_ENDPOINTS,"},{"line_number":119,"context_line":"}}"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_578de232","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":55},"in_reply_to":"5f7c97a3_2b580487","updated":"2018-07-31 08:11:12.000000000","message":"Done","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"940905ab1bbcb3719ff3d5e28ee37863fc341171","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                              headers\u003dwrong_headers,"},{"line_number":165,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":166,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":167,"context_line":"        self.assertEqual(ERR_MISSING_VERSIONED_IDENTITY_ENDPOINTS, resp.json)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_in_basic_mode_auth_no_header(self):"},{"line_number":170,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_cbfe3038","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":24},"updated":"2018-07-30 13:52:03.000000000","message":"assertDictEqual is better","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"ba857db0dd4c404c4d0967a5486fa31cf67b2b9e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                              headers\u003dwrong_headers,"},{"line_number":165,"context_line":"                              expect_errors\u003dTrue)"},{"line_number":166,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":167,"context_line":"        self.assertEqual(ERR_MISSING_VERSIONED_IDENTITY_ENDPOINTS, resp.json)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_in_basic_mode_auth_no_header(self):"},{"line_number":170,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_c5e7eb0f","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":24},"in_reply_to":"5f7c97a3_cbfe3038","updated":"2018-07-31 08:11:12.000000000","message":"Done","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"940905ab1bbcb3719ff3d5e28ee37863fc341171","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":173,"context_line":"        self.assertEqual(ERR_MISSING_AUTH, resp.json)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027keystoneauth1.identity.generic.password.Password\u0027)"},{"line_number":176,"context_line":"    @mock.patch(\u0027keystoneauth1.session.Session\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_8bf4b857","line":173,"range":{"start_line":173,"start_character":13,"end_line":173,"end_character":24},"updated":"2018-07-30 13:52:03.000000000","message":"same as above","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"ba857db0dd4c404c4d0967a5486fa31cf67b2b9e","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        resp \u003d self.post_json(\u0027/event\u0027, expect_errors\u003dTrue)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        self.assertEqual(httplib.UNAUTHORIZED, resp.status_code)"},{"line_number":173,"context_line":"        self.assertEqual(ERR_MISSING_AUTH, resp.json)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027keystoneauth1.identity.generic.password.Password\u0027)"},{"line_number":176,"context_line":"    @mock.patch(\u0027keystoneauth1.session.Session\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_e5e4670d","line":173,"range":{"start_line":173,"start_character":13,"end_line":173,"end_character":24},"in_reply_to":"5f7c97a3_8bf4b857","updated":"2018-07-31 08:11:12.000000000","message":"Done","commit_id":"33f3f417c64c6b7adfd9510dbddf21d693fe5596"}]}
