)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"cd585a3c3c9d4a79ba24d247b0fbbc810dfa8bae","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I257e8cefc2b699fc979c717531cd9ba77233d94b"},{"line_number":18,"context_line":"Depends-On: I3d9889c59f75db360815cf66004949b22085e123"},{"line_number":19,"context_line":"Partially Implements: blueprint policy-in-code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff82abbf_24f02ffd","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":46},"updated":"2017-11-27 17:19:16.000000000","message":"Is there a cloudkitty specific specification for this work? This link resolves to different projects in Launchpad.","commit_id":"acbd8ee20b522dd7b4e5a75585f401ef052a3cce"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8f72b89fef4ec53d123615679b5d528c616975db","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I257e8cefc2b699fc979c717531cd9ba77233d94b"},{"line_number":18,"context_line":"Depends-On: I3d9889c59f75db360815cf66004949b22085e123"},{"line_number":19,"context_line":"Partially Implements: blueprint policy-in-code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff82abbf_a4a99f7c","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":46},"in_reply_to":"ff82abbf_24f02ffd","updated":"2017-11-27 17:25:25.000000000","message":"And is the completion of the work or more patches needed after this to complete it? The governance update has a Depends-on for this patch, so if this actually does complete the work it shouldn\u0027t be marked as Partially Implements.","commit_id":"acbd8ee20b522dd7b4e5a75585f401ef052a3cce"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"4c3a36ce35847bbe90ebb9deb5ab7aece2160310","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I257e8cefc2b699fc979c717531cd9ba77233d94b"},{"line_number":18,"context_line":"Depends-On: I3d9889c59f75db360815cf66004949b22085e123"},{"line_number":19,"context_line":"Partially Implements: blueprint policy-in-code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff82abbf_033077e7","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":46},"in_reply_to":"ff82abbf_24f02ffd","updated":"2017-11-28 01:33:41.000000000","message":"Yes, see https://blueprints.launchpad.net/cloudkitty/+spec/policy-in-code","commit_id":"acbd8ee20b522dd7b4e5a75585f401ef052a3cce"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"4c3a36ce35847bbe90ebb9deb5ab7aece2160310","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I257e8cefc2b699fc979c717531cd9ba77233d94b"},{"line_number":18,"context_line":"Depends-On: I3d9889c59f75db360815cf66004949b22085e123"},{"line_number":19,"context_line":"Partially Implements: blueprint policy-in-code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ff82abbf_8359e735","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":46},"in_reply_to":"ff82abbf_a4a99f7c","updated":"2017-11-28 01:33:41.000000000","message":"This should be the last patch to finish policy in code BP. I will revise the commit message soon.","commit_id":"acbd8ee20b522dd7b4e5a75585f401ef052a3cce"}],"cloudkitty/common/policies/collector.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"54929acd12cfa8b658680f203e8c2ba32dea4689","unresolved":false,"context_lines":[{"line_number":18,"context_line":"collector_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027collector:list_mappings\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027role:admin\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027Return the list of every services mapped to a collector.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/collector/mappings\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027LIST\u0027}]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_9d20109d","line":21,"range":{"start_line":21,"start_character":18,"end_line":21,"end_character":31},"updated":"2017-10-02 14:25:19.000000000","message":"One comment practice that makes reusing the same rule/role consistently is pulling these into base.py and importing them.\n\n  ROLE_ADMIN \u003d \u0027role:admin\u0027\n\n\n  from cloudkitty.common.policies import base\n  ...\n  policy.DocumentedRuleDefault(\n      name\u003d\u0027collector:list_mappings\u0027,\n      check_str\u003dbase.ROLE_ADMIN,\n      description\u003d\u0027...\u0027,\n      operations\u003d[...]\n  )","commit_id":"2a9a0514a43585b8d5801992398c38942a5c0785"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"c07b378d524b7036f1982ca32deaed20b5b9830f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"collector_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027collector:list_mappings\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027role:admin\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027Return the list of every services mapped to a collector.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/collector/mappings\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027LIST\u0027}]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_64287896","line":21,"range":{"start_line":21,"start_character":18,"end_line":21,"end_character":31},"in_reply_to":"7f515b1d_9d20109d","updated":"2017-10-09 03:16:35.000000000","message":"I will update to use the suggested way, thanks!","commit_id":"2a9a0514a43585b8d5801992398c38942a5c0785"}],"cloudkitty/common/policies/rating.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ad0556a7bf7cf4906d20f1f45f5a5d9a08ac2bad","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                     \u0027method\u0027: \u0027PUT\u0027}]),"},{"line_number":39,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":40,"context_line":"        name\u003d\u0027rating:quote\u0027,"},{"line_number":41,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":42,"context_line":"        description\u003d\u0027Get an instant quote based on multiple resource \u0027"},{"line_number":43,"context_line":"                    \u0027descriptions.\u0027,"},{"line_number":44,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/quote\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_2904f714","line":41,"range":{"start_line":41,"start_character":17,"end_line":41,"end_character":21},"updated":"2017-10-19 18:31:31.000000000","message":"This is related to my comment on the previous patch, but we could give this a name and import it from base (instead of an empty string implying a special meaning).","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"465d78012b53a982718fa22650b19b2f5b159ce4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                     \u0027method\u0027: \u0027PUT\u0027}]),"},{"line_number":39,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":40,"context_line":"        name\u003d\u0027rating:quote\u0027,"},{"line_number":41,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":42,"context_line":"        description\u003d\u0027Get an instant quote based on multiple resource \u0027"},{"line_number":43,"context_line":"                    \u0027descriptions.\u0027,"},{"line_number":44,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/quote\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_ebe6cce8","line":41,"range":{"start_line":41,"start_character":17,"end_line":41,"end_character":21},"in_reply_to":"3f4b6375_2904f714","updated":"2017-10-20 02:41:36.000000000","message":"Done","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ad0556a7bf7cf4906d20f1f45f5a5d9a08ac2bad","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/quote\u0027,"},{"line_number":45,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":46,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":47,"context_line":"        name\u003d\u0027rating:module_config\u0027,"},{"line_number":48,"context_line":"        check_str\u003dbase.ROLE_ADMIN,"},{"line_number":49,"context_line":"        description\u003d\u0027Trigger a rating module list reload.\u0027,"},{"line_number":50,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/reload_modules\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_09225ba5","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":34},"updated":"2017-10-19 18:31:31.000000000","message":"This doesn\u0027t look like it was in the previous policy.json file.","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"465d78012b53a982718fa22650b19b2f5b159ce4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/quote\u0027,"},{"line_number":45,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":46,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":47,"context_line":"        name\u003d\u0027rating:module_config\u0027,"},{"line_number":48,"context_line":"        check_str\u003dbase.ROLE_ADMIN,"},{"line_number":49,"context_line":"        description\u003d\u0027Trigger a rating module list reload.\u0027,"},{"line_number":50,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/rating/reload_modules\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_8bcd185f","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":34},"in_reply_to":"3f4b6375_09225ba5","updated":"2017-10-20 02:41:36.000000000","message":"No, it was there https://review.openstack.org/#/c/500764/12/etc/cloudkitty/policy.json","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"}],"cloudkitty/common/policies/storage.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ad0556a7bf7cf4906d20f1f45f5a5d9a08ac2bad","unresolved":false,"context_lines":[{"line_number":18,"context_line":"storage_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027storage:list_data_frames\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027Return a list of rated resources for a time period \u0027"},{"line_number":23,"context_line":"                    \u0027and a tenant.\u0027,"},{"line_number":24,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/storage/dataframes\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_e95edfe4","line":21,"range":{"start_line":21,"start_character":17,"end_line":21,"end_character":21},"updated":"2017-10-19 18:31:31.000000000","message":"Same comment here as in the previous module.","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"465d78012b53a982718fa22650b19b2f5b159ce4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"storage_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027storage:list_data_frames\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027Return a list of rated resources for a time period \u0027"},{"line_number":23,"context_line":"                    \u0027and a tenant.\u0027,"},{"line_number":24,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/storage/dataframes\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_4bd720ef","line":21,"range":{"start_line":21,"start_character":17,"end_line":21,"end_character":21},"in_reply_to":"3f4b6375_e95edfe4","updated":"2017-10-20 02:41:36.000000000","message":"Done","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"}],"devstack/plugin.sh":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"54929acd12cfa8b658680f203e8c2ba32dea4689","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    touch $CLOUDKITTY_CONF"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/policy.json $CLOUDKITTY_CONF_DIR"},{"line_number":136,"context_line":"    cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/api_paste.ini $CLOUDKITTY_CONF_DIR"},{"line_number":137,"context_line":"    iniset_rpc_backend cloudkitty $CLOUDKITTY_CONF DEFAULT"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-sh","patch_set":6,"id":"7f515b1d_3d391cd6","line":135,"range":{"start_line":135,"start_character":4,"end_line":135,"end_character":77},"updated":"2017-10-02 14:25:19.000000000","message":"Can this be completely deleted now?","commit_id":"2a9a0514a43585b8d5801992398c38942a5c0785"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"c07b378d524b7036f1982ca32deaed20b5b9830f","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    touch $CLOUDKITTY_CONF"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/policy.json $CLOUDKITTY_CONF_DIR"},{"line_number":136,"context_line":"    cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/api_paste.ini $CLOUDKITTY_CONF_DIR"},{"line_number":137,"context_line":"    iniset_rpc_backend cloudkitty $CLOUDKITTY_CONF DEFAULT"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-sh","patch_set":6,"id":"7f515b1d_242040ac","line":135,"range":{"start_line":135,"start_character":4,"end_line":135,"end_character":77},"in_reply_to":"7f515b1d_3d391cd6","updated":"2017-10-09 03:16:35.000000000","message":"yes, in next patch...","commit_id":"2a9a0514a43585b8d5801992398c38942a5c0785"},{"author":{"_account_id":26767,"name":"Martin CAMEY","email":"martin.camey@objectif-libre.com","username":"MC"},"change_message_id":"a09b3dd7e9d6a57f6e23336d57d5642429ff8cdb","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    sudo mkdir -m 755 -p $CLOUDKITTY_API_LOG_DIR"},{"line_number":131,"context_line":"    sudo chown $STACK_USER $CLOUDKITTY_API_LOG_DIR"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    touch $CLOUDKITTY_CONF"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # generate policy sample file"},{"line_number":136,"context_line":"    tox -e genpolicy"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3f4b6375_ba24ab0e","line":133,"range":{"start_line":133,"start_character":4,"end_line":133,"end_character":26},"updated":"2017-10-19 15:33:01.000000000","message":"You need to create the file like this,","commit_id":"20e87faba832e8f49c3fe4611f283cad7e2705b9"},{"author":{"_account_id":26767,"name":"Martin CAMEY","email":"martin.camey@objectif-libre.com","username":"MC"},"change_message_id":"a09b3dd7e9d6a57f6e23336d57d5642429ff8cdb","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    iniset $CLOUDKITTY_CONF oslo_policy policy_file \u0027policy.yaml\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/api_paste.ini $CLOUDKITTY_CONF_DIR"},{"line_number":141,"context_line":"    iniset_rpc_backend cloudkitty $CLOUDKITTY_CONF DEFAULT"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    iniset $CLOUDKITTY_CONF DEFAULT notification_topics \u0027notifications\u0027"},{"line_number":144,"context_line":"    iniset $CLOUDKITTY_CONF DEFAULT debug \"$ENABLE_DEBUG_LOG_LEVEL\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    # auth"},{"line_number":147,"context_line":"    iniset $CLOUDKITTY_CONF authinfos auth_type v3password"},{"line_number":148,"context_line":"    iniset $CLOUDKITTY_CONF authinfos auth_protocol http"},{"line_number":149,"context_line":"    iniset $CLOUDKITTY_CONF authinfos auth_url \"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":150,"context_line":"    iniset $CLOUDKITTY_CONF authinfos identity_uri \"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":151,"context_line":"    iniset $CLOUDKITTY_CONF authinfos username cloudkitty"},{"line_number":152,"context_line":"    iniset $CLOUDKITTY_CONF authinfos password $SERVICE_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3f4b6375_da6c0738","line":149,"range":{"start_line":141,"start_character":4,"end_line":149,"end_character":73},"updated":"2017-10-19 15:33:01.000000000","message":"then set the content like this, but you can do it at the end of that function, so the code manage configuration file by file.","commit_id":"20e87faba832e8f49c3fe4611f283cad7e2705b9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ad0556a7bf7cf4906d20f1f45f5a5d9a08ac2bad","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    touch $CLOUDKITTY_CONF"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # generate policy sample file"},{"line_number":136,"context_line":"    tox -e genpolicy"},{"line_number":137,"context_line":"    cp etc/cloudkitty/policy.yaml.sample \"$CLOUDKITTY_CONF_DIR/policy.yaml\""},{"line_number":138,"context_line":"    iniset $CLOUDKITTY_CONF oslo_policy policy_file \u0027policy.yaml\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/api_paste.ini $CLOUDKITTY_CONF_DIR"},{"line_number":141,"context_line":"    iniset_rpc_backend cloudkitty $CLOUDKITTY_CONF DEFAULT"}],"source_content_type":"text/x-sh","patch_set":10,"id":"3f4b6375_290ab7d1","line":138,"range":{"start_line":135,"start_character":4,"end_line":138,"end_character":65},"updated":"2017-10-19 18:31:31.000000000","message":"Unless we\u0027re going to specify overrides, this might not be needed at all.","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"465d78012b53a982718fa22650b19b2f5b159ce4","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    touch $CLOUDKITTY_CONF"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # generate policy sample file"},{"line_number":136,"context_line":"    tox -e genpolicy"},{"line_number":137,"context_line":"    cp etc/cloudkitty/policy.yaml.sample \"$CLOUDKITTY_CONF_DIR/policy.yaml\""},{"line_number":138,"context_line":"    iniset $CLOUDKITTY_CONF oslo_policy policy_file \u0027policy.yaml\u0027"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    cp $CLOUDKITTY_DIR$CLOUDKITTY_CONF_DIR/api_paste.ini $CLOUDKITTY_CONF_DIR"},{"line_number":141,"context_line":"    iniset_rpc_backend cloudkitty $CLOUDKITTY_CONF DEFAULT"}],"source_content_type":"text/x-sh","patch_set":10,"id":"3f4b6375_cb39d041","line":138,"range":{"start_line":135,"start_character":4,"end_line":138,"end_character":65},"in_reply_to":"3f4b6375_290ab7d1","updated":"2017-10-20 02:41:36.000000000","message":"Yes, it\u0027s useless in our gate. Setting this would make it easier to test policy overriding in a fresh devstack.","commit_id":"ef924aeb2040435b741b8076ffc399bf16148e05"}],"etc/cloudkitty/policy.json":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"54929acd12cfa8b658680f203e8c2ba32dea4689","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    \"storage:list_data_frames\": \"\","},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    \"rating:module_config\": \"role:admin\""},{"line_number":20,"context_line":"}"}],"source_content_type":"application/json","patch_set":6,"id":"7f515b1d_fd2ee489","side":"PARENT","line":20,"updated":"2017-10-02 14:25:19.000000000","message":"Woo!","commit_id":"9f2cf57e73e4d4448a41684ca02f4bc36039803f"}]}
