)]}'
{"etc/monasca/log-api-config.conf":[{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b6a135e78c3f90e4c0147ed7cad25f2c483894cd","unresolved":false,"context_lines":[{"line_number":31,"context_line":"insecure \u003d false"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[roles_middleware]"},{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_530ebde5","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":4},"updated":"2016-02-01 15:51:16.000000000","message":"could this be removed ?","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"7a2057b700d6508a6227c5a52cf0623d8ad6feff","unresolved":false,"context_lines":[{"line_number":31,"context_line":"insecure \u003d false"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[roles_middleware]"},{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_8d47021d","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":4},"in_reply_to":"7a5de9d1_530ebde5","updated":"2016-02-02 11:25:24.000000000","message":"It is middleware that kicks off for every request. That configuration entry means that only for this role RBAC is valid, I\u0027d keep that.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f3f5c64ccfca0de60bc4cd12e56001fb825a71ee","unresolved":false,"context_lines":[{"line_number":31,"context_line":"insecure \u003d false"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[roles_middleware]"},{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_c5e12d9c","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":4},"in_reply_to":"7a5de9d1_8d47021d","updated":"2016-02-10 21:55:10.000000000","message":"I think it would be useful to make the v2 endpoint optional or the v3 endpoint optional. \n\nIn the case that v2 isn\u0027t specified, then the roles wouldn\u0027t be required either.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b6a135e78c3f90e4c0147ed7cad25f2c483894cd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_33f8e1c2","line":37,"range":{"start_line":37,"start_character":14,"end_line":37,"end_character":21},"updated":"2016-02-01 15:51:16.000000000","message":"perhaps both monasca-agent, monasca-log-agent ?","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"7a2057b700d6508a6227c5a52cf0623d8ad6feff","unresolved":false,"context_lines":[{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_ede79644","line":37,"range":{"start_line":37,"start_character":14,"end_line":37,"end_character":21},"in_reply_to":"7a5de9d1_33f8e1c2","updated":"2016-02-02 11:25:24.000000000","message":"monasca-agent is for metrics and it entirely different application. We shouldn\u0027t mix those components and therefore roles needed by them to access log-api.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f3f5c64ccfca0de60bc4cd12e56001fb825a71ee","unresolved":false,"context_lines":[{"line_number":34,"context_line":"path \u003d /v2.0/log"},{"line_number":35,"context_line":"path \u003d /v3.0/logs"},{"line_number":36,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":37,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":7,"id":"7a5de9d1_05ff4535","line":37,"range":{"start_line":37,"start_character":14,"end_line":37,"end_character":21},"in_reply_to":"7a5de9d1_ede79644","updated":"2016-02-10 21:55:10.000000000","message":"Yes, I agree. I only did this to get it working in the monasca-vagrant and DevStack environment that we currently have. The monasca-log-api isn\u0027t in those environments yet.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"e9f51f27668b5b68aaa28ae571006cad8791f735","unresolved":false,"context_lines":[{"line_number":44,"context_line":"keyfile \u003d"},{"line_number":45,"context_line":"insecure \u003d false"},{"line_number":46,"context_line":"token_cache_time \u003d 600"},{"line_number":47,"context_line":"memcached_servers \u003d 127.0.0.1:11211"},{"line_number":48,"context_line":"token_cache_time\u003d300"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"[kafka_healthcheck]"}],"source_content_type":"text/plain","patch_set":16,"id":"bae84128_f9190624","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":17},"updated":"2016-02-25 01:27:36.000000000","message":"In my system, this memcached_servers config caused the keystonemiddleware to fail with an error that it is not able to import the memcache module.\nAre others seeing this issue as well ? I don\u0027t see memcache in the requirements file of keystonemiddleware either. Do we need to include it monasca-common/requirements.txt then ?","commit_id":"7068ba8ddd7c0ef8bdb9a9b2afa4ddf6f6ba70b8"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"e9f51f27668b5b68aaa28ae571006cad8791f735","unresolved":false,"context_lines":[{"line_number":45,"context_line":"insecure \u003d false"},{"line_number":46,"context_line":"token_cache_time \u003d 600"},{"line_number":47,"context_line":"memcached_servers \u003d 127.0.0.1:11211"},{"line_number":48,"context_line":"token_cache_time\u003d300"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"[kafka_healthcheck]"},{"line_number":51,"context_line":"kafka_url \u003d localhost:8900"}],"source_content_type":"text/plain","patch_set":16,"id":"bae84128_b9401e37","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":16},"updated":"2016-02-25 01:27:36.000000000","message":"this or line#46 ?","commit_id":"7068ba8ddd7c0ef8bdb9a9b2afa4ddf6f6ba70b8"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"e7d0f7506adf215296076325de3bf932fc1b6ab4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"path \u003d /v2.0/log"},{"line_number":55,"context_line":"path \u003d /v3.0/logs"},{"line_number":56,"context_line":"default_roles \u003d user, domainuser, domainadmin, monasca-user"},{"line_number":57,"context_line":"agent_roles \u003d monasca-agent, admin"}],"source_content_type":"text/plain","patch_set":18,"id":"bae84128_79e7b6ac","line":57,"range":{"start_line":57,"start_character":14,"end_line":57,"end_character":21},"updated":"2016-02-25 01:36:36.000000000","message":"Sorry Roland, missed to catch this earlier. We need monasca-log-agent role here as well, right ?","commit_id":"384689f79ef664319e395698d8c8c095c4952db7"}],"monasca_log_api/v3/reference/helpers.py":[{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b6a135e78c3f90e4c0147ed7cad25f2c483894cd","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import falcon"},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":"import ujson as json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_530b1d7d","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":12},"updated":"2016-02-01 15:51:16.000000000","message":"nice idea using ujson to speed up the validation","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"7a2057b700d6508a6227c5a52cf0623d8ad6feff","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import falcon"},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":"import ujson as json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_6d716677","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":12},"in_reply_to":"7a5de9d1_530b1d7d","updated":"2016-02-02 11:25:24.000000000","message":"We should merge a change with syncing to monasca-common. ujson is embedded in rest handling there.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f3f5c64ccfca0de60bc4cd12e56001fb825a71ee","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import falcon"},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":"import ujson as json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_256cc107","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":12},"in_reply_to":"7a5de9d1_6d716677","updated":"2016-02-10 21:55:10.000000000","message":"Yes, I just did this temporarily and assumed we would settle on something in monasca-common","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"}],"monasca_log_api/v3/reference/logs.py":[{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b6a135e78c3f90e4c0147ed7cad25f2c483894cd","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        dimensions \u003d self._get_dimensions(request_body)"},{"line_number":47,"context_line":"        service.Validations.validate_dimensions(dimensions)"},{"line_number":48,"context_line":"        logs \u003d self._get_logs(request_body)"},{"line_number":49,"context_line":"        envelope \u003d self._create_log_envelope(tenant_id, cross_tenant_id,"},{"line_number":50,"context_line":"                                             self._service_config.region,"},{"line_number":51,"context_line":"                                             dimensions, logs)"},{"line_number":52,"context_line":"        self._send_logs(envelope)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_5681cbf9","line":49,"range":{"start_line":49,"start_character":24,"end_line":49,"end_character":44},"updated":"2016-02-01 15:51:16.000000000","message":"From an email discussion with Roland, I understand that the single envelope for the whole batch is intentional, for the sake of performance. Unbatching needs to be done by logstash transformers.\n\nNeed to understand the performance implications if this is instead kept similar to how monitoring metrics are batched: loop through the batch entries, create per log envelope and then hand the list of envelopes to Kafka producer.\n\nI lean more towards the logstash transformer too, as the pull processing might be configured to go easier on the resources than if done by the log api.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"7a2057b700d6508a6227c5a52cf0623d8ad6feff","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        dimensions \u003d self._get_dimensions(request_body)"},{"line_number":47,"context_line":"        service.Validations.validate_dimensions(dimensions)"},{"line_number":48,"context_line":"        logs \u003d self._get_logs(request_body)"},{"line_number":49,"context_line":"        envelope \u003d self._create_log_envelope(tenant_id, cross_tenant_id,"},{"line_number":50,"context_line":"                                             self._service_config.region,"},{"line_number":51,"context_line":"                                             dimensions, logs)"},{"line_number":52,"context_line":"        self._send_logs(envelope)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_6d7ba62a","line":49,"range":{"start_line":49,"start_character":24,"end_line":49,"end_character":44},"in_reply_to":"7a5de9d1_5681cbf9","updated":"2016-02-02 11:25:24.000000000","message":"As far as I know, if you put array of messages to kafka client it will send them one by one, so they will reach transformer in the same way. Perhaps log-api could be simplify with that fact in mind, but I\u0027d have to confirm.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f3f5c64ccfca0de60bc4cd12e56001fb825a71ee","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        dimensions \u003d self._get_dimensions(request_body)"},{"line_number":47,"context_line":"        service.Validations.validate_dimensions(dimensions)"},{"line_number":48,"context_line":"        logs \u003d self._get_logs(request_body)"},{"line_number":49,"context_line":"        envelope \u003d self._create_log_envelope(tenant_id, cross_tenant_id,"},{"line_number":50,"context_line":"                                             self._service_config.region,"},{"line_number":51,"context_line":"                                             dimensions, logs)"},{"line_number":52,"context_line":"        self._send_logs(envelope)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_4548dd87","line":49,"range":{"start_line":49,"start_character":24,"end_line":49,"end_character":44},"in_reply_to":"7a5de9d1_6d7ba62a","updated":"2016-02-10 21:55:10.000000000","message":"Thanks.","commit_id":"fac21ad2d167a557206f71dc0013718863b041c7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"00fa4ec7f6e721281ba97e1992d1f46dbaed9708","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            envelope \u003d self._create_log_envelope(tenant_id, cross_tenant_id,"},{"line_number":53,"context_line":"                                                 self._service_config.region,"},{"line_number":54,"context_line":"                                                 dimensions, log_msg)"},{"line_number":55,"context_line":"            envelopes.append(envelope)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        self._send_logs(envelopes)"},{"line_number":58,"context_line":"        res.status \u003d falcon.HTTP_204"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_f9b472d5","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":38},"updated":"2016-02-19 07:25:22.000000000","message":"I believe that envelope needs to be validated against maximum size. Kafka has its own limits and if single envelope could exceed this limit. Please take a look if it possible to somehow reuse \n\n monasca_log_api.v2.common.service\n\nI understand that is right now placed within v2 but if it were possible to reuse that code we could think about refactoring it somewhere else as to have it used in both deprecated v2 and v3.","commit_id":"f6397fe75b15deddfb5b587d2c565ca282644130"}]}
