)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"5d5ba510f405ad2f890fff1f45e14e65946f22aa","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Co-Authored-By: Abhishek Lekshmanan \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I0c71b88621e503863f153912b9c70371b194ed2c"},{"line_number":15,"context_line":"BP: https://blueprints.launchpad.net/ceilometer/+spec/ceph-ceilometer-integration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_99a03992","line":15,"updated":"2015-02-02 14:31:02.000000000","message":"It seems that it would be better line 15 change to:\nImplements: blueprint ceph-ceilometer-integration","commit_id":"87cdf7de2a5ca0f3d1922ac538893d2c1bf7015d"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"8f18bf8255f0bbd48b8250b6aa1d2971d5894c6b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Co-Authored-By: Abhishek Lekshmanan \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I0c71b88621e503863f153912b9c70371b194ed2c"},{"line_number":15,"context_line":"BP: https://blueprints.launchpad.net/ceilometer/+spec/ceph-ceilometer-integration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_91100403","line":15,"in_reply_to":"da86d52c_99a03992","updated":"2015-02-02 17:43:08.000000000","message":"Sure, will update commit message.","commit_id":"87cdf7de2a5ca0f3d1922ac538893d2c1bf7015d"}],"ceilometer/objectstore/rgw.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: M R Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":6,"context_line":"#          Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_1b0dc637","line":5,"updated":"2015-02-04 04:17:35.000000000","message":"remove author tag","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: M R Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":6,"context_line":"#          Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_f0a80379","line":5,"in_reply_to":"da86d52c_1b0dc637","updated":"2015-02-04 12:44:19.000000000","message":"Any spl. reason to remove this author tag??","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"06a5edb56c0a0e29e8d59fcefb470e5d9fd636e2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: M R Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":6,"context_line":"#          Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_095c404a","line":5,"in_reply_to":"da86d52c_5941c609","updated":"2015-02-06 04:48:30.000000000","message":"OK. Thanks for the pointer. Will correct appropriately.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1b993fdb63d931594f819330379f37d9719b7808","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: M R Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":6,"context_line":"#          Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_5941c609","line":5,"in_reply_to":"da86d52c_f0a80379","updated":"2015-02-05 14:38:15.000000000","message":"http://docs.openstack.org/developer/hacking/\n\nsee: [H105]","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"dee9b93e728db3b9a2effed4a617c355eea1515c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import exceptions"},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"from oslo.utils import timeutils"},{"line_number":25,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_975b792d","line":23,"updated":"2015-02-03 09:25:33.000000000","message":"Recently we have started using oslo_config instead oslo.config.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"021db34d27b33a4bb2bbbe85306edcbcf8c234fc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import exceptions"},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"from oslo.utils import timeutils"},{"line_number":25,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_330bbc26","line":23,"in_reply_to":"da86d52c_975b792d","updated":"2015-02-03 11:13:27.000000000","message":"Sure, will update.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"dee9b93e728db3b9a2effed4a617c355eea1515c","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import exceptions"},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"from oslo.utils import timeutils"},{"line_number":25,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.agent import plugin_base"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d73c11c2","line":24,"updated":"2015-02-03 09:25:33.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"021db34d27b33a4bb2bbbe85306edcbcf8c234fc","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import exceptions"},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"from oslo.utils import timeutils"},{"line_number":25,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.agent import plugin_base"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d319807a","line":24,"in_reply_to":"da86d52c_d73c11c2","updated":"2015-02-03 11:13:27.000000000","message":"Sure, will update.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"dee9b93e728db3b9a2effed4a617c355eea1515c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CREDENTIAL_OPTS \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rgw_access_key\u0027,"},{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_bcb0628c","line":43,"updated":"2015-02-03 09:25:33.000000000","message":"Please, stick one format of help message, with dot at the end of sentence.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CREDENTIAL_OPTS \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rgw_access_key\u0027,"},{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_586ca435","line":43,"updated":"2015-02-04 04:17:35.000000000","message":"for security issue, add secret\u003dTrue, see: https://github.com/openstack/ceilometer/blob/a3a4e0e283b28ffa1e2c51a020d76596442402a8/ceilometer/service.py#L58","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CREDENTIAL_OPTS \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rgw_access_key\u0027,"},{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_10859759","line":43,"in_reply_to":"da86d52c_586ca435","updated":"2015-02-04 12:44:19.000000000","message":"Sure, will add this in the next patch.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"021db34d27b33a4bb2bbbe85306edcbcf8c234fc","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"CREDENTIAL_OPTS \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rgw_access_key\u0027,"},{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d330a0ea","line":43,"in_reply_to":"da86d52c_bcb0628c","updated":"2015-02-03 11:13:27.000000000","message":"Update it appropriately in the next patch.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027secret key for RGW Admin\u0027)"},{"line_number":48,"context_line":"]"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_98729c0f","line":46,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027secret key for RGW Admin\u0027)"},{"line_number":48,"context_line":"]"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_b095ab88","line":46,"in_reply_to":"da86d52c_98729c0f","updated":"2015-02-04 12:44:19.000000000","message":"OK. Noted.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"dee9b93e728db3b9a2effed4a617c355eea1515c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027secret key for RGW Admin\u0027)"},{"line_number":48,"context_line":"]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_5c676625","line":47,"updated":"2015-02-03 09:25:33.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"021db34d27b33a4bb2bbbe85306edcbcf8c234fc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"               help\u003d\u0027access_key for RGW Admin\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":46,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027secret key for RGW Admin\u0027)"},{"line_number":48,"context_line":"]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3359fc36","line":47,"in_reply_to":"da86d52c_5c676625","updated":"2015-02-03 11:13:27.000000000","message":"OK","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            try:"},{"line_number":78,"context_line":"                conf \u003d cfg.CONF.service_credentials"},{"line_number":79,"context_line":"                rgw_url \u003d ksclient.service_catalog.url_for("},{"line_number":80,"context_line":"                    service_type\u003dcfg.CONF.service_types.radosgw,"},{"line_number":81,"context_line":"                    endpoint_type\u003dconf.os_endpoint_type)"},{"line_number":82,"context_line":"                _Base._ENDPOINT \u003d urlparse.urljoin(rgw_url, \u0027/admin\u0027)"},{"line_number":83,"context_line":"            except exceptions.EndpointNotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3856105d","line":80,"updated":"2015-02-04 04:17:35.000000000","message":"don\u0027t need region name?","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        rgw_client \u003d rgwclient(endpoint, self.access_key, self.secret)"},{"line_number":99,"context_line":"        for t in tenants:"},{"line_number":100,"context_line":"            api_method \u003d \u0027get_%s\u0027 % self.METHOD"},{"line_number":101,"context_line":"            yield(t.id, getattr(rgw_client, api_method)(t.id))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class ContainersObjectsPollster(_Base):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_585d8446","line":101,"updated":"2015-02-04 04:17:35.000000000","message":"pep8: need space after yield\n\nnit: the outside () can be removed","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        rgw_client \u003d rgwclient(endpoint, self.access_key, self.secret)"},{"line_number":99,"context_line":"        for t in tenants:"},{"line_number":100,"context_line":"            api_method \u003d \u0027get_%s\u0027 % self.METHOD"},{"line_number":101,"context_line":"            yield(t.id, getattr(rgw_client, api_method)(t.id))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class ContainersObjectsPollster(_Base):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_30661bc2","line":101,"in_reply_to":"da86d52c_585d8446","updated":"2015-02-04 12:44:19.000000000","message":"OK. But pep8 passed.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \"\"\"Get info about object counts in a container using RGW Admin APIs.\"\"\""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":108,"context_line":"        tenants \u003d resources"},{"line_number":109,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":110,"context_line":"                                                       cache, tenants):"},{"line_number":111,"context_line":"            for it in bucket_info[\u0027buckets\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_db06ce1c","line":108,"updated":"2015-02-04 04:17:35.000000000","message":"remove this line and s/tenants/resources/ in L110?","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \"\"\"Get info about object counts in a container using RGW Admin APIs.\"\"\""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":108,"context_line":"        tenants \u003d resources"},{"line_number":109,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":110,"context_line":"                                                       cache, tenants):"},{"line_number":111,"context_line":"            for it in bucket_info[\u0027buckets\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d0013fb0","line":108,"in_reply_to":"da86d52c_db06ce1c","updated":"2015-02-04 12:44:19.000000000","message":"I was just sync with swift.py terminology","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    \"\"\"Get info about object sizes in a container using RGW Admin APIs.\"\"\""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":129,"context_line":"        tenants \u003d resources"},{"line_number":130,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":131,"context_line":"                                                       cache, tenants):"},{"line_number":132,"context_line":"            for it in bucket_info[\u0027buckets\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_380e103c","line":129,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    \"\"\"Get info about object sizes in a container using RGW Admin APIs.\"\"\""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":129,"context_line":"        tenants \u003d resources"},{"line_number":130,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":131,"context_line":"                                                       cache, tenants):"},{"line_number":132,"context_line":"            for it in bucket_info[\u0027buckets\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_90226750","line":129,"in_reply_to":"da86d52c_380e103c","updated":"2015-02-04 12:44:19.000000000","message":"OK","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    \"\"\"Iterate over all accounts, using keystone.\"\"\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":150,"context_line":"        tenants \u003d resources"},{"line_number":151,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":152,"context_line":"                                                       cache, tenants):"},{"line_number":153,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d81fb46a","line":150,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    \"\"\"Iterate over all accounts, using keystone.\"\"\""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":170,"context_line":"        tenants \u003d resources"},{"line_number":171,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":172,"context_line":"                                                       cache, tenants):"},{"line_number":173,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_782de8a7","line":170,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"class ObjectsContainersPollster(_Base):"},{"line_number":187,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":188,"context_line":"        tenants \u003d resources"},{"line_number":189,"context_line":"        for tenant, bucket_info in self._iter_accounts(manager.keystone,"},{"line_number":190,"context_line":"                                                       cache, tenants):"},{"line_number":191,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_5824a4c4","line":188,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    METHOD \u003d \u0027usage\u0027"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":209,"context_line":"        tenants \u003d resources"},{"line_number":210,"context_line":"        for tenant, usage in self._iter_accounts(manager.keystone,"},{"line_number":211,"context_line":"                                                 cache, tenants):"},{"line_number":212,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3827f0cb","line":209,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               help\u003d\u0027Access key for Radosgw Admin.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":44,"context_line":"               secret\u003dTrue,"},{"line_number":45,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Secret key for Radosgw Admin.\u0027)"},{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_baea6faa","line":45,"updated":"2015-02-13 15:50:20.000000000","message":"uh... i\u0027m assuming these defaults are really just dummy values... you should probably remove them.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               help\u003d\u0027Access key for Radosgw Admin.\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027rgw_secret_key\u0027,"},{"line_number":44,"context_line":"               secret\u003dTrue,"},{"line_number":45,"context_line":"               default\u003d\u002712345\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Secret key for Radosgw Admin.\u0027)"},{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_cce4c910","line":45,"in_reply_to":"da86d52c_baea6faa","updated":"2015-02-13 18:04:19.000000000","message":"OK. If the default value is dummy, I will remove it.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":50,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027service_credentials\u0027)"},{"line_number":51,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_9afccb74","line":50,"updated":"2015-02-13 15:50:20.000000000","message":"maybe add these to a radosgw group.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":50,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027service_credentials\u0027)"},{"line_number":51,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_ec76ed3e","line":50,"in_reply_to":"da86d52c_9afccb74","updated":"2015-02-13 18:04:19.000000000","message":"Just added these also part of credentials group. In my opinion, radosgw credentials also can be part of credential group. Please suggest.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b658c10bd907ae82a10924c9341fc4bb20157188","unresolved":false,"context_lines":[{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":50,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027service_credentials\u0027)"},{"line_number":51,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_8fd63e26","line":50,"in_reply_to":"da86d52c_ec76ed3e","updated":"2015-02-13 21:32:47.000000000","message":"let\u0027s create a separate group... service_credentials group is generally used for keystone/openstackclient related options.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    user_id\u003dNone,"},{"line_number":116,"context_line":"                    project_id\u003dtenant,"},{"line_number":117,"context_line":"                    resource_id\u003dtenant + \u0027/\u0027 + it.name,"},{"line_number":118,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":119,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":120,"context_line":"                )"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3db4b934","line":118,"updated":"2015-02-13 15:50:20.000000000","message":"i feel like this timeutils should be called outside of get_samples... when we actually retrieve data.\n\nright now it seems like the sample timestamp is all different even though they all work on the same data.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    user_id\u003dNone,"},{"line_number":116,"context_line":"                    project_id\u003dtenant,"},{"line_number":117,"context_line":"                    resource_id\u003dtenant + \u0027/\u0027 + it.name,"},{"line_number":118,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":119,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":120,"context_line":"                )"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_ec398d40","line":118,"in_reply_to":"da86d52c_3db4b934","updated":"2015-02-13 18:04:19.000000000","message":"Yes, I agree with you. I have added this in get_samples, to sync-up with swift.py. Please advise, if the timestamp should be moved out of get_samples.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b658c10bd907ae82a10924c9341fc4bb20157188","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    user_id\u003dNone,"},{"line_number":116,"context_line":"                    project_id\u003dtenant,"},{"line_number":117,"context_line":"                    resource_id\u003dtenant + \u0027/\u0027 + it.name,"},{"line_number":118,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":119,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":120,"context_line":"                )"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_efcb3a71","line":118,"in_reply_to":"da86d52c_ec398d40","updated":"2015-02-13 21:32:47.000000000","message":"hmm.. is it an easy fix to move it out? i think it\u0027s more accurate personally but i\u0027m ok if you leave it and wait for another opinion.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a367da23","line":1,"updated":"2015-02-19 18:06:54.000000000","message":"Is this directive required?\n\nI don\u0027t think this would ever be run as a standalone python script, or?","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_05a7a550","line":1,"in_reply_to":"da86d52c_a367da23","updated":"2015-02-20 05:33:59.000000000","message":"Yep, its not needed. Will be removed.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":48,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027rgw_admin_credentials\u0027)"},{"line_number":49,"context_line":"cfg.CONF.import_group(\u0027rgw_admin_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_60feb807","line":48,"updated":"2015-02-19 18:06:54.000000000","message":"I\u0027m not loving these group or option names ... i.e. I don\u0027t think we need to repeat the  rgw_ prefix in both the group and the individual option names.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"f132b81ed41de339b5046479fa6c5d7dcd0ffec4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":48,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027rgw_admin_credentials\u0027)"},{"line_number":49,"context_line":"cfg.CONF.import_group(\u0027rgw_admin_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_2381fa8f","line":48,"in_reply_to":"ba7be1f8_e580d18d","updated":"2015-02-20 11:13:29.000000000","message":"Cool, thanks!","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":48,"context_line":"cfg.CONF.register_opts(CREDENTIAL_OPTS, group\u003d\u0027rgw_admin_credentials\u0027)"},{"line_number":49,"context_line":"cfg.CONF.import_group(\u0027rgw_admin_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_e580d18d","line":48,"in_reply_to":"da86d52c_60feb807","updated":"2015-02-20 05:33:59.000000000","message":"Yep....expected this. Will remove the rgw_ prefix in option names.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        name\u003d\u0027radosgw.containers.objects.size\u0027,"},{"line_number":130,"context_line":"                        type\u003dsample.TYPE_GAUGE,"},{"line_number":131,"context_line":"                        volume\u003dint(it.size),"},{"line_number":132,"context_line":"                        unit\u003d\u0027kB\u0027,"},{"line_number":133,"context_line":"                        user_id\u003dNone,"},{"line_number":134,"context_line":"                        project_id\u003dtenant,"},{"line_number":135,"context_line":"                        resource_id\u003dtenant + \u0027/\u0027 + it.name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c3ce8e2c","line":132,"updated":"2015-02-19 18:06:54.000000000","message":"As below.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        name\u003d\u0027radosgw.containers.objects.size\u0027,"},{"line_number":130,"context_line":"                        type\u003dsample.TYPE_GAUGE,"},{"line_number":131,"context_line":"                        volume\u003dint(it.size),"},{"line_number":132,"context_line":"                        unit\u003d\u0027kB\u0027,"},{"line_number":133,"context_line":"                        user_id\u003dNone,"},{"line_number":134,"context_line":"                        project_id\u003dtenant,"},{"line_number":135,"context_line":"                        resource_id\u003dtenant + \u0027/\u0027 + it.name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_6544e174","line":132,"in_reply_to":"da86d52c_c3ce8e2c","updated":"2015-02-20 05:33:59.000000000","message":"As of now, from ceph radosgw admin APIs, we can get the size in kB only.\nMeans - with radosgw-admin API call will give the size in kB rounded.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                name\u003d\u0027radosgw.objects.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                volume\u003dint(bucket_info[\u0027size\u0027]),"},{"line_number":151,"context_line":"                unit\u003d\u0027kB\u0027,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dtenant,"},{"line_number":154,"context_line":"                resource_id\u003dtenant,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a3643a49","line":151,"updated":"2015-02-19 18:06:54.000000000","message":"For consistency with the storage.objects.size, should be B as opposed to kB?\n\ni.e. with volume\u003dint(bucket_info[\u0027size\u0027] * 1024)","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"9acf431007619c15030f3dff159edc0dedf06b1e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                name\u003d\u0027radosgw.objects.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                volume\u003dint(bucket_info[\u0027size\u0027]),"},{"line_number":151,"context_line":"                unit\u003d\u0027kB\u0027,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dtenant,"},{"line_number":154,"context_line":"                resource_id\u003dtenant,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_0e06dd20","line":151,"in_reply_to":"ba7be1f8_4e2615bc","updated":"2015-02-20 11:50:39.000000000","message":"Cool..will be updated in the next patch.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e2749d09f649fa01a439dfba1bfccf9f3c985c46","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                name\u003d\u0027radosgw.objects.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                volume\u003dint(bucket_info[\u0027size\u0027]),"},{"line_number":151,"context_line":"                unit\u003d\u0027kB\u0027,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dtenant,"},{"line_number":154,"context_line":"                resource_id\u003dtenant,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_4e2615bc","line":151,"in_reply_to":"ba7be1f8_c8c0447f","updated":"2015-02-20 11:14:43.000000000","message":"Exactly yes, so that the same units are used for the swift and ceph meters.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                name\u003d\u0027radosgw.objects.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                volume\u003dint(bucket_info[\u0027size\u0027]),"},{"line_number":151,"context_line":"                unit\u003d\u0027kB\u0027,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dtenant,"},{"line_number":154,"context_line":"                resource_id\u003dtenant,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_c8c0447f","line":151,"in_reply_to":"da86d52c_a3643a49","updated":"2015-02-20 05:33:59.000000000","message":"The radosgw-admin API will around to kB and give the size info, so we get only 1kB or 2 kB...from radosgw-admin API (which already rounded). \n\nSo here, you want to me convert it into B by using * 1024, we can do. Is this  you are expecting?","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"}],"ceilometer/objectstore/rgw_client.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":6,"context_line":"#          M R Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3b152a40","line":5,"updated":"2015-02-04 04:17:35.000000000","message":"remove author tag","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from collections import namedtuple"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.i18n import _"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_bb283a87","line":25,"updated":"2015-02-04 04:17:35.000000000","message":"-1: builtin modules should in first group","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from collections import namedtuple"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.i18n import _"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3090db49","line":25,"in_reply_to":"da86d52c_bb283a87","updated":"2015-02-04 12:44:19.000000000","message":"Sure.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from awsauth import S3Auth"},{"line_number":19,"context_line":"from collections import namedtuple"},{"line_number":20,"context_line":"import requests"},{"line_number":21,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3a467f50","line":19,"updated":"2015-02-13 15:50:20.000000000","message":"this should be above in it\u0027s own group. generally group modules as native python, 3rd party, and then current lib.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from awsauth import S3Auth"},{"line_number":19,"context_line":"from collections import namedtuple"},{"line_number":20,"context_line":"import requests"},{"line_number":21,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_40bc1d07","line":19,"in_reply_to":"da86d52c_3a467f50","updated":"2015-02-13 18:04:19.000000000","message":"OK...pep8 also missed it.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.access_key \u003d access_key"},{"line_number":33,"context_line":"        self.secret \u003d secret_key"},{"line_number":34,"context_line":"        self.endpoint \u003d endpoint"},{"line_number":35,"context_line":"        self.hostname \u003d urlparse.urlparse(endpoint).netloc"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _make_request(self, path, req_params):"},{"line_number":38,"context_line":"        uri \u003d \"{0}/{1}\".format(self.endpoint, path)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_5ab893e8","line":35,"updated":"2015-02-13 15:50:20.000000000","message":"you can alternatively use netutils if it makes sense.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.access_key \u003d access_key"},{"line_number":33,"context_line":"        self.secret \u003d secret_key"},{"line_number":34,"context_line":"        self.endpoint \u003d endpoint"},{"line_number":35,"context_line":"        self.hostname \u003d urlparse.urlparse(endpoint).netloc"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _make_request(self, path, req_params):"},{"line_number":38,"context_line":"        uri \u003d \"{0}/{1}\".format(self.endpoint, path)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_20d8097f","line":35,"in_reply_to":"da86d52c_5ab893e8","updated":"2015-02-13 18:04:19.000000000","message":"OK, will check it.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        path \u003d \"bucket\""},{"line_number":53,"context_line":"        req_params \u003d {\"uid\": tenant_id, \"stats\": \"true\"}"},{"line_number":54,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":55,"context_line":"        stats \u003d self._process_bucket_stats(resp)"},{"line_number":56,"context_line":"        return stats"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_usage(self, tenant_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1a18db1d","line":55,"updated":"2015-02-13 15:50:20.000000000","message":"personally i don\u0027t think you need the staticmethods below...","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        path \u003d \"bucket\""},{"line_number":53,"context_line":"        req_params \u003d {\"uid\": tenant_id, \"stats\": \"true\"}"},{"line_number":54,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":55,"context_line":"        stats \u003d self._process_bucket_stats(resp)"},{"line_number":56,"context_line":"        return stats"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_usage(self, tenant_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e07fd164","line":55,"in_reply_to":"da86d52c_1a18db1d","updated":"2015-02-13 18:04:19.000000000","message":"Agree, but used to staticmethods declarator from swift as reference.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b658c10bd907ae82a10924c9341fc4bb20157188","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        path \u003d \"bucket\""},{"line_number":53,"context_line":"        req_params \u003d {\"uid\": tenant_id, \"stats\": \"true\"}"},{"line_number":54,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":55,"context_line":"        stats \u003d self._process_bucket_stats(resp)"},{"line_number":56,"context_line":"        return stats"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def get_usage(self, tenant_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_8f855e5b","line":55,"in_reply_to":"da86d52c_e07fd164","updated":"2015-02-13 21:32:47.000000000","message":"let\u0027s fix it. swift code is old. and odd. :)","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"f5d2f811a783c6b216d62a66d159a9a9b325b853","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":63,"context_line":"        return self._process_usage_stats(resp)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_928547d1","line":65,"updated":"2015-02-16 22:31:24.000000000","message":"oh i meant to merge this private method into the corresponding get_* methods... there\u0027s no real need for them to be separate.","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"434e04664b526ee9d0676b55d4af83e81c446594","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":63,"context_line":"        return self._process_usage_stats(resp)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_6a052113","line":65,"in_reply_to":"da86d52c_675d6a79","updated":"2015-02-17 15:08:20.000000000","message":"that\u0027s probably debatable. it seems to add a needless jump in your code but no big deal. :)","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"432ba3ae6f1357e77e6e459fb8e52dc52763e4e7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":63,"context_line":"        return self._process_usage_stats(resp)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_4e6148d2","line":65,"in_reply_to":"da86d52c_6a052113","updated":"2015-02-17 17:59:16.000000000","message":"Cool..I love optimization. Will  remove the jump (ie function call) in the next patch.","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"5e434bc4b25fc5484a9c8480e7595a2d9932ea12","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        resp \u003d self._make_request(path, req_params)"},{"line_number":63,"context_line":"        return self._process_usage_stats(resp)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_675d6a79","line":65,"in_reply_to":"da86d52c_928547d1","updated":"2015-02-17 06:52:07.000000000","message":"Yes, I agree with you, as there is no real need to call the process_bucket_stats and process_usage_stats separately. But for better code readable and easy to understand, having the these private methods will help us.","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"434e04664b526ee9d0676b55d4af83e81c446594","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"},{"line_number":69,"context_line":"        for it in json_data:"},{"line_number":70,"context_line":"            for k, v in it[\"usage\"].items():"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_d576b2a2","line":67,"updated":"2015-02-17 15:08:20.000000000","message":"i just noticed this but let\u0027s move this out of method so we can access it externally. no point defining this namedtuple over and over again and have to duplicate it outside of module (ie tests)","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"432ba3ae6f1357e77e6e459fb8e52dc52763e4e7","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _process_bucket_stats(self, json_data):"},{"line_number":66,"context_line":"        stats \u003d {\u0027num_buckets\u0027: 0, \u0027buckets\u0027: [], \u0027size\u0027: 0, \u0027num_objects\u0027: 0}"},{"line_number":67,"context_line":"        Bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":68,"context_line":"        stats[\u0027num_buckets\u0027] \u003d len(json_data)"},{"line_number":69,"context_line":"        for it in json_data:"},{"line_number":70,"context_line":"            for k, v in it[\"usage\"].items():"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_0eae70e7","line":67,"in_reply_to":"da86d52c_d576b2a2","updated":"2015-02-17 17:59:16.000000000","message":"Yep, will update it.","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"452014cac7445b9c9bbc2fd627bfaf590770738f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.secret \u003d secret_key"},{"line_number":35,"context_line":"        self.endpoint \u003d endpoint"},{"line_number":36,"context_line":"        self.hostname \u003d urlparse.urlparse(endpoint).netloc"},{"line_number":37,"context_line":"        self.bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _make_request(self, path, req_params):"},{"line_number":40,"context_line":"        uri \u003d \"{0}/{1}\".format(self.endpoint, path)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_0c0c8541","line":37,"updated":"2015-02-18 18:55:08.000000000","message":"could we move this to module level? ie. like this: https://github.com/openstack/ceilometer/blob/master/ceilometer/agent/plugin_base.py\n\nthan we can reference it in tests as well","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"7428fe020529b207fe16fef3a64327a20c8c3907","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.secret \u003d secret_key"},{"line_number":35,"context_line":"        self.endpoint \u003d endpoint"},{"line_number":36,"context_line":"        self.hostname \u003d urlparse.urlparse(endpoint).netloc"},{"line_number":37,"context_line":"        self.bucket \u003d namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _make_request(self, path, req_params):"},{"line_number":40,"context_line":"        uri \u003d \"{0}/{1}\".format(self.endpoint, path)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_52445846","line":37,"in_reply_to":"da86d52c_0c0c8541","updated":"2015-02-18 19:20:01.000000000","message":"Yep. It\u0027s doable.","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c3384ef0","line":1,"updated":"2015-02-19 18:06:54.000000000","message":"Similarly.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_283720b2","line":1,"in_reply_to":"da86d52c_c3384ef0","updated":"2015-02-20 05:33:59.000000000","message":"OK.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_params \u003d {\"uid\": tenant_id}"},{"line_number":71,"context_line":"        json_data \u003d self._make_request(path, req_params)"},{"line_number":72,"context_line":"        usage_data \u003d json_data[\"summary\"]"},{"line_number":73,"context_line":"        return sum((it[\"total\"][\"successful_ops\"] for it in usage_data))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_23920a9f","line":73,"updated":"2015-02-19 18:06:54.000000000","message":"Is there a separate field for unsuccessful ops?\n\nShould these be counted also as they involve load on the ceph backend, even if they ultimately fail.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"f132b81ed41de339b5046479fa6c5d7dcd0ffec4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_params \u003d {\"uid\": tenant_id}"},{"line_number":71,"context_line":"        json_data \u003d self._make_request(path, req_params)"},{"line_number":72,"context_line":"        usage_data \u003d json_data[\"summary\"]"},{"line_number":73,"context_line":"        return sum((it[\"total\"][\"successful_ops\"] for it in usage_data))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_4efff501","line":73,"in_reply_to":"ba7be1f8_48bb74c4","updated":"2015-02-20 11:13:29.000000000","message":"So I\u0027m wondering if using the higher number, i.e. the \"ops\" field, would actually be a truer reflection of the API usage?","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"9acf431007619c15030f3dff159edc0dedf06b1e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_params \u003d {\"uid\": tenant_id}"},{"line_number":71,"context_line":"        json_data \u003d self._make_request(path, req_params)"},{"line_number":72,"context_line":"        usage_data \u003d json_data[\"summary\"]"},{"line_number":73,"context_line":"        return sum((it[\"total\"][\"successful_ops\"] for it in usage_data))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_49ffef01","line":73,"in_reply_to":"ba7be1f8_4efff501","updated":"2015-02-20 11:50:39.000000000","message":"OK. Will add ops (ie Total ops) for usage.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_params \u003d {\"uid\": tenant_id}"},{"line_number":71,"context_line":"        json_data \u003d self._make_request(path, req_params)"},{"line_number":72,"context_line":"        usage_data \u003d json_data[\"summary\"]"},{"line_number":73,"context_line":"        return sum((it[\"total\"][\"successful_ops\"] for it in usage_data))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_48bb74c4","line":73,"in_reply_to":"da86d52c_23920a9f","updated":"2015-02-20 05:33:59.000000000","message":"No. Usage API return items contain: Ops (which is total ops) and sucessful_ops (which is total successful_ops).  Snip of usage API output:\n\u003d\u003d\n             ....  \n             \"ops\": 26,\n              \"successful_ops\": 24}}]}\n\u003d\u003d\nSo here the sucessful_ops only used.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"}],"ceilometer/tests/objectstore/test_rgw.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Reliance Jio Infocomm Ltd"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: Abhishek L \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":6,"context_line":"#          Swami Reddy \u003cswami.reddy@ril.com\u003e"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3b436a43","line":5,"updated":"2015-02-04 04:17:35.000000000","message":"remove author tag","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"452014cac7445b9c9bbc2fd627bfaf590770738f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from ceilometer.objectstore import rgw"},{"line_number":27,"context_line":"from ceilometer.objectstore.rgw_client import RGWAdminClient as rgw_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Bucket \u003d collections.namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":30,"context_line":"bucket_list1 \u003d [Bucket(\u0027somefoo1\u0027, 10, 7)]"},{"line_number":31,"context_line":"bucket_list2 \u003d [Bucket(\u0027somefoo2\u0027, 2, 9)]"},{"line_number":32,"context_line":"bucket_list3 \u003d [Bucket(\u0027unlisted\u0027, 100, 100)]"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_d7583a33","line":29,"updated":"2015-02-18 18:55:08.000000000","message":"do this in the client module and than we can just import it into tests to reuse it... so we don\u0027t have multiple declarations of it.","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"7428fe020529b207fe16fef3a64327a20c8c3907","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from ceilometer.objectstore import rgw"},{"line_number":27,"context_line":"from ceilometer.objectstore.rgw_client import RGWAdminClient as rgw_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Bucket \u003d collections.namedtuple(\u0027Bucket\u0027, \u0027name, num_objects, size\u0027)"},{"line_number":30,"context_line":"bucket_list1 \u003d [Bucket(\u0027somefoo1\u0027, 10, 7)]"},{"line_number":31,"context_line":"bucket_list2 \u003d [Bucket(\u0027somefoo2\u0027, 2, 9)]"},{"line_number":32,"context_line":"bucket_list3 \u003d [Bucket(\u0027unlisted\u0027, 100, 100)]"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_5216184a","line":29,"in_reply_to":"da86d52c_d7583a33","updated":"2015-02-18 19:20:01.000000000","message":"Yes, agree.","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"}],"ceilometer/tests/objectstore/test_rgw_client.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright (C) 2015 Reliance Jio Infocomm Ltd"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Authors: Abhishek Lekshmanan \u003cabhishek.lekshmanan@ril.com\u003e"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_dba24efc","line":5,"updated":"2015-02-04 04:17:35.000000000","message":"ditto","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                  \"categories\": ["},{"line_number":87,"context_line":"                        { \"category\": \"list_buckets\","},{"line_number":88,"context_line":"                          \"bytes_sent\": 46,"},{"line_number":89,"context_line":"                          \"bytes_received\": 0,"},{"line_number":90,"context_line":"                          \"ops\": 3,"},{"line_number":91,"context_line":"                          \"successful_ops\": 3},"},{"line_number":92,"context_line":"                        { \"category\": \"stat_account\","}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3ac3df58","line":89,"updated":"2015-02-13 15:50:20.000000000","message":"if this byte data is available, how come we can\u0027t create meter for it. or is that for future?","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                  \"categories\": ["},{"line_number":87,"context_line":"                        { \"category\": \"list_buckets\","},{"line_number":88,"context_line":"                          \"bytes_sent\": 46,"},{"line_number":89,"context_line":"                          \"bytes_received\": 0,"},{"line_number":90,"context_line":"                          \"ops\": 3,"},{"line_number":91,"context_line":"                          \"successful_ops\": 3},"},{"line_number":92,"context_line":"                        { \"category\": \"stat_account\","}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_a0d6b925","line":89,"in_reply_to":"da86d52c_3ac3df58","updated":"2015-02-13 18:04:19.000000000","message":"Yep, the bytes sent/received meters  will be added in future patch.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b658c10bd907ae82a10924c9341fc4bb20157188","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                  \"categories\": ["},{"line_number":87,"context_line":"                        { \"category\": \"list_buckets\","},{"line_number":88,"context_line":"                          \"bytes_sent\": 46,"},{"line_number":89,"context_line":"                          \"bytes_received\": 0,"},{"line_number":90,"context_line":"                          \"ops\": 3,"},{"line_number":91,"context_line":"                          \"successful_ops\": 3},"},{"line_number":92,"context_line":"                        { \"category\": \"stat_account\","}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_2f32b2f2","line":89,"in_reply_to":"da86d52c_a0d6b925","updated":"2015-02-13 21:32:47.000000000","message":"cool cool","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"}],"doc/source/measurements.rst":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":297,"context_line":"radosgw.objects                  Gauge       object      store ID     pollster      Number of objects"},{"line_number":298,"context_line":"radosgw.objects.size             Gauge       KB          store ID     pollster      Total size of stored objects"},{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_57294ef1","line":300,"updated":"2015-02-13 15:50:20.000000000","message":"this is a pollster","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":297,"context_line":"radosgw.objects                  Gauge       object      store ID     pollster      Number of objects"},{"line_number":298,"context_line":"radosgw.objects.size             Gauge       KB          store ID     pollster      Total size of stored objects"},{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_a0a4f9b9","line":300,"in_reply_to":"da86d52c_57294ef1","updated":"2015-02-13 18:04:19.000000000","message":"Yes, its pollster. will correct it.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":298,"context_line":"radosgw.objects.size             Gauge       KB          store ID     pollster      Total size of stored objects"},{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_f767a24f","line":301,"updated":"2015-02-13 15:50:20.000000000","message":"radosgw.containers.objects","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"1e206fadd60a1e274f1f6849f8efaf39c277c280","unresolved":false,"context_lines":[{"line_number":298,"context_line":"radosgw.objects.size             Gauge       KB          store ID     pollster      Total size of stored objects"},{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_c09d6d0c","line":301,"in_reply_to":"da86d52c_f767a24f","updated":"2015-02-13 18:05:37.000000000","message":"ok.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"In order to use ceph object storage meters, one must configure ceph as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_575eae7a","line":302,"updated":"2015-02-13 15:50:20.000000000","message":"radosgw","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":299,"context_line":"radosgw.objects.containers       Gauge       container   store ID     pollster      Number of containers"},{"line_number":300,"context_line":"radosgw.api.request              Delta       request     store ID     notification  Number of API requests against ceph radosgw"},{"line_number":301,"context_line":"storage.containers.objects       Gauge       object      str ID/cont  pollster      Number of objects in container"},{"line_number":302,"context_line":"storage.containers.objects.size  Gauge       KB          str ID/cont  pollster      Total size of stored objects in container"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"In order to use ceph object storage meters, one must configure ceph as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_006b0520","line":302,"in_reply_to":"da86d52c_575eae7a","updated":"2015-02-13 18:04:19.000000000","message":"Opps. Will fix it.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"25368f972cb53db8f7b1ecf7a2ea0885ed4e10e6","unresolved":false,"context_lines":[{"line_number":306,"context_line":"described in ceph object storage installation manual along with radosgw"},{"line_number":307,"context_line":"logging enabled. Note that they may not be updated right after an"},{"line_number":308,"context_line":"upload/download, since ceph radosgw takes some time to update the usage"},{"line_number":309,"context_line":"properties. And create a radosgw \u0027admin\u0027 user and add the users, buckets,"},{"line_number":310,"context_line":"metadata and usage caps to this user."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_37e05a96","line":309,"updated":"2015-02-13 15:50:20.000000000","message":"is this last sentence \"And create .... \" setup instructions or explaining why cept radosgw takes time to update usage properties?","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"e9dd3e33091c46203af7ed18855581668aad9e90","unresolved":false,"context_lines":[{"line_number":306,"context_line":"described in ceph object storage installation manual along with radosgw"},{"line_number":307,"context_line":"logging enabled. Note that they may not be updated right after an"},{"line_number":308,"context_line":"upload/download, since ceph radosgw takes some time to update the usage"},{"line_number":309,"context_line":"properties. And create a radosgw \u0027admin\u0027 user and add the users, buckets,"},{"line_number":310,"context_line":"metadata and usage caps to this user."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_401eddbc","line":309,"in_reply_to":"da86d52c_37e05a96","updated":"2015-02-13 18:04:19.000000000","message":"In ceph, the usage logs will be updated every 30 min. with default configuration. So I have mentioned that. \nPS: But this configuration can be changed to any number min. from 1...N.","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b658c10bd907ae82a10924c9341fc4bb20157188","unresolved":false,"context_lines":[{"line_number":306,"context_line":"described in ceph object storage installation manual along with radosgw"},{"line_number":307,"context_line":"logging enabled. Note that they may not be updated right after an"},{"line_number":308,"context_line":"upload/download, since ceph radosgw takes some time to update the usage"},{"line_number":309,"context_line":"properties. And create a radosgw \u0027admin\u0027 user and add the users, buckets,"},{"line_number":310,"context_line":"metadata and usage caps to this user."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da86d52c_efac1af1","line":309,"in_reply_to":"da86d52c_401eddbc","updated":"2015-02-13 21:32:47.000000000","message":"ah cool cool. i think it should read:\n\ns/since ceph radosgw takes some time to update the usage properties. And create a radosgw \u0027admin\u0027 user.../since ceph radosgw takes some time to update the usage properties and to create a radosgw \u0027admin\u0027 user.../","commit_id":"0713f745a93491a89eefe840fa23d0d3417666f6"}],"requirements.txt":[{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"6694ea2aae33a6c7186c2829798159baa7b3da9d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"tooz\u003e\u003d0.3 # Apache-2.0"},{"line_number":45,"context_line":"WebOb\u003e\u003d1.2.3"},{"line_number":46,"context_line":"WSME\u003e\u003d0.6"},{"line_number":47,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":7,"id":"da86d52c_0eb667f9","line":47,"updated":"2015-02-17 21:40:03.000000000","message":"This should be kept in alphabetical order.\nAlso please check with Eoghan if having BSD License for a package is accepted by Openstack or violate some licensing (e.g. redistribution)","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"57f4674e0870a376e58628eebfb56854f873c42a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"tooz\u003e\u003d0.3 # Apache-2.0"},{"line_number":45,"context_line":"WebOb\u003e\u003d1.2.3"},{"line_number":46,"context_line":"WSME\u003e\u003d0.6"},{"line_number":47,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":7,"id":"da86d52c_575b6a21","line":47,"in_reply_to":"da86d52c_0eb667f9","updated":"2015-02-18 18:56:44.000000000","message":"i think we should be ok... that or global-reqs needs to be fixed","commit_id":"fb42d1d1d71509aaf6ec5521c467f239e6ea8eaf"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6d13e4a19ad23cb8f35db91e7b8fc5cb6a2620be","unresolved":false,"context_lines":[{"line_number":44,"context_line":"tooz\u003e\u003d0.3 # Apache-2.0"},{"line_number":45,"context_line":"WebOb\u003e\u003d1.2.3"},{"line_number":46,"context_line":"WSME\u003e\u003d0.6"},{"line_number":47,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":8,"id":"da86d52c_b778267f","line":47,"updated":"2015-02-18 18:57:40.000000000","message":"i\u0027m thinking can we also move this to test-requirements since it\u0027s not required for ceilometer unless you are polling ceph","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"7428fe020529b207fe16fef3a64327a20c8c3907","unresolved":false,"context_lines":[{"line_number":44,"context_line":"tooz\u003e\u003d0.3 # Apache-2.0"},{"line_number":45,"context_line":"WebOb\u003e\u003d1.2.3"},{"line_number":46,"context_line":"WSME\u003e\u003d0.6"},{"line_number":47,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":8,"id":"da86d52c_377d16b3","line":47,"in_reply_to":"da86d52c_b778267f","updated":"2015-02-18 19:20:01.000000000","message":"Yes, I did the same in my first patch (ie patch set#1). But later its suggested to add this package in requirements.txt and requirement-py3.txt,\ninstead of test-requirements.txt, because, tox will use requirement.txt and test-requirement.txt. I see this package needs to be in requirement.txt, when a user takes the ceph meters. Isn\u0027t?","commit_id":"d61befdf7a7aef24dd85567ec9f8b4fb183c2679"}],"test-requirements.txt":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c62f33bde54068be04d2d83b58acaab975821e05","unresolved":false,"context_lines":[{"line_number":25,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":26,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":27,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":28,"context_line":"requests-aws"}],"source_content_type":"text/plain","patch_set":4,"id":"da86d52c_3b98cabf","line":28,"updated":"2015-02-04 04:17:35.000000000","message":"move it to requirements.txt and requirement-py3.txt","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"ecf3ccd7d8245d86fb810fc61250a7f204713f4a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":26,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":27,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":28,"context_line":"requests-aws"}],"source_content_type":"text/plain","patch_set":4,"id":"da86d52c_b0404b35","line":28,"in_reply_to":"da86d52c_3b98cabf","updated":"2015-02-04 12:44:19.000000000","message":"Not needed, as I have submitted a patch to add the \"requests-aws\" to global-requirement.txt. Once that patch merged, I can remove this.","commit_id":"35de5bc554dc4862beb53cedb63aaa628a6b7081"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5bfbe57b4a74c718653ceaaa627258ef64da1cae","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":30,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":31,"context_line":"gabbi\u003e\u003d0.6.0"},{"line_number":32,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":9,"id":"da86d52c_a3627aaa","line":32,"updated":"2015-02-19 18:06:54.000000000","message":"Do we need that comment on the licensing?","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"9acf431007619c15030f3dff159edc0dedf06b1e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":30,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":31,"context_line":"gabbi\u003e\u003d0.6.0"},{"line_number":32,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":9,"id":"ba7be1f8_6904b315","line":32,"in_reply_to":"ba7be1f8_6331320b","updated":"2015-02-20 11:50:39.000000000","message":"OK. Will remove the licensing info here.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"f132b81ed41de339b5046479fa6c5d7dcd0ffec4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":30,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":31,"context_line":"gabbi\u003e\u003d0.6.0"},{"line_number":32,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":9,"id":"ba7be1f8_6331320b","line":32,"in_reply_to":"ba7be1f8_88ec8cc9","updated":"2015-02-20 11:13:29.000000000","message":"Yes, we don\u0027t really need the licensing info in the per-project requirements.txt (as opposed to the global-requirements)","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"},{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"49302ce9a23fcbb6c2b75812e284898c5b5ea4f6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testscenarios\u003e\u003d0.4"},{"line_number":30,"context_line":"testtools\u003e\u003d0.9.36,!\u003d1.2.0"},{"line_number":31,"context_line":"gabbi\u003e\u003d0.6.0"},{"line_number":32,"context_line":"requests-aws\u003e\u003d0.1.4    # BSD License (3 clause)"}],"source_content_type":"text/plain","patch_set":9,"id":"ba7be1f8_88ec8cc9","line":32,"in_reply_to":"da86d52c_a3627aaa","updated":"2015-02-20 05:33:59.000000000","message":"Tough to answer this - because one reviewer comment as \"missing the licensing info\" with -1. And I have added that. Am OK with or without licensing info, but it should sync with the process.","commit_id":"a5406ac8bd7d46cdd5696893b7ee8ffd7a1d138b"}]}
