)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"afba228a4b8795b5282669d7655edca3c49972d3","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-09-02 08:16:29 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for \u0027Client\u0027 object has no attribute \u0027tenants\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ief1e5f2a1f3c97c050043e5fb05b86476886c1f3"},{"line_number":10,"context_line":"Closes-Bug: #1600485"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"3a98d1f4_b28de1d4","line":8,"updated":"2016-10-03 21:50:24.000000000","message":"It would be nice to see a message here explaining why these changes have been made. See the following link for the guidelines,\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"d88d3c8a6a57eecd2aaab8f6b914e2eea6a4bf20","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-09-02 08:16:29 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for \u0027Client\u0027 object has no attribute \u0027tenants\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ief1e5f2a1f3c97c050043e5fb05b86476886c1f3"},{"line_number":10,"context_line":"Closes-Bug: #1600485"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"fa6399be_4d0d643d","line":8,"in_reply_to":"3a98d1f4_b28de1d4","updated":"2016-10-12 14:46:06.000000000","message":"Done","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shaik Apsar \u003csa709c@intl.att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-16 17:19:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for \u0027Client\u0027 object has no attribute \u0027tenants\u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"publish_quota_notifications method was implemented in"},{"line_number":10,"context_line":"trove/taskmanager/manager.py as implementation part of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"da6895a0_39da8f79","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":50},"updated":"2016-10-20 19:42:40.000000000","message":"Are you sure about this? Last time I saw the error it gives me an EmptyCatalog error. See my comment on the bug for the exact error message/logs.","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":15,"context_line":"notification events will be defined by the quota_notification_interval"},{"line_number":16,"context_line":"configuration value in trove-taskmanager.conf file."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Each time taskmanager is failing to prepare \u0027dbaas.quotas\u0027 notification"},{"line_number":19,"context_line":"with an error \u0027Client object has no attribute tenants\u0027 and the root"},{"line_number":20,"context_line":"cause for the failure is publish_quota_notifications method is trying"},{"line_number":21,"context_line":"to get tenant list using \u0027novaclient\u0027 instead of using \u0027keystoneclient\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This patch includes following enhancements."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"da6895a0_f95c97ef","line":21,"range":{"start_line":18,"start_character":1,"end_line":21,"end_character":71},"updated":"2016-10-20 19:42:40.000000000","message":"Consider updating your repositories to the current master and try again, I received an EmptyCatalog error this time around.","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This patch includes following enhancements."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"1. Customized devstack/plugin.sh to have correct nova admin credentials"},{"line_number":26,"context_line":"   in all the trove configuration files."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"2. Implemented new keystone_client_trove_admin method in"},{"line_number":29,"context_line":"   trove/common/single_tenant_remote.py to prepare the keystoneclient"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"da6895a0_d940b30a","line":26,"range":{"start_line":25,"start_character":1,"end_line":26,"end_character":40},"updated":"2016-10-20 19:42:40.000000000","message":"I was able to confirm the fix without using the devstack plugin, can you submit this as a seperate patch?","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":25,"context_line":"1. Customized devstack/plugin.sh to have correct nova admin credentials"},{"line_number":26,"context_line":"   in all the trove configuration files."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"2. Implemented new keystone_client_trove_admin method in"},{"line_number":29,"context_line":"   trove/common/single_tenant_remote.py to prepare the keystoneclient"},{"line_number":30,"context_line":"   using the nova admin credentials from trove-taskmanager."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"3. Enhanced the publish_quota_notifications method in"},{"line_number":33,"context_line":"   trove/taskmanager/manager.py to get the tenant list using keystone"},{"line_number":34,"context_line":"   client."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"4. Included tenant_id in \u0027dbaas.quotas\u0027 notification payload."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"da6895a0_7c031510","line":34,"range":{"start_line":28,"start_character":1,"end_line":34,"end_character":10},"updated":"2016-10-20 19:42:40.000000000","message":"these two can be done in separate patches.","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"4. Included tenant_id in \u0027dbaas.quotas\u0027 notification payload."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"5. Removed admin_token from the context, so that notication will not"},{"line_number":39,"context_line":"   have admin_token details."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"6. Unittest for keystone_client_trove_admin method in"},{"line_number":42,"context_line":"   trove/tests/unittests/common/test_single_tenant_remote.py"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"da6895a0_39ad2f32","line":39,"range":{"start_line":38,"start_character":2,"end_line":39,"end_character":28},"updated":"2016-10-20 19:42:40.000000000","message":"This also can be done in a seperate patch.","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"}],"releasenotes/notes/devstack-region-configuration-dbd38073089103e9.yaml":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"8398ee5b5c29e2981b6963d63c947f7a2d83c666","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fix for EmptyCatalog error in trove with devstack."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"dada55a8_8d902697","line":3,"updated":"2016-07-25 13:59:15.000000000","message":"I question whether a release note is required for a devstack only change.","commit_id":"cbfb78ff66c738b0e62cb500d00efe5cb63954df"}],"trove/common/notification.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"afba228a4b8795b5282669d7655edca3c49972d3","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        notifier \u003d rpc.get_notifier("},{"line_number":284,"context_line":"            service\u003d\u0027taskmanager\u0027, publisher_id\u003dCONF.host)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        # clear out context.auth_token so it does not get logged"},{"line_number":287,"context_line":"        if self.context is not None:"},{"line_number":288,"context_line":"            self.context.auth_token \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        notifier.info(self.context, DBaaSQuotas.event_type, self.payload)"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_af4f3e32","line":288,"range":{"start_line":286,"start_character":7,"end_line":288,"end_character":42},"updated":"2016-10-03 21:50:24.000000000","message":"After removing these lines, I still don\u0027t receive any logs. What is the purpose of hiding this?","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"d88d3c8a6a57eecd2aaab8f6b914e2eea6a4bf20","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        notifier \u003d rpc.get_notifier("},{"line_number":284,"context_line":"            service\u003d\u0027taskmanager\u0027, publisher_id\u003dCONF.host)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        # clear out context.auth_token so it does not get logged"},{"line_number":287,"context_line":"        if self.context is not None:"},{"line_number":288,"context_line":"            self.context.auth_token \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        notifier.info(self.context, DBaaSQuotas.event_type, self.payload)"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"fa6399be_f0bd2fd8","line":288,"range":{"start_line":286,"start_character":7,"end_line":288,"end_character":42},"in_reply_to":"3a98d1f4_af4f3e32","updated":"2016-10-12 14:46:06.000000000","message":"We won\u0027t see any difference in logs with above change. This change is meant for \"dbaas.quota\" notification payload should not have the  admin auth_token value. Code was using nova admin password as auth_token.\n\nhttps://github.com/openstack/trove/blob/master/trove/taskmanager/manager.py#L52","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"f2e04a31005552b78317d574b75463b4a52e82b2","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        self.context \u003d context"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        self.payload \u003d {"},{"line_number":270,"context_line":"            \u0027tenant_id\u0027: quota.tenant_id,"},{"line_number":271,"context_line":"            \u0027resource\u0027: quota.resource,"},{"line_number":272,"context_line":"            \u0027in_use\u0027: usage.in_use,"},{"line_number":273,"context_line":"            \u0027reserved\u0027: usage.reserved,"}],"source_content_type":"text/x-python","patch_set":46,"id":"da6895a0_5f580357","line":270,"range":{"start_line":270,"start_character":12,"end_line":270,"end_character":41},"updated":"2016-10-20 19:42:40.000000000","message":"Ok this line is the only thing you need to fix this error. Everything else you should submit in a separate patches that I have identified in the commit msg.","commit_id":"416465db52ecf1361a5721ccdbb28063fef85c84"}],"trove/common/remote.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"8398ee5b5c29e2981b6963d63c947f7a2d83c666","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"dada55a8_0dca76a1","updated":"2016-07-25 13:59:15.000000000","message":"did we get some merge issues?","commit_id":"cbfb78ff66c738b0e62cb500d00efe5cb63954df"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"afba228a4b8795b5282669d7655edca3c49972d3","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    return client"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def create_admin_keystone_client(context):"},{"line_number":193,"context_line":"    auth \u003d v2.Password(username\u003dCONF.nova_proxy_admin_user,"},{"line_number":194,"context_line":"                       password\u003dCONF.nova_proxy_admin_pass,"},{"line_number":195,"context_line":"                       tenant_id\u003dCONF.nova_proxy_admin_tenant_id,"}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_6f00d634","line":192,"range":{"start_line":192,"start_character":4,"end_line":192,"end_character":32},"updated":"2016-10-03 21:50:24.000000000","message":"keystone_client","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"e8b29f9c582e15d4c1b6ce4752deed09d68abc8a","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    return client"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def create_admin_keystone_client(context):"},{"line_number":193,"context_line":"    auth \u003d v2.Password(username\u003dCONF.nova_proxy_admin_user,"},{"line_number":194,"context_line":"                       password\u003dCONF.nova_proxy_admin_pass,"},{"line_number":195,"context_line":"                       tenant_id\u003dCONF.nova_proxy_admin_tenant_id,"}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_43ccd1ba","line":192,"range":{"start_line":192,"start_character":4,"end_line":192,"end_character":32},"in_reply_to":"3a98d1f4_6f00d634","updated":"2016-10-03 22:51:32.000000000","message":"In this case, Trove service is getting tenant list based on the nova admin user credentials from the trove-taskmanager.conf file. I think the other methods in this class is using tenant auth_token from the TroveContext to make openstack api calls, that\u0027s the reason i kept the method name as  create_admin_keystone_client. Please let me know still if i need to make the method name change.","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"d88d3c8a6a57eecd2aaab8f6b914e2eea6a4bf20","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    return client"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def create_admin_keystone_client(context):"},{"line_number":193,"context_line":"    auth \u003d v2.Password(username\u003dCONF.nova_proxy_admin_user,"},{"line_number":194,"context_line":"                       password\u003dCONF.nova_proxy_admin_pass,"},{"line_number":195,"context_line":"                       tenant_id\u003dCONF.nova_proxy_admin_tenant_id,"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa6399be_d0882b25","line":192,"range":{"start_line":192,"start_character":4,"end_line":192,"end_character":32},"in_reply_to":"3a98d1f4_6f00d634","updated":"2016-10-12 14:46:06.000000000","message":"This method was removed from here and add in trove/common/single_tenant_remote.py","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"afba228a4b8795b5282669d7655edca3c49972d3","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def create_admin_keystone_client(context):"},{"line_number":193,"context_line":"    auth \u003d v2.Password(username\u003dCONF.nova_proxy_admin_user,"},{"line_number":194,"context_line":"                       password\u003dCONF.nova_proxy_admin_pass,"},{"line_number":195,"context_line":"                       tenant_id\u003dCONF.nova_proxy_admin_tenant_id,"},{"line_number":196,"context_line":"                       auth_url\u003dPROXY_AUTH_URL)"},{"line_number":197,"context_line":"    sess \u003d session.Session(auth\u003dauth)"},{"line_number":198,"context_line":"    keystone \u003d KeystoneClient.Client(session\u003dsess)"},{"line_number":199,"context_line":"    return keystone"}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_cf33aa12","line":196,"range":{"start_line":193,"start_character":23,"end_line":196,"end_character":46},"updated":"2016-10-03 21:50:24.000000000","message":"username\u003dCONF.keystone_proxy_admin_user\npassword\u003dCONF.keystone_proxy_admin_pass\n...\n...","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"d88d3c8a6a57eecd2aaab8f6b914e2eea6a4bf20","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"def create_admin_keystone_client(context):"},{"line_number":193,"context_line":"    auth \u003d v2.Password(username\u003dCONF.nova_proxy_admin_user,"},{"line_number":194,"context_line":"                       password\u003dCONF.nova_proxy_admin_pass,"},{"line_number":195,"context_line":"                       tenant_id\u003dCONF.nova_proxy_admin_tenant_id,"},{"line_number":196,"context_line":"                       auth_url\u003dPROXY_AUTH_URL)"},{"line_number":197,"context_line":"    sess \u003d session.Session(auth\u003dauth)"},{"line_number":198,"context_line":"    keystone \u003d KeystoneClient.Client(session\u003dsess)"},{"line_number":199,"context_line":"    return keystone"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa6399be_f0b9afcc","line":196,"range":{"start_line":193,"start_character":23,"end_line":196,"end_character":46},"in_reply_to":"3a98d1f4_cf33aa12","updated":"2016-10-12 14:46:06.000000000","message":"We don\u0027t need create new configuration parameters for keystone and we can use existing nova_proxy_*.","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"afba228a4b8795b5282669d7655edca3c49972d3","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    keystone \u003d KeystoneClient.Client(session\u003dsess)"},{"line_number":199,"context_line":"    return keystone"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"create_dns_client \u003d import_class(CONF.remote_dns_client)"},{"line_number":203,"context_line":"create_guest_client \u003d import_class(CONF.remote_guest_client)"},{"line_number":204,"context_line":"create_nova_client \u003d import_class(CONF.remote_nova_client)"}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_0fb5927c","line":201,"updated":"2016-10-03 21:50:24.000000000","message":"create_keystone_client \u003d import_class(CONF.remote_keystone_client)\n\nWhere remote_keystone_client is defined something like..\ncfg.StrOpt(\u0027remote_keystone_client\u0027,\n               default\u003d\u0027trove.common.remote.keystone_client\u0027,\nhelp\u003d\u0027Client to send Keystone calls to.\u0027),","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"}],"trove/taskmanager/manager.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"44502719ee6dcfb176180997d73888964145bac2","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        ks_client \u003d remote.create_admin_keystone_client(self.admin_context)"},{"line_number":421,"context_line":"        for tenant in ks_client.tenants.list():"},{"line_number":422,"context_line":"            resource_quota \u003d QUOTAS.get_all_quotas_by_tenant(tenant.id)"},{"line_number":423,"context_line":"            for resource in resource_quota:"},{"line_number":424,"context_line":"                quota \u003d resource_quota[resource]"},{"line_number":425,"context_line":"                usage \u003d QUOTAS.get_quota_usage(quota)"},{"line_number":426,"context_line":"                DBaaSQuotas(self.admin_context, quota, usage).notify()"},{"line_number":427,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3a98d1f4_c8eba011","line":424,"range":{"start_line":423,"start_character":12,"end_line":424,"end_character":48},"updated":"2016-10-03 22:17:37.000000000","message":"Also we can do one of the following here since we are only using the values here: \n\n# Python 2 and 3: option 1\nfrom builtins import dict\n\nheights \u003d dict(Fred\u003d175, Anne\u003d166, Joe\u003d192)\nfor key in heights.values():    # efficient on Py2 and Py3\n    ...\n\n# Python 2 and 3: option 2\nfrom builtins import itervalues\n# or\nfrom six import itervalues\n\nfor key in itervalues(heights):\n    ...\n\nFrom\nhttp://python-future.org/compatible_idioms.html#iterating-through-dict-keys-values-items","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"d88d3c8a6a57eecd2aaab8f6b914e2eea6a4bf20","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        ks_client \u003d remote.create_admin_keystone_client(self.admin_context)"},{"line_number":421,"context_line":"        for tenant in ks_client.tenants.list():"},{"line_number":422,"context_line":"            resource_quota \u003d QUOTAS.get_all_quotas_by_tenant(tenant.id)"},{"line_number":423,"context_line":"            for resource in resource_quota:"},{"line_number":424,"context_line":"                quota \u003d resource_quota[resource]"},{"line_number":425,"context_line":"                usage \u003d QUOTAS.get_quota_usage(quota)"},{"line_number":426,"context_line":"                DBaaSQuotas(self.admin_context, quota, usage).notify()"},{"line_number":427,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"fa6399be_902153fe","line":424,"range":{"start_line":423,"start_character":12,"end_line":424,"end_character":48},"in_reply_to":"3a98d1f4_c8eba011","updated":"2016-10-12 14:46:06.000000000","message":"Done","commit_id":"dbc157cf07c7efcb3d94953f90538afccd5fbeff"}]}
