)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7f7101005b193ffe420cc970b28894757887576d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"publisher: Contribute the Monasca publisher"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Ceilosca (monasca-ceilometer) publisher has been around for a"},{"line_number":10,"context_line":"few years.  With the deprecation of the Ceilometer v2 API and"},{"line_number":11,"context_line":"continuing changes to projects, a tighter integration with the"},{"line_number":12,"context_line":"ceilometer repo may be beneficial."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I2cbce160503e23dfbde375722a3bd100ec86494e"},{"line_number":15,"context_line":"Story: 2001239"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5f7c97a3_c6de900f","line":12,"range":{"start_line":10,"start_character":12,"end_line":12,"end_character":34},"updated":"2018-06-06 11:56:34.000000000","message":"Instead I would shortly describe what the publisher does.","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"}],"ceilometer/ceilosca_mapping/data/ceilometer_static_info_mapping.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa531054a12c173cd97f1b0eacba35b63cc7e6ea","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      type: \"gauge\""},{"line_number":39,"context_line":"      unit: \"ip\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - name: \"ip.floating.create\""},{"line_number":42,"context_line":"      type: \"delta\""},{"line_number":43,"context_line":"      unit: \"ip\""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f6a8fd7_b84c71c8","line":41,"updated":"2018-04-23 01:57:40.000000000","message":"a significant number of these meters don\u0027t exist.","commit_id":"d56ba4f9b7c331a6d8f92f52b2b30c86e0e4fcf4"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"ad7cddc7fd321f46a203c10863a18ea9061aca4f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      type: \"gauge\""},{"line_number":39,"context_line":"      unit: \"ip\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    - name: \"ip.floating.create\""},{"line_number":42,"context_line":"      type: \"delta\""},{"line_number":43,"context_line":"      unit: \"ip\""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f6a8fd7_d2e32f33","line":41,"in_reply_to":"9f6a8fd7_b84c71c8","updated":"2018-04-23 18:44:00.000000000","message":"Fair point.  I pulled this config from a Pike deployment, but will do some simplification.  Note that as this is just a mapping of meters that having extra mappings doesn\u0027t break any functionality (but may add noise to anyone trying to read the list).","commit_id":"d56ba4f9b7c331a6d8f92f52b2b30c86e0e4fcf4"}],"ceilometer/monasca_ceilometer_opts.py":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7f7101005b193ffe420cc970b28894757887576d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5f7c97a3_e6d86c1f","updated":"2018-06-06 11:56:34.000000000","message":"`monasca_opts.py` would be more suitable, I guess.","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7f7101005b193ffe420cc970b28894757887576d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\" All monasca ceilometer config opts\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_66fe9c6c","line":16,"range":{"start_line":16,"start_character":16,"end_line":16,"end_character":26},"updated":"2018-06-06 11:56:34.000000000","message":"publisher","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"}],"ceilometer/monasca_client.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa531054a12c173cd97f1b0eacba35b63cc7e6ea","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            for measurement in measurements:"},{"line_number":214,"context_line":"                yield measurement"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def statistics_list(self, **kwargs):"},{"line_number":217,"context_line":"        \"\"\"Using monasca pagination to get all statistics."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        We yield endless statistics till caller doesn\u0027t want more or"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_18879db7","line":216,"updated":"2018-04-23 01:57:40.000000000","message":"might have missed it, but are these methods used somewhere?","commit_id":"d56ba4f9b7c331a6d8f92f52b2b30c86e0e4fcf4"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"ad7cddc7fd321f46a203c10863a18ea9061aca4f","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            for measurement in measurements:"},{"line_number":214,"context_line":"                yield measurement"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def statistics_list(self, **kwargs):"},{"line_number":217,"context_line":"        \"\"\"Using monasca pagination to get all statistics."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        We yield endless statistics till caller doesn\u0027t want more or"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_32c4eb90","line":216,"in_reply_to":"9f6a8fd7_18879db7","updated":"2018-04-23 18:44:00.000000000","message":"Ah, you are correct.  These *_list methods were written to work with the Ceilometer v2 API for retrieving data back from Monasca. Obviously that is not needed any more, and I did not include the old classes that used these methods.  I\u0027ll do a trim.","commit_id":"d56ba4f9b7c331a6d8f92f52b2b30c86e0e4fcf4"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"1c6328b1ab8b98abddf32ae95dd0e64ff71f507b","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_afeed885","line":55,"range":{"start_line":55,"start_character":49,"end_line":55,"end_character":72},"updated":"2019-06-04 09:23:28.000000000","message":"database_retry_interval maybe not suitable here.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_34999d1e","line":55,"range":{"start_line":55,"start_character":49,"end_line":55,"end_character":72},"in_reply_to":"9fb8cfa7_5563021b","updated":"2019-06-06 23:02:38.000000000","message":"I can see how there might be some confusion. Note that these retry options are under the [monasca] section and separate from the http or other database options.  As the sections are optional, calling out a separate option allows more control.  This is something of a historical naming - originally Monasca was acting as the \u0027database\u0027 for Ceilometer to pull samples back out of.\n\nNow that there is no storage driver (removed with the Ceil v2 API), it may be worth consolidating the monasca.database_retry_interval and monasca.retry_interval options.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"ff71a0d70281e1cfbe0ba795c3e2a2aea9df2eb6","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_c898d06b","line":55,"range":{"start_line":55,"start_character":49,"end_line":55,"end_character":72},"in_reply_to":"9fb8cfa7_afeed885","updated":"2019-06-05 06:44:29.000000000","message":"Why is it not suitable here? Could you please explain a little bit more?","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"fbf2e2831cd48a441bf991bc02c1ea89c50511a6","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_5563021b","line":55,"range":{"start_line":55,"start_character":49,"end_line":55,"end_character":72},"in_reply_to":"9fb8cfa7_c898d06b","updated":"2019-06-06 04:10:27.000000000","message":"this retry interval is for database retry interval, here is the http request retry interval.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"1c6328b1ab8b98abddf32ae95dd0e64ff71f507b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"},{"line_number":59,"context_line":"        # NOTE(zqfan): There are many concurrency requests while using"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_ef99301f","line":56,"range":{"start_line":56,"start_character":46,"end_line":56,"end_character":66},"updated":"2019-06-04 09:23:28.000000000","message":"maybe not suitable too","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"ff71a0d70281e1cfbe0ba795c3e2a2aea9df2eb6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def __init__(self, conf, parsed_url):"},{"line_number":54,"context_line":"        self.conf \u003d conf"},{"line_number":55,"context_line":"        self._retry_interval \u003d self.conf.monasca.database_retry_interval"},{"line_number":56,"context_line":"        self._max_retries \u003d self.conf.monasca.database_max_retries or 1"},{"line_number":57,"context_line":"        # enable monasca api pagination"},{"line_number":58,"context_line":"        self._enable_api_pagination \u003d self.conf.monasca.enable_api_pagination"},{"line_number":59,"context_line":"        # NOTE(zqfan): There are many concurrency requests while using"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_a89f9c4e","line":56,"range":{"start_line":56,"start_character":46,"end_line":56,"end_character":66},"in_reply_to":"9fb8cfa7_ef99301f","updated":"2019-06-05 06:44:29.000000000","message":"same here.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"1c6328b1ab8b98abddf32ae95dd0e64ff71f507b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # project_id \u003d conf.os_tenant_id"},{"line_number":79,"context_line":"            project_name \u003d conf.os_tenant_name"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            username \u003d monasca_conf.service_username"},{"line_number":82,"context_line":"            password \u003d monasca_conf.service_password"},{"line_number":83,"context_line":"            auth_url \u003d monasca_conf.service_auth_url"},{"line_number":84,"context_line":"            # project_id \u003d monasca_conf.service_project_id"},{"line_number":85,"context_line":"            project_name \u003d monasca_conf.service_project_name"},{"line_number":86,"context_line":"            default_domain_name \u003d monasca_conf.service_domain_name"},{"line_number":87,"context_line":"            region_name \u003d monasca_conf.service_region_name"},{"line_number":88,"context_line":"            service_verify \u003d monasca_conf.service_verify"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if not username or not password or not auth_url:"},{"line_number":91,"context_line":"            err_msg \u003d _(\"No user name or password or auth_url \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_af71f8e2","line":88,"range":{"start_line":81,"start_character":0,"end_line":88,"end_character":56},"updated":"2019-06-04 09:23:28.000000000","message":"shall we just pass the keystone session to monascacliet, using service_credentials config instead of introduce another auth config?\nnovaclient example:\nhttps://github.com/openstack/ceilometer/blob/master/ceilometer/nova_client.py#L54","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # project_id \u003d conf.os_tenant_id"},{"line_number":79,"context_line":"            project_name \u003d conf.os_tenant_name"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            username \u003d monasca_conf.service_username"},{"line_number":82,"context_line":"            password \u003d monasca_conf.service_password"},{"line_number":83,"context_line":"            auth_url \u003d monasca_conf.service_auth_url"},{"line_number":84,"context_line":"            # project_id \u003d monasca_conf.service_project_id"},{"line_number":85,"context_line":"            project_name \u003d monasca_conf.service_project_name"},{"line_number":86,"context_line":"            default_domain_name \u003d monasca_conf.service_domain_name"},{"line_number":87,"context_line":"            region_name \u003d monasca_conf.service_region_name"},{"line_number":88,"context_line":"            service_verify \u003d monasca_conf.service_verify"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if not username or not password or not auth_url:"},{"line_number":91,"context_line":"            err_msg \u003d _(\"No user name or password or auth_url \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_948969cb","line":88,"range":{"start_line":81,"start_character":0,"end_line":88,"end_character":56},"in_reply_to":"9fb8cfa7_48daa017","updated":"2019-06-06 23:02:38.000000000","message":"Sounds nice, but the intent was to be able to configure a different user that would have permission to publish to the Monasca APIs, which might be different from the Keystone user configured for Ceilometer use.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"ff71a0d70281e1cfbe0ba795c3e2a2aea9df2eb6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # project_id \u003d conf.os_tenant_id"},{"line_number":79,"context_line":"            project_name \u003d conf.os_tenant_name"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            username \u003d monasca_conf.service_username"},{"line_number":82,"context_line":"            password \u003d monasca_conf.service_password"},{"line_number":83,"context_line":"            auth_url \u003d monasca_conf.service_auth_url"},{"line_number":84,"context_line":"            # project_id \u003d monasca_conf.service_project_id"},{"line_number":85,"context_line":"            project_name \u003d monasca_conf.service_project_name"},{"line_number":86,"context_line":"            default_domain_name \u003d monasca_conf.service_domain_name"},{"line_number":87,"context_line":"            region_name \u003d monasca_conf.service_region_name"},{"line_number":88,"context_line":"            service_verify \u003d monasca_conf.service_verify"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if not username or not password or not auth_url:"},{"line_number":91,"context_line":"            err_msg \u003d _(\"No user name or password or auth_url \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_48daa017","line":88,"range":{"start_line":81,"start_character":0,"end_line":88,"end_character":56},"in_reply_to":"9fb8cfa7_af71f8e2","updated":"2019-06-05 06:44:29.000000000","message":"+1","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"760c2532b4572b96138f072edf7d748b23e844f6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            \u0027user_domain_name\u0027: default_domain_name,"},{"line_number":106,"context_line":"            \u0027read_timeout\u0027: self.conf.http_timeout,"},{"line_number":107,"context_line":"            \u0027write_timeout\u0027: self.conf.http_timeout,"},{"line_number":108,"context_line":"            \u0027keystone_timeout\u0027: self.conf.http_timeout,"},{"line_number":109,"context_line":"            \u0027verify\u0027: service_verify"},{"line_number":110,"context_line":"        }"},{"line_number":111,"context_line":"        self._kwargs \u003d kwargs"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_bbdb881f","line":108,"updated":"2019-06-18 08:46:16.000000000","message":"I checked monascaclient there are no place to use timeout, could you find the code?","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"760c2532b4572b96138f072edf7d748b23e844f6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            \u0027read_timeout\u0027: self.conf.http_timeout,"},{"line_number":107,"context_line":"            \u0027write_timeout\u0027: self.conf.http_timeout,"},{"line_number":108,"context_line":"            \u0027keystone_timeout\u0027: self.conf.http_timeout,"},{"line_number":109,"context_line":"            \u0027verify\u0027: service_verify"},{"line_number":110,"context_line":"        }"},{"line_number":111,"context_line":"        self._kwargs \u003d kwargs"},{"line_number":112,"context_line":"        self._endpoint \u003d parsed_url.netloc + parsed_url.path"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_fbd8201f","line":109,"range":{"start_line":109,"start_character":22,"end_line":109,"end_character":36},"updated":"2019-06-18 08:46:16.000000000","message":"and verify key and cert when using ssl,\nI checked the code, there are still need the cert here.","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"760c2532b4572b96138f072edf7d748b23e844f6","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self._refresh_client()"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _refresh_client(self):"},{"line_number":118,"context_line":"        self._mon_client \u003d client.Client(self.conf.monasca.clientapi_version,"},{"line_number":119,"context_line":"                                         self._endpoint, **self._kwargs)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def call_func(self, func, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"General method for calling any Monasca API function.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_7b5af083","line":119,"range":{"start_line":118,"start_character":41,"end_line":119,"end_character":71},"updated":"2019-06-18 08:46:16.000000000","message":"here I still think we should pass the session to monascacliet instead  of pass all the config. As you point, If we want another config group for this, we can load config from the new config\n\ndef get_session(conf, requests_session\u003dNone, group\u003dNone, timeout\u003dNone):\n\n    \"\"\"Get a ceilometer service credentials auth session.\"\"\"\n    group \u003d group or DEFAULT_GROUP\n    auth_plugin \u003d ka_loading.load_auth_from_conf_options(conf, group)\n    kwargs \u003d {\u0027auth\u0027: auth_plugin, \u0027session\u0027: requests_session}\n    if timeout is not None:\n        kwargs[\u0027timeout\u0027] \u003d timeout\n    session \u003d ka_loading.load_session_from_conf_options(conf, group, **kwargs)\n    return session\n\nFor example, I want to config project_id with project_domain_id and user_domain_id, this is also the valid config to auth with keystone, but our code can not parse this and will give the auth error.","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e6909ea4b5aeeb08748c3d690a2e32976015fe72","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self._refresh_client()"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _refresh_client(self):"},{"line_number":118,"context_line":"        self._mon_client \u003d client.Client(self.conf.monasca.clientapi_version,"},{"line_number":119,"context_line":"                                         self._endpoint, **self._kwargs)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def call_func(self, func, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"General method for calling any Monasca API function.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"3fa7e38b_f926a616","line":119,"range":{"start_line":118,"start_character":41,"end_line":119,"end_character":71},"in_reply_to":"9fb8cfa7_7b5af083","updated":"2019-10-07 17:58:34.000000000","message":"Thanks, good hint.\nI\u0027ve changed the code accordingly which has simplified things and unified it with the rest of the code.\nI\u0027ve also updated the tests and documentation.","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"}],"ceilometer/monasca_opts.py":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    \u0027Monasca. These include metrics that failed to \u0027"},{"line_number":93,"context_line":"                    \u0027publish on first attempt and failed metrics that\u0027"},{"line_number":94,"context_line":"                    \u0027 maxed out their retries.\u0027),"},{"line_number":95,"context_line":"    # from impl_monasca"},{"line_number":96,"context_line":"    cfg.IntOpt(\u0027default_stats_period\u0027,"},{"line_number":97,"context_line":"               default\u003d300,"},{"line_number":98,"context_line":"               help\u003d\u0027Default period (in seconds) to use for querying stats \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_77ecf7f2","line":95,"range":{"start_line":95,"start_character":4,"end_line":95,"end_character":23},"updated":"2019-06-06 23:02:38.000000000","message":"This was a class added by Ceilosca in ceilometer/storage/ but has been removed.  Will update the comment.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    \u0027publish on first attempt and failed metrics that\u0027"},{"line_number":94,"context_line":"                    \u0027 maxed out their retries.\u0027),"},{"line_number":95,"context_line":"    # from impl_monasca"},{"line_number":96,"context_line":"    cfg.IntOpt(\u0027default_stats_period\u0027,"},{"line_number":97,"context_line":"               default\u003d300,"},{"line_number":98,"context_line":"               help\u003d\u0027Default period (in seconds) to use for querying stats \u0027"},{"line_number":99,"context_line":"                    \u0027in case no period specified in the stats API call.\u0027),"},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027database_max_retries\u0027,"},{"line_number":101,"context_line":"               default\u003d3,"},{"line_number":102,"context_line":"               help\u003d\u0027Maximum number of retry attempts of connecting to \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_f7122709","line":99,"range":{"start_line":96,"start_character":0,"end_line":99,"end_character":74},"updated":"2019-06-06 23:02:38.000000000","message":"I noticed this does not appear to be used anywhere, so will remove it.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"760c2532b4572b96138f072edf7d748b23e844f6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                default\u003dFalse,"},{"line_number":28,"context_line":"                help\u003d\u0027Enable paging through monasca api resultset.\u0027),"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    cfg.StrOpt(\u0027service_auth_url\u0027, help\u003d\u0027auth url connecting to service\u0027),"},{"line_number":31,"context_line":"    cfg.StrOpt(\u0027service_password\u0027, help\u003d\u0027password connecting to service\u0027),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027service_username\u0027, help\u003d\u0027username connecting to service\u0027),"},{"line_number":33,"context_line":"    cfg.StrOpt(\u0027service_project_id\u0027, help\u003d\u0027username connecting to service\u0027),"},{"line_number":34,"context_line":"    cfg.StrOpt(\u0027service_domain_name\u0027, help\u003d\u0027domain connecting to service\u0027),"},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027service_region_name\u0027, help\u003d\u0027region connecting to service\u0027),"},{"line_number":36,"context_line":"    cfg.StrOpt(\u0027service_project_name\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027project name connecting to service\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027service_verify\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027path to ssl cert to verify connecting to service\u0027),"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    # from monasca_data_filter"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027monasca_mappings\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fb8cfa7_5bd60cc6","line":39,"range":{"start_line":30,"start_character":0,"end_line":39,"end_character":72},"updated":"2019-06-18 08:46:16.000000000","message":"here we can just simplely using:\n\n    ka_loading.register_auth_conf_options(conf, group)\n    ka_loading.register_session_conf_options(\n        conf, group,\n        deprecated_opts\u003d{\u0027cacert\u0027: [\n            cfg.DeprecatedOpt(\u0027os-cacert\u0027, group\u003dgroup),\n            cfg.DeprecatedOpt(\u0027os-cacert\u0027, group\u003d\"DEFAULT\")]\n        })\n    conf.register_opts(CLI_OPTS, group\u003dgroup)","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"}],"ceilometer/opts.py":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"ebefa88b93d56386f36b8a446f16a679599a2ae9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 eNovance"},{"line_number":2,"context_line":"# (c) Copyright 2018 SUSE LLC"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_11d4c4e8","line":2,"updated":"2018-06-06 12:31:20.000000000","message":"I think adding Copyright is not really justified here.","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"bea3ac22796d1c6d63c553ff07a2582648c9f91f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 eNovance"},{"line_number":2,"context_line":"# (c) Copyright 2018 SUSE LLC"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_7c9dc808","line":2,"in_reply_to":"5f7c97a3_11d4c4e8","updated":"2018-06-06 16:14:54.000000000","message":"I\u0027m ok with dropping it.  I had to update the copyright on our local builds (we have a check for copyright updates on any file that is modified).","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"}],"ceilometer/publisher/monasca.py":[{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"ff71a0d70281e1cfbe0ba795c3e2a2aea9df2eb6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from monascaclient import exc"},{"line_number":32,"context_line":"import traceback"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"batch_polling_interval \u003d 5"},{"line_number":35,"context_line":"retry_interval \u003d 60"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_68f0c491","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":17},"updated":"2019-06-05 06:44:29.000000000","message":"Could we set this using conf?\n\nhttps://review.opendev.org/#/c/562400/16/etc/ceilometer/examples/monasca-publisher/example_ceilometer.conf","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from monascaclient import exc"},{"line_number":32,"context_line":"import traceback"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"batch_polling_interval \u003d 5"},{"line_number":35,"context_line":"retry_interval \u003d 60"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb8cfa7_775077d5","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":17},"in_reply_to":"9fb8cfa7_68f0c491","updated":"2019-06-06 23:02:38.000000000","message":"Good question.  My only guess why it might be hard coded is if the @periodics.periodic decorator required it to be defined earlier than the options are parsed.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"}],"ceilometer/publisher/monclient.py":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7f7101005b193ffe420cc970b28894757887576d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5f7c97a3_46f360a0","updated":"2018-06-06 11:56:34.000000000","message":"Should be named `monasca.py`","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"}],"doc/source/admin/telemetry-data-pipelines.rst":[{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"760c2532b4572b96138f072edf7d748b23e844f6","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  service_auth_url \u003d https://\u003cvip to keystone instance\u003e:5000/v2.0"},{"line_number":235,"context_line":"  service_username \u003d \u003ca Keystone user\u003e"},{"line_number":236,"context_line":"  service_password \u003d \u003cpassword for user\u003e"},{"line_number":237,"context_line":"  service_interface \u003d internalURL"},{"line_number":238,"context_line":"  service_auth_type \u003d password"},{"line_number":239,"context_line":"  service_domain_name \u003d \u003cdomain name, such as Default\u003e"},{"line_number":240,"context_line":"  service_verify \u003d \u003cpath to CA bundle in PEM format\u003e"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9fb8cfa7_bbee2889","line":237,"range":{"start_line":237,"start_character":2,"end_line":237,"end_character":19},"updated":"2019-06-18 08:46:16.000000000","message":"seems this didn\u0027t defined in the config","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"}],"doc/source/contributor/architecture.rst":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"46e492d57020a15efba52685f69c19522dc88695","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"   This figure shows how a sample can be published to multiple destinations."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Currently, processed data can be published using 8 different transports:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"1. gnocchi, which publishes samples/events to Gnocchi API;"},{"line_number":170,"context_line":"2. notifier, a notification based publisher which pushes samples to a message"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7faddb67_711654aa","line":167,"range":{"start_line":167,"start_character":49,"end_line":167,"end_character":50},"updated":"2019-07-26 12:20:13.000000000","message":"s/8/9/\n\nOr remove the number altogether.","commit_id":"b6113904e4a0016371253d57cce1da98f21ce9fc"}],"etc/ceilometer/examples/monasca-publisher/example_ceilometer.conf":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# service_verify \u003d /somewhere/ca-bundle.pem"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"monasca_mappings \u003d /etc/ceilometer/monasca_field_definitions.yaml"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# retry_on_failure \u003d False"},{"line_number":26,"context_line":"# retry_internal \u003d 60"},{"line_number":27,"context_line":"# enable_api_pagination \u003d True"}],"source_content_type":"text/plain","patch_set":16,"id":"9fb8cfa7_d43b61e8","line":24,"updated":"2019-06-06 23:02:38.000000000","message":"Could put a comment here indicating the following are also options but the default values are likely good enough.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"ff71a0d70281e1cfbe0ba795c3e2a2aea9df2eb6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"monasca_mappings \u003d /etc/ceilometer/monasca_field_definitions.yaml"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# retry_on_failure \u003d False"},{"line_number":26,"context_line":"# retry_internal \u003d 60"},{"line_number":27,"context_line":"# enable_api_pagination \u003d True"},{"line_number":28,"context_line":"# database_retry_interval \u003d 5"},{"line_number":29,"context_line":"# database_max_retries \u003d 5"}],"source_content_type":"text/plain","patch_set":16,"id":"9fb8cfa7_48fdc038","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":16},"updated":"2019-06-05 06:44:29.000000000","message":"retry_interval?","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"932addfacca9b7bc32998f3a36f6bb17148a7559","unresolved":false,"context_lines":[{"line_number":23,"context_line":"monasca_mappings \u003d /etc/ceilometer/monasca_field_definitions.yaml"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# retry_on_failure \u003d False"},{"line_number":26,"context_line":"# retry_internal \u003d 60"},{"line_number":27,"context_line":"# enable_api_pagination \u003d True"},{"line_number":28,"context_line":"# database_retry_interval \u003d 5"},{"line_number":29,"context_line":"# database_max_retries \u003d 5"}],"source_content_type":"text/plain","patch_set":16,"id":"9fb8cfa7_f43ea5d8","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":16},"in_reply_to":"9fb8cfa7_48fdc038","updated":"2019-06-06 23:02:38.000000000","message":"That does appear to be a typo when I compare it to monasca_opts.py.","commit_id":"d31652a2a6c63275c8dcaa6e91154227e4bece11"}],"etc/ceilometer/examples/monasca-publisher/example_pipeline.yaml":[{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"f5dd87498a5e595b2e69702f1fd0eced02c533bd","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    - name: meter_sink"},{"line_number":42,"context_line":"      transformers:"},{"line_number":43,"context_line":"      publishers:"},{"line_number":44,"context_line":"         - monasca://https://\u003cyour monasca instance virtual IP\u003e:8070/v2.0"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"3fa7e38b_6a872f63","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":73},"updated":"2019-10-08 06:51:29.000000000","message":"I also have some doubt with the configed monasca url, why not we just get the monasca url from the keystone endpoint?","commit_id":"126350c0ae609c5d35d54556883da2476e81e30e"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"6f0ad0f7fee9d6ed8b7bf74ac9287f7a2e079b69","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    - name: meter_sink"},{"line_number":42,"context_line":"      transformers:"},{"line_number":43,"context_line":"      publishers:"},{"line_number":44,"context_line":"         - monasca://https://\u003cyour monasca instance virtual IP\u003e:8070/v2.0"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"3fa7e38b_90941546","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":73},"in_reply_to":"3fa7e38b_6a872f63","updated":"2019-10-08 12:36:10.000000000","message":"Agree, checking the endpoint from the service catalog would be more flexible. Let me submit it in a follow-up change.","commit_id":"126350c0ae609c5d35d54556883da2476e81e30e"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"a9db7b30fbf1a5231d6213e2777827d8c970855e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    - name: meter_sink"},{"line_number":42,"context_line":"      transformers:"},{"line_number":43,"context_line":"      publishers:"},{"line_number":44,"context_line":"         - monasca://https://\u003cyour monasca instance virtual IP\u003e:8070/v2.0"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"3fa7e38b_68f88d48","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":73},"in_reply_to":"3fa7e38b_90941546","updated":"2019-10-10 18:06:44.000000000","message":"That is an excellent idea.  I think it was originally written this way to allow some flexibility in where Monasca could be deployed, but I don\u0027t think there are any current use cases that would require having it specified here if we can just look up the endpoint from Keystone instead.  I\u0027m not familiar enough with how Ceilomter interprets pipeline.yaml to know how this would change - the Monasca publisher would still need to be specified in this file, but maybe there could be a flag that indicates to Ceilometer to go look it up from Keystone.","commit_id":"126350c0ae609c5d35d54556883da2476e81e30e"}],"setup.cfg":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7f7101005b193ffe420cc970b28894757887576d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    gnocchiclient\u003e\u003d7.0.0 # Apache-2.0"},{"line_number":37,"context_line":"zaqar \u003d"},{"line_number":38,"context_line":"    python-zaqarclient\u003e\u003d1.0.0 # Apache-2.0"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"[entry_points]"},{"line_number":41,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":42,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"5f7c97a3_e6462cc1","line":39,"updated":"2018-06-06 11:56:34.000000000","message":"We should add dependency on python-monascaclient here.","commit_id":"c9d2e6abc694dcb6ec74e852313466014f87eb5f"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e8fa7a84ce60d534513ead36c4d73255335b8b0b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"zaqar \u003d"},{"line_number":38,"context_line":"    python-zaqarclient\u003e\u003d1.0.0 # Apache-2.0"},{"line_number":39,"context_line":"monasca \u003d"},{"line_number":40,"context_line":"    python-monascaclient\u003e\u003d1.11.0  # Apache-2.0"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"[entry_points]"},{"line_number":43,"context_line":"ceilometer.notification.pipeline \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"5f7c97a3_b62f8ff4","line":40,"range":{"start_line":40,"start_character":26,"end_line":40,"end_character":32},"updated":"2018-06-12 07:46:49.000000000","message":"If there is no other reason to set it differently, the lower bound should fit the one from lower-constraints.txt. At the moment it is \u003e\u003d1.7.0. During the installation the version from upper-constraints.txt will be used (1.11.0).","commit_id":"541f7aa5682a2af279c33c2cc9e420f491d43183"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"1d78bfcfc4268b68a552855ea3e1c96fa720664a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"zaqar \u003d"},{"line_number":38,"context_line":"    python-zaqarclient\u003e\u003d1.0.0 # Apache-2.0"},{"line_number":39,"context_line":"monasca \u003d"},{"line_number":40,"context_line":"    python-monascaclient\u003e\u003d1.11.0  # Apache-2.0"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"[entry_points]"},{"line_number":43,"context_line":"ceilometer.notification.pipeline \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"5f7c97a3_b609c631","line":40,"range":{"start_line":40,"start_character":26,"end_line":40,"end_character":32},"in_reply_to":"5f7c97a3_b62f8ff4","updated":"2018-06-12 14:19:50.000000000","message":"No problem to change that. I set it to 1.11.0 to test it was working with Rocky, but we also know it works with Pike version.","commit_id":"541f7aa5682a2af279c33c2cc9e420f491d43183"}],"test-requirements.txt":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e8fa7a84ce60d534513ead36c4d73255335b8b0b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"requests-aws\u003e\u003d0.1.4 # BSD License (3 clause)"},{"line_number":21,"context_line":"os-testr\u003e\u003d0.4.1 # Apache-2.0"},{"line_number":22,"context_line":"kafka-python\u003e\u003d1.3.2 # Apache-2.0"},{"line_number":23,"context_line":"python-monascaclient\u003e\u003d1.11.0  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":9,"id":"5f7c97a3_166c4334","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":28},"updated":"2018-06-12 07:46:49.000000000","message":"Please see my other comment. 1.7.0 would probably be better.","commit_id":"541f7aa5682a2af279c33c2cc9e420f491d43183"}]}
