)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2db8b19b5067a62df1a72161a6699197580bb5f0","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-07-29 16:30:01 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add tenant_name when list nova usage"},{"line_number":8,"context_line":"Fix for \"Bug #1318770\""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ibb556da5985f21aa1398cdb6fd69aaf03123b62c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_29b5fb7d","line":8,"updated":"2016-08-02 17:27:26.000000000","message":"nit: this should be\n\n  Closes-Bug: #1318770\n\nPlease also make sure you\u0027ve read https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages and compose your commit message according to those guidelines","commit_id":"a9f967a55a02ed4c9fb959471b1babf0c1481fe7"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9680555d1e6efef0d4b2e06b6ab09a6aafc18fc4","unresolved":false,"context_lines":[{"line_number":276,"context_line":"tenant_name:"},{"line_number":277,"context_line":"  description: |"},{"line_number":278,"context_line":"    The name of the tenant in a multi-tenancy cloud."},{"line_number":279,"context_line":"  in: path"},{"line_number":280,"context_line":"  required: false"},{"line_number":281,"context_line":"  type: string"},{"line_number":282,"context_line":"volume_id_path:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3ac371cc_2adfd43a","line":279,"range":{"start_line":279,"start_character":6,"end_line":279,"end_character":10},"updated":"2016-08-18 12:33:11.000000000","message":"It seems a body parameter.","commit_id":"390e19337172c5efc4d864da5ab355d669ce4d30"}],"nova/api/openstack/compute/simple_tenant_usage.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2db8b19b5067a62df1a72161a6699197580bb5f0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                        context, period_start, period_stop, tenant_id,"},{"line_number":115,"context_line":"                        expected_attrs\u003d[\u0027flavor\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        keystone \u003d self._keystone_client(context, (3, 0))"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        rval \u003d {}"},{"line_number":120,"context_line":"        flavors \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_94e35a33","line":117,"updated":"2016-08-02 17:27:26.000000000","message":"What will happen if 3.0 is not configured in this deployment?","commit_id":"a9f967a55a02ed4c9fb959471b1babf0c1481fe7"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2db8b19b5067a62df1a72161a6699197580bb5f0","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            info[\u0027vcpus\u0027] \u003d instance.flavor.vcpus"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"            info[\u0027tenant_id\u0027] \u003d instance.project_id"},{"line_number":142,"context_line":"            info[\u0027tenant_name\u0027] \u003d keystone.projects.get(instance.project_id).name"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            # NOTE(mriedem): We need to normalize the start/end times back"},{"line_number":145,"context_line":"            # to timezone-naive so the response doesn\u0027t change after the"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_74e6a617","line":142,"updated":"2016-08-02 17:27:26.000000000","message":"If I understand this correctly, it will do a HTTP request per instance, which would be horrible for performance on a large number of instances. Even if you do only once per tenant it still is not that good. \n\nCan we do one bulk request to Keystone at the very end, maybe?","commit_id":"a9f967a55a02ed4c9fb959471b1babf0c1481fe7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5dbc212f4ece13c86dd8b651dfe8d55ccb859cb3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        instances \u003d objects.InstanceList.get_active_by_window_joined("},{"line_number":114,"context_line":"                        context, period_start, period_stop, tenant_id,"},{"line_number":115,"context_line":"                        expected_attrs\u003d[\u0027flavor\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        rval \u003d {}"},{"line_number":118,"context_line":"        flavors \u003d {}"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_c6b13c49","line":116,"updated":"2016-08-10 11:17:37.000000000","message":"unrelated change?","commit_id":"726ba021541192ab5cd4853e053cf2720ce23c7a"}],"nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5dbc212f4ece13c86dd8b651dfe8d55ccb859cb3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo_policy import policy as oslo_policy"},{"line_number":20,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_263e588c","side":"PARENT","line":17,"updated":"2016-08-10 11:17:37.000000000","message":"This breaks the standard import formatting:\n\nstdlib imports\nblankline\nthird part imports\nblankline\nimports from this package","commit_id":"766611f5908fc6b09585c3210a992eb2212af904"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5dbc212f4ece13c86dd8b651dfe8d55ccb859cb3","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def setUp(self):"},{"line_number":261,"context_line":"        super(SimpleTenantUsageControllerTestV21, self).setUp()"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        self.context \u003d context.RequestContext(\u0027fakeuser\u0027, \u0027fake-project\u0027)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        self.inst_obj \u003d _fake_instance(START, STOP, instance_id\u003d1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_66f690fa","side":"PARENT","line":262,"updated":"2016-08-10 11:17:37.000000000","message":"unrelated change?","commit_id":"766611f5908fc6b09585c3210a992eb2212af904"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9680555d1e6efef0d4b2e06b6ab09a6aafc18fc4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo_policy import policy as oslo_policy"},{"line_number":20,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_ea3c9c94","side":"PARENT","line":17,"updated":"2016-08-18 12:33:11.000000000","message":"It should not be removed.\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"29ae67ab553d1318190ac84049cc476fa18d4301"}]}
