)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"c094d4bda8f46831067d2fa3b0da519b38558ff5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added Cinder volume/snapshot pollster"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" Allows to get info about the volumes and snapshots condition (same as for images and instances)"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie9c16c77705f5cf74f9c8ad1ef0c7e99fa380113"},{"line_number":12,"context_line":"Closes-Bug: 1367444"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa98f980_e9a13daa","line":9,"updated":"2014-09-10 07:36:48.000000000","message":"Please, format this string in compliance with https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure","commit_id":"e1475f1a4eb3f1ee01d4879de76f123e2e99c59a"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"226a84ba8e9078b4524f8f45c1326d7da85e7803","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added Cinder volume/snapshot pollster"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" Allows to get info about the volumes and snapshots condition (same as for images and instances)"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie9c16c77705f5cf74f9c8ad1ef0c7e99fa380113"},{"line_number":12,"context_line":"Closes-Bug: 1367444"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa98f980_c3260dba","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":1},"updated":"2014-09-10 12:50:38.000000000","message":"Space at the beginning of the string is not needed, and string is longer then 80 chars.","commit_id":"1ab95806d83b424faabbc214a16fe082b0c159ab"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"0cd5332b31efa8a8084927510e33b45244ebc4e4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added Cinder volume/snapshot pollster"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" Allows to get info about the volumes and snapshots condition (same as for images and instances)"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie9c16c77705f5cf74f9c8ad1ef0c7e99fa380113"},{"line_number":12,"context_line":"Closes-Bug: 1367444"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da9df570_eed4da48","line":9,"updated":"2014-09-24 14:41:36.000000000","message":"This line is too long. Max length of line in commit message is 80 letters","commit_id":"2e087262bbcf0e02182f89b84cbd9ce70281d2be"}],"ceilometer/volume/cinder.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"226a84ba8e9078b4524f8f45c1326d7da85e7803","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        service_credentials \u003d cfg.CONF.service_credentials"},{"line_number":39,"context_line":"        # Version selection, currently hard-coded version 1"},{"line_number":40,"context_line":"        cinder \u003d cinderclient(\u00271\u0027, username\u003dksclient.username,"},{"line_number":41,"context_line":"                                      api_key\u003dksclient.auth_token,"},{"line_number":42,"context_line":"                                      auth_url\u003dendpoint,"},{"line_number":43,"context_line":"                                      cacert\u003dservice_credentials.os_cacert,"},{"line_number":44,"context_line":"                                      insecure\u003dservice_credentials.insecure)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_e350710c","line":41,"updated":"2014-09-10 12:50:38.000000000","message":"please check indents in lines 41-44","commit_id":"1ab95806d83b424faabbc214a16fe082b0c159ab"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"226a84ba8e9078b4524f8f45c1326d7da85e7803","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _get_volumes(self, ksclient):"},{"line_number":50,"context_line":"        client \u003d self.get_cinder_client(ksclient)"},{"line_number":51,"context_line":"        search_opts \u003d { \u0027all_tenants\u0027 : 1 }"},{"line_number":52,"context_line":"        volumes \u003d client.volumes.list(detailed\u003dTrue, search_opts\u003dsearch_opts)"},{"line_number":53,"context_line":"        for volume in volumes:"},{"line_number":54,"context_line":"            yield volume"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_c3744d9e","line":51,"updated":"2014-09-10 12:50:38.000000000","message":"here space after brace and after 1 is not needed.","commit_id":"1ab95806d83b424faabbc214a16fe082b0c159ab"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"226a84ba8e9078b4524f8f45c1326d7da85e7803","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def _get_snapshots(self, ksclient):"},{"line_number":88,"context_line":"        client \u003d self.get_cinder_client(ksclient)"},{"line_number":89,"context_line":"        search_opts \u003d { \u0027all_tenants\u0027 : 1 }"},{"line_number":90,"context_line":"        snapshots \u003d client.volume_snapshots.list(detailed\u003dTrue, search_opts\u003dsearch_opts)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        for snapshot in snapshots:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_036f35c6","line":89,"updated":"2014-09-10 12:50:38.000000000","message":"ditto","commit_id":"1ab95806d83b424faabbc214a16fe082b0c159ab"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"226a84ba8e9078b4524f8f45c1326d7da85e7803","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                resource_metadata\u003dself.extract_volume_metadata(volume),"},{"line_number":143,"context_line":"            )"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            "},{"line_number":146,"context_line":"class SnapshotPollster(_Base):"},{"line_number":147,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":148,"context_line":"        for snapshot in self._iter_snapshots(manager.keystone, cache):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_836245d6","line":145,"updated":"2014-09-10 12:50:38.000000000","message":"extra line?","commit_id":"1ab95806d83b424faabbc214a16fe082b0c159ab"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"69c3bee4ba98f6275c16b312863fe6cb0bf1ab5e","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from cinderclient import client"},{"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":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_7f651b1c","line":24,"updated":"2014-09-18 14:00:33.000000000","message":"switch ordering... 3rd party modules before local modules","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"08992d190d1918145ab26839a898a5133be37b26","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":37,"context_line":"        service_credentials \u003d cfg.CONF.service_credentials"},{"line_number":38,"context_line":"        # Version selection, currently hard-coded version 1"},{"line_number":39,"context_line":"        cinder \u003d client.Client(\u00271\u0027, username\u003dksclient.username,"},{"line_number":40,"context_line":"                               api_key\u003dksclient.auth_token,"},{"line_number":41,"context_line":"                               auth_url\u003dendpoint,"},{"line_number":42,"context_line":"                               cacert\u003dservice_credentials.os_cacert,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_03fdb86e","line":39,"updated":"2014-09-17 13:18:03.000000000","message":"I would suggest not to hardcode this, but to use config option with 1 as a default value","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"e57a946dd2ba2de4455202ec020f9292a1e3a93b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":37,"context_line":"        service_credentials \u003d cfg.CONF.service_credentials"},{"line_number":38,"context_line":"        # Version selection, currently hard-coded version 1"},{"line_number":39,"context_line":"        cinder \u003d client.Client(\u00271\u0027, username\u003dksclient.username,"},{"line_number":40,"context_line":"                               api_key\u003dksclient.auth_token,"},{"line_number":41,"context_line":"                               auth_url\u003dendpoint,"},{"line_number":42,"context_line":"                               cacert\u003dservice_credentials.os_cacert,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_a3530c38","line":39,"in_reply_to":"fa98f980_03fdb86e","updated":"2014-09-17 13:20:50.000000000","message":"I think hardcoding it is the only way to go, since a different version of the client likely exposes a different API.","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"798c752933e754e83eaf672b4477f7b33c8b8c02","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type)"},{"line_number":37,"context_line":"        service_credentials \u003d cfg.CONF.service_credentials"},{"line_number":38,"context_line":"        # Version selection, currently hard-coded version 1"},{"line_number":39,"context_line":"        cinder \u003d client.Client(\u00271\u0027, username\u003dksclient.username,"},{"line_number":40,"context_line":"                               api_key\u003dksclient.auth_token,"},{"line_number":41,"context_line":"                               auth_url\u003dendpoint,"},{"line_number":42,"context_line":"                               cacert\u003dservice_credentials.os_cacert,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_75b47b35","line":39,"in_reply_to":"fa98f980_a3530c38","updated":"2014-09-17 13:25:49.000000000","message":"A-ha, ok, sorry for the mad thoughts :)","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"08992d190d1918145ab26839a898a5133be37b26","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _get_volumes(self, ksclient):"},{"line_number":49,"context_line":"        client \u003d self.get_cinder_client(ksclient)"},{"line_number":50,"context_line":"        search_opts \u003d {\u0027all_tenants\u0027: 1}"},{"line_number":51,"context_line":"        volumes \u003d client.volumes.list(detailed\u003dTrue, search_opts\u003dsearch_opts)"},{"line_number":52,"context_line":"        for volume in volumes:"},{"line_number":53,"context_line":"            yield volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_83f0c892","line":50,"updated":"2014-09-17 13:18:03.000000000","message":"I\u0027m not sure if cinderclient supports all_projects - may you please check it and change if that\u0027s true?","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"08992d190d1918145ab26839a898a5133be37b26","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _get_snapshots(self, ksclient):"},{"line_number":87,"context_line":"        client \u003d self.get_cinder_client(ksclient)"},{"line_number":88,"context_line":"        search_opts \u003d {\u0027all_tenants\u0027: 1}"},{"line_number":89,"context_line":"        snapshots \u003d client.volume_snapshots.list(detailed\u003dTrue,"},{"line_number":90,"context_line":"                                                 search_opts\u003dsearch_opts)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_4387c0b6","line":88,"updated":"2014-09-17 13:18:03.000000000","message":"ditto","commit_id":"6e917d62bc6b533647a874dc057bfb915031eba2"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"17a193a9ecbfe7a8dd2737af3fdee28144cbfec9","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            yield sample.Sample("},{"line_number":148,"context_line":"                name\u003d\u0027volume.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                unit\u003d\u0027B\u0027,"},{"line_number":151,"context_line":"                volume\u003dvolume.size,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dgetattr(volume, \u0027os-vol-tenant-attr:tenant_id\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_568244c9","line":150,"updated":"2014-10-09 12:25:27.000000000","message":"This should be GB for consistency with the notification-driven samples for the same meter.\n\nsee: https://github.com/openstack/ceilometer/blob/master/doc/source/measurements.rst#volume-cinder\n\nIn fact, IIRC, GB are the natural unit reported by the cinder API.","commit_id":"348887c08ca3dd9e64be70acb45843a8e8e5ccd4"},{"author":{"_account_id":13273,"name":"Lena Novokshonova","email":"enovokshonova@mirantis.com","username":"enovokshonova"},"change_message_id":"f37e3c8a416effa84f92052a57537a3c04f61dc3","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            yield sample.Sample("},{"line_number":148,"context_line":"                name\u003d\u0027volume.size\u0027,"},{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                unit\u003d\u0027B\u0027,"},{"line_number":151,"context_line":"                volume\u003dvolume.size,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dgetattr(volume, \u0027os-vol-tenant-attr:tenant_id\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_993dbf2f","line":150,"in_reply_to":"baa201ad_568244c9","updated":"2014-10-10 10:22:10.000000000","message":"Done","commit_id":"348887c08ca3dd9e64be70acb45843a8e8e5ccd4"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"17a193a9ecbfe7a8dd2737af3fdee28144cbfec9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":150,"context_line":"                unit\u003d\u0027B\u0027,"},{"line_number":151,"context_line":"                volume\u003dvolume.size,"},{"line_number":152,"context_line":"                user_id\u003dNone,"},{"line_number":153,"context_line":"                project_id\u003dgetattr(volume, \u0027os-vol-tenant-attr:tenant_id\u0027),"},{"line_number":154,"context_line":"                resource_id\u003dvolume.id,"},{"line_number":155,"context_line":"                timestamp\u003dtimeutils.isotime(),"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_36f22070","line":152,"updated":"2014-10-09 12:25:27.000000000","message":"I\u0027m concerned here that the user_id is reported as None for polling-originated samples, where this would be set to the actual user ID for the notification-originated samples for the same meter.","commit_id":"348887c08ca3dd9e64be70acb45843a8e8e5ccd4"}]}
