)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5313,"name":"David Peraza","email":"david_peraza@persistentsys.com","username":"dperaza"},"change_message_id":"ec5f7b9a240a789add733473332c0842a1c95740","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    This patch adds new meters:"},{"line_number":10,"context_line":"        -storage.containers.objects"},{"line_number":11,"context_line":"        -storage.containers.objects.size."},{"line_number":12,"context_line":"    These meters are implemented through a polling Swift"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ic1f3aaf351db0b99392eb13d4f31f2732f87f816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAATn%2F99yo%3D","line":12,"updated":"2013-12-03 23:00:46.000000000","message":"no blueprint for new meters, would expect more description on why new meters are needed","commit_id":"d86b8708623bed8ca36b0a7c91043c8c5c7ea99a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        -storage.containers.objects.size."},{"line_number":12,"context_line":"    These meters are implemented through a polling Swift"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"blueprint: https://wiki.openstack.org/wiki/Ceilometer/blueprints/pollster-swift"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic1f3aaf351db0b99392eb13d4f31f2732f87f816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"AAAATn%2F87%2FY%3D","line":14,"updated":"2013-12-18 15:47:37.000000000","message":"is there a blueprint for this on blueprints.launchpad.net/ceilometer?\n\nplease create one there if there isn\u0027t and set the url for full spec to point to the url above. then edit commit msg to say -\u003e Implements: blueprint \u003cbp-shortname\u003e","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"808403d06869b8bbef829471947ff7bbfdbcda21","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        -storage.containers.objects.size."},{"line_number":12,"context_line":"    These meters are implemented through a polling Swift"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"blueprint: https://wiki.openstack.org/wiki/Ceilometer/blueprints/pollster-swift"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic1f3aaf351db0b99392eb13d4f31f2732f87f816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"AAAATn%2F84CY%3D","line":14,"in_reply_to":"AAAATn%2F87%2FY%3D","updated":"2013-12-19 09:34:46.000000000","message":"have a blueprint on launchpad but its status is complete https://blueprints.launchpad.net/ceilometer/+spec/pollster-swift. But these meters are not implemented.","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"}],"ceilometer/objectstore/swift.py":[{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"1f2ab87c37b505ddaeaa03dbdbdc6a7abc587060","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from urlparse import urljoin"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FPE8%3D","side":"PARENT","line":35,"updated":"2013-11-12 13:53:50.000000000","message":"This is an unnecessary (and incorrect) formatting change.","commit_id":"c40b23f9ecc9ce70ccaa2c072e6a7175009863aa"},{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"1f2ab87c37b505ddaeaa03dbdbdc6a7abc587060","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @staticmethod"},{"line_number":75,"context_line":"    def _neaten_url(endpoint, tenant_id):"},{"line_number":76,"context_line":"        \"\"\"Transform the registered url to standard and valid format."},{"line_number":77,"context_line":"        \"\"\""},{"line_number":78,"context_line":"        return urljoin(endpoint, \u0027/v1/\u0027 + cfg.CONF.reseller_prefix + tenant_id)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FPE4%3D","side":"PARENT","line":76,"updated":"2013-11-12 13:53:50.000000000","message":"Ditto.","commit_id":"c40b23f9ecc9ce70ccaa2c072e6a7175009863aa"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"e75411f68756eb0d77a194bd8011bc1d1a38a734","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            )"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"class ContainersObjectsPollster(_BaseGet):"},{"line_number":150,"context_line":"    \"\"\"Get info about containers usning Swift API"},{"line_number":151,"context_line":"    \"\"\""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7iE%3D","line":149,"updated":"2013-11-18 13:32:56.000000000","message":"typo: usning -\u003e using","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"9ee23036925ca7d40ad2faaa95c908038917ed42","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            )"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"class ContainersObjectsPollster(_BaseGet):"},{"line_number":150,"context_line":"    \"\"\"Get info about containers usning Swift API"},{"line_number":151,"context_line":"    \"\"\""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B27o%3D","line":149,"in_reply_to":"AAAATn%2F%2B7iE%3D","updated":"2013-11-19 10:45:31.000000000","message":"Done","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"e75411f68756eb0d77a194bd8011bc1d1a38a734","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            if not containers_info:"},{"line_number":157,"context_line":"                continue"},{"line_number":158,"context_line":"            for container in containers_info:"},{"line_number":159,"context_line":"                yield sample.Sample("},{"line_number":160,"context_line":"                    name\u003d\u0027storage.containers.objects\u0027,"},{"line_number":161,"context_line":"                    type\u003dsample.TYPE_GAUGE,"},{"line_number":162,"context_line":"                    volume\u003dint(container[\u0027count\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7gI%3D","line":159,"updated":"2013-11-18 13:32:56.000000000","message":"As for me \"storage.containers.objects\" and \"storage.objects.containers\" are very similar. Actually, I\u0027d rather rename \"storage.containers.objects\" \u003d\u003e \"storage.containers.accounts\" . But not sure about the complexity of this renaming. Anyway, the comment is not blocking","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"fc345aaebda8dc67f67c96a0ff435403e2313065","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            if not containers_info:"},{"line_number":157,"context_line":"                continue"},{"line_number":158,"context_line":"            for container in containers_info:"},{"line_number":159,"context_line":"                yield sample.Sample("},{"line_number":160,"context_line":"                    name\u003d\u0027storage.containers.objects\u0027,"},{"line_number":161,"context_line":"                    type\u003dsample.TYPE_GAUGE,"},{"line_number":162,"context_line":"                    volume\u003dint(container[\u0027count\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7Rg%3D","line":159,"in_reply_to":"AAAATn%2F%2B7gI%3D","updated":"2013-11-18 14:15:18.000000000","message":"These names are defined in https://wiki.openstack.org/wiki/Ceilometer/blueprints/pollster-swift","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"e75411f68756eb0d77a194bd8011bc1d1a38a734","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":177,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":178,"context_line":"            containers_info \u003d account[1]"},{"line_number":179,"context_line":"            if not containers_info:"},{"line_number":180,"context_line":"                continue"},{"line_number":181,"context_line":"            for container in containers_info:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7i0%3D","line":178,"updated":"2013-11-18 13:32:56.000000000","message":"From the code \u0027if not containers_info\u0027 I see that account[1] may be empty, right? Maybe you need to check \u0027out of range\u0027 error during account[1]? Because if it may be empty then it may do not exist at all","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"9ee23036925ca7d40ad2faaa95c908038917ed42","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":177,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":178,"context_line":"            containers_info \u003d account[1]"},{"line_number":179,"context_line":"            if not containers_info:"},{"line_number":180,"context_line":"                continue"},{"line_number":181,"context_line":"            for container in containers_info:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B2os%3D","line":178,"in_reply_to":"AAAATn%2F%2B7IM%3D","updated":"2013-11-19 10:45:31.000000000","message":"Swift client always return a tuple(headers, response). I think there is no reason checking length of tuple.","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"146c99a1d391268427108692a23f31fac791b1dc","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":177,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":178,"context_line":"            containers_info \u003d account[1]"},{"line_number":179,"context_line":"            if not containers_info:"},{"line_number":180,"context_line":"                continue"},{"line_number":181,"context_line":"            for container in containers_info:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7IM%3D","line":178,"in_reply_to":"AAAATn%2F%2B7R0%3D","updated":"2013-11-18 14:51:47.000000000","message":"I\u0027m confused only about containers_info \u003d account[1]. Is the condition len(account) \u003d\u003d 1 may become true?","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"fc345aaebda8dc67f67c96a0ff435403e2313065","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":177,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":178,"context_line":"            containers_info \u003d account[1]"},{"line_number":179,"context_line":"            if not containers_info:"},{"line_number":180,"context_line":"                continue"},{"line_number":181,"context_line":"            for container in containers_info:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B7R0%3D","line":178,"in_reply_to":"AAAATn%2F%2B7i0%3D","updated":"2013-11-18 14:15:18.000000000","message":"If the list is empty then \"if not container_info:\" return false and continues with the next iteration of the loop. In this sample using get_account() from Swift API and this method always return a list. Or am I missing something?","commit_id":"7070ae7e88e49ee4970b07acc1d7f4f6b9024a0f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1a3ceff403845410dc1af54aa23442321ca67cf2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    unit\u003d\u0027object\u0027,"},{"line_number":164,"context_line":"                    user_id\u003dNone,"},{"line_number":165,"context_line":"                    project_id\u003dtenant,"},{"line_number":166,"context_line":"                    resource_id\u003dcontainer[\u0027name\u0027],"},{"line_number":167,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":168,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":169,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B6xM%3D","line":166,"updated":"2013-11-18 15:45:42.000000000","message":"this places samples in a different resource as HEAD requests... this could cause querying issues. is there a common data point we can use across all pollsters?","commit_id":"46043d38a2bc12a3e696c68b24087fb562f3c41c"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"b149fc07b281840d253cae45ce1b785b801809d8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    unit\u003d\u0027object\u0027,"},{"line_number":164,"context_line":"                    user_id\u003dNone,"},{"line_number":165,"context_line":"                    project_id\u003dtenant,"},{"line_number":166,"context_line":"                    resource_id\u003dcontainer[\u0027name\u0027],"},{"line_number":167,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":168,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":169,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B29I%3D","line":166,"in_reply_to":"AAAATn%2F%2B6xM%3D","updated":"2013-11-19 10:45:42.000000000","message":"\"resource_id\" is name of container because new meters grab info about containers. And name \u0027\u0027resource_id\" defined in blueprint https://wiki.openstack.org/wiki/Ceilometer/blueprints/pollster-swift Maybe you have other ideas?","commit_id":"46043d38a2bc12a3e696c68b24087fb562f3c41c"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"72727041506e0d53c57d9222bce8908304551436","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from ceilometer import plugin"},{"line_number":32,"context_line":"from ceilometer import sample"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BfWc%3D","side":"PARENT","line":34,"updated":"2013-11-25 15:31:19.000000000","message":"not needed change","commit_id":"b5226f499b7e359aabcbac5edf5816998e6e0af8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"72727041506e0d53c57d9222bce8908304551436","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    \"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":154,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":155,"context_line":"            containers_info \u003d account[1]"},{"line_number":156,"context_line":"            if not containers_info:"},{"line_number":157,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BfQI%3D","line":154,"updated":"2013-11-25 15:31:19.000000000","message":"s/tenant/project/","commit_id":"4d6f2ecf112e70e4c89f5c620dd91005a195e149"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"72727041506e0d53c57d9222bce8908304551436","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":154,"context_line":"        for tenant, account in self._iter_accounts(manager.keystone, cache):"},{"line_number":155,"context_line":"            containers_info \u003d account[1]"},{"line_number":156,"context_line":"            if not containers_info:"},{"line_number":157,"context_line":"                continue"},{"line_number":158,"context_line":"            for container in containers_info:"},{"line_number":159,"context_line":"                yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BfVc%3D","line":156,"updated":"2013-11-25 15:31:19.000000000","message":"Likely this is useless since if it\u0027s empty the for loop will not iterate.","commit_id":"4d6f2ecf112e70e4c89f5c620dd91005a195e149"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"72727041506e0d53c57d9222bce8908304551436","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    unit\u003d\u0027object\u0027,"},{"line_number":164,"context_line":"                    user_id\u003dNone,"},{"line_number":165,"context_line":"                    project_id\u003dtenant,"},{"line_number":166,"context_line":"                    resource_id\u003dcontainer[\u0027name\u0027],"},{"line_number":167,"context_line":"                    timestamp\u003dtimeutils.isotime(),"},{"line_number":168,"context_line":"                    resource_metadata\u003dNone,"},{"line_number":169,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BfOc%3D","line":166,"updated":"2013-11-25 15:31:19.000000000","message":"I think this is not \"unique\" enough.\n\nThere\u0027s a way to list all resources in Ceilometer, and basically this could lead to have (user, project, resource) not necessarily unique as you could name a container with the UUID of an instance for example.\n\nHaving project + \"/\" + container_name might be safer.","commit_id":"4d6f2ecf112e70e4c89f5c620dd91005a195e149"},{"author":{"_account_id":5313,"name":"David Peraza","email":"david_peraza@persistentsys.com","username":"dperaza"},"change_message_id":"ec5f7b9a240a789add733473332c0842a1c95740","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return urljoin(endpoint, \u0027/v1/\u0027 + cfg.CONF.reseller_prefix + tenant_id)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class _BaseGet(_Base):"},{"line_number":86,"context_line":"    method \u003d \u0027get\u0027"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F99wQ%3D","line":85,"updated":"2013-12-03 23:00:46.000000000","message":"Not sure a new Class is need just for a method value, can you just change the method in the constructor of _Base defaulting to head which was what it was there before, then change to get on your two Pollsters","commit_id":"d86b8708623bed8ca36b0a7c91043c8c5c7ea99a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def __init__(self):"},{"line_number":149,"context_line":"        super(ContainersObjectsPollster, self).__init__()"},{"line_number":150,"context_line":"        self.METHOD \u003d \u0027get\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":153,"context_line":"        for project, account in self._iter_accounts(manager.keystone, cache):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F88DQ%3D","line":150,"updated":"2013-12-18 15:47:37.000000000","message":"you can probably just override original attribute. (ie.declare it in class). that way we don\u0027t need this __init__","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def __init__(self):"},{"line_number":174,"context_line":"        super(ContainersSizePollster, self).__init__()"},{"line_number":175,"context_line":"        self.METHOD \u003d \u0027get\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def get_samples(self, manager, cache):"},{"line_number":178,"context_line":"        for project, account in self._iter_accounts(manager.keystone, cache):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F88DA%3D","line":175,"updated":"2013-12-18 15:47:37.000000000","message":"same as above","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"}],"ceilometer/tests/objectstore/test_swift.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1a3ceff403845410dc1af54aa23442321ca67cf2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.manager \u003d TestManager()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        if self.pollster.CACHE_KEY_METHOD \u003d\u003d \u0027swift.head_account\u0027:"},{"line_number":100,"context_line":"            self. ACCOUNTS \u003d HEAD_ACCOUNTS"},{"line_number":101,"context_line":"        else:"},{"line_number":102,"context_line":"            self.ACCOUNTS \u003d GET_ACCOUNTS"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B624%3D","line":100,"updated":"2013-11-18 15:45:42.000000000","message":"self.ACCOUNTS","commit_id":"46043d38a2bc12a3e696c68b24087fb562f3c41c"},{"author":{"_account_id":8478,"name":"Vladislav Kuzmin","email":"vkuzmin@mirantis.com","username":"vkuzmin"},"change_message_id":"f435b0189644adaf54a82cbd63a7914ad8d6256f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.manager \u003d TestManager()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        if self.pollster.CACHE_KEY_METHOD \u003d\u003d \u0027swift.head_account\u0027:"},{"line_number":100,"context_line":"            self. ACCOUNTS \u003d HEAD_ACCOUNTS"},{"line_number":101,"context_line":"        else:"},{"line_number":102,"context_line":"            self.ACCOUNTS \u003d GET_ACCOUNTS"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B2ZA%3D","line":100,"in_reply_to":"AAAATn%2F%2B624%3D","updated":"2013-11-19 11:33:11.000000000","message":"Done","commit_id":"46043d38a2bc12a3e696c68b24087fb562f3c41c"}],"doc/source/measurements.rst":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":147,"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":148,"context_line":"Name                             Type        Volume      Resource     Origin        Note"},{"line_number":149,"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":150,"context_line":"storage.objects                  Gauge          objects  store ID     pollster      Number of objects"},{"line_number":151,"context_line":"storage.objects.size             Gauge                B  store ID     pollster      Total size of stored objects"},{"line_number":152,"context_line":"storage.objects.containers       Gauge       containers  store ID     pollster      Number of containers"},{"line_number":153,"context_line":"storage.objects.incoming.bytes   Delta                B  store ID     notification  Number of incoming bytes"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAATn%2F88FA%3D","line":150,"updated":"2013-12-18 15:47:37.000000000","message":"rebase this back to object (singular)","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":149,"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":150,"context_line":"storage.objects                  Gauge          objects  store ID     pollster      Number of objects"},{"line_number":151,"context_line":"storage.objects.size             Gauge                B  store ID     pollster      Total size of stored objects"},{"line_number":152,"context_line":"storage.objects.containers       Gauge       containers  store ID     pollster      Number of containers"},{"line_number":153,"context_line":"storage.objects.incoming.bytes   Delta                B  store ID     notification  Number of incoming bytes"},{"line_number":154,"context_line":"storage.objects.outgoing.bytes   Delta                B  store ID     notification  Number of outgoing bytes"},{"line_number":155,"context_line":"storage.api.request              Delta          request  store ID     notification  Number of API requests against swift"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAATn%2F88E4%3D","line":152,"updated":"2013-12-18 15:47:37.000000000","message":"same as above","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0841414fe916aa472177a2629d1e295480ab6a70","unresolved":false,"context_lines":[{"line_number":153,"context_line":"storage.objects.incoming.bytes   Delta                B  store ID     notification  Number of incoming bytes"},{"line_number":154,"context_line":"storage.objects.outgoing.bytes   Delta                B  store ID     notification  Number of outgoing bytes"},{"line_number":155,"context_line":"storage.api.request              Delta          request  store ID     notification  Number of API requests against swift"},{"line_number":156,"context_line":"storage.containers.objects       Gauge          objects  str ID/cont  pollster      Number of objects in container"},{"line_number":157,"context_line":"storage.containers.objects.size  Gauge                B  str ID/cont  pollster      Total size of stored objects in container"},{"line_number":158,"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":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAATn%2F88E0%3D","line":156,"updated":"2013-12-18 15:47:37.000000000","message":"same as above","commit_id":"c7d911895728b519a44e5eeca615cbd0c5f11cd7"}]}
