)]}'
{"patrole_tempest_plugin/tests/api/compute/rbac_base.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbdc1c61cc1a564f30e5ec2ed46555e4ae173fb9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class BaseV2ComputeRbacTest(compute_base.BaseV2ComputeTest):"},{"line_number":22,"context_line":"    _api_version \u003d 2"},{"line_number":23,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_be7d77b3","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":20},"updated":"2017-02-01 19:07:19.000000000","message":"Is this API version still supported? I don\u0027t think so","commit_id":"88f05b01dc9be15d41fc32a0d6a3450aad86bb37"},{"author":{"_account_id":20411,"name":"Julian","email":"julian.sy@att.com","username":"syjulian"},"change_message_id":"dfe29138c031f53c93640166bf4e40aecd809a57","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class BaseV2ComputeRbacTest(compute_base.BaseV2ComputeTest):"},{"line_number":22,"context_line":"    _api_version \u003d 2"},{"line_number":23,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_c1c42661","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":20},"in_reply_to":"3a461143_be7d77b3","updated":"2017-02-01 19:19:41.000000000","message":"so should this be removed altogether?","commit_id":"88f05b01dc9be15d41fc32a0d6a3450aad86bb37"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"13cf331b7af6c939880b63725bb6fd57373dd193","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class BaseV2ComputeRbacTest(compute_base.BaseV2ComputeTest):"},{"line_number":22,"context_line":"    _api_version \u003d 2"},{"line_number":23,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_d88df32b","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":20},"in_reply_to":"3a461143_c1c42661","updated":"2017-02-01 21:42:41.000000000","message":"Yes, we won\u0027t be testing API v2 in Patrole","commit_id":"88f05b01dc9be15d41fc32a0d6a3450aad86bb37"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1fc922c27cc15db4e02280683a4ae311d5b8da69","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":31,"context_line":"            raise cls.skipException("},{"line_number":32,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":33,"context_line":"        cfg_min_version \u003d CONF.compute.min_microversion"},{"line_number":34,"context_line":"        cfg_max_version \u003d CONF.compute.max_microversion"},{"line_number":35,"context_line":"        api_version_utils.check_skip_with_microversion(cls.min_microversion,"},{"line_number":36,"context_line":"                                                       cls.max_microversion,"},{"line_number":37,"context_line":"                                                       cfg_min_version,"},{"line_number":38,"context_line":"                                                       cfg_max_version)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_b9d63bef","line":38,"range":{"start_line":33,"start_character":8,"end_line":38,"end_character":71},"updated":"2017-02-02 22:17:47.000000000","message":"I like this change a lot.","commit_id":"35193997b5192e9deee1ceea3fdae55484f83780"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"55c445b2b9725e023bbce1b13c406844cd187000","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":31,"context_line":"            raise cls.skipException("},{"line_number":32,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":33,"context_line":"        cfg_min_version \u003d CONF.compute.min_microversion"},{"line_number":34,"context_line":"        cfg_max_version \u003d CONF.compute.max_microversion"},{"line_number":35,"context_line":"        api_version_utils.check_skip_with_microversion(cls.min_microversion,"},{"line_number":36,"context_line":"                                                       cls.max_microversion,"},{"line_number":37,"context_line":"                                                       cfg_min_version,"},{"line_number":38,"context_line":"                                                       cfg_max_version)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_35c7d413","line":38,"range":{"start_line":33,"start_character":0,"end_line":38,"end_character":71},"updated":"2017-02-03 17:55:54.000000000","message":"I know this is partially my fault, but this logic is already included in the skip_checks method for BaseV2ComputeTest: https://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py\n\nThus this can be removed, as it is redundant.","commit_id":"4e2b86f99d07fb7be08f60390dd2556cfd3a1b53"}],"patrole_tempest_plugin/tests/api/compute/test_absolute_limits_rbac.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"8efc16f92d9ef17f55c764111117adc292f7d2c5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":15,"context_line":"from patrole_tempest_plugin.rbac_utils import rbac_utils"},{"line_number":16,"context_line":"from patrole_tempest_plugin.tests.api.compute import rbac_base"},{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"CONF \u003d config.CONF"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_50eeeeec","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":34},"updated":"2017-02-06 15:03:48.000000000","message":"Can you fix the imports here too?","commit_id":"077945df5e1d29048a4a2ab1b9d816feb332654c"}],"patrole_tempest_plugin/tests/api/compute/test_access_ips_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"41a93d14fc1592698ab90f450fc0d7d950f2eef2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                \u0027%s skipped as no compute extensions enabled\u0027 % cls.__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @rbac_rule_validation.action(service\u003d\"nova\","},{"line_number":40,"context_line":"                                 rule\u003d\"os_compute_api:os-access-ips\")"},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027f5811ed1-95d4-4085-a69e-87e6bd958738\u0027)"},{"line_number":42,"context_line":"    def test_access_ip(self):"},{"line_number":43,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_5b37734c","line":40,"range":{"start_line":40,"start_character":39,"end_line":40,"end_character":67},"updated":"2017-01-31 18:17:20.000000000","message":"This is a v2.1 API. 2.0 APIs begin with compute_extension.\n\nCheck out tempest/tempest/api/compute/base.py: https://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py\n\nI believe you might have to check whether CONF.compute.max/min_microversion include 2.1.","commit_id":"0c6c9e5d83a54b621a7fc57b7f1b10b039d94fd8"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbdc1c61cc1a564f30e5ec2ed46555e4ae173fb9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Corp"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_be02d709","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"updated":"2017-02-01 19:07:19.000000000","message":"Corporation","commit_id":"88f05b01dc9be15d41fc32a0d6a3450aad86bb37"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbdc1c61cc1a564f30e5ec2ed46555e4ae173fb9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class RBACAccessIpsTestJSON(rbac_base.BaseV21ComputeRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def tearDown(self):"},{"line_number":29,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_3e3fc7d7","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":27},"updated":"2017-02-01 19:07:19.000000000","message":"Our naming convention has changed (see other files for examples)","commit_id":"88f05b01dc9be15d41fc32a0d6a3450aad86bb37"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1fc922c27cc15db4e02280683a4ae311d5b8da69","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Corp"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_799e9355","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":26},"updated":"2017-02-02 22:17:47.000000000","message":"nit: can you make this # Copyright 2017 AT\u0026T Corporation.","commit_id":"35193997b5192e9deee1ceea3fdae55484f83780"},{"author":{"_account_id":20411,"name":"Julian","email":"julian.sy@att.com","username":"syjulian"},"change_message_id":"6286c7d21e1c50514bcb1fabb1e6770d975b85de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Corp"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_dcaa4270","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":26},"in_reply_to":"3a461143_799e9355","updated":"2017-02-03 14:20:36.000000000","message":"Done","commit_id":"35193997b5192e9deee1ceea3fdae55484f83780"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1fc922c27cc15db4e02280683a4ae311d5b8da69","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":18,"context_line":"from patrole_tempest_plugin.rbac_utils import rbac_utils"},{"line_number":19,"context_line":"from patrole_tempest_plugin.tests.api.compute import rbac_base"},{"line_number":20,"context_line":"from tempest import config"},{"line_number":21,"context_line":"from tempest.lib import decorators"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_b9bf1ba9","line":21,"range":{"start_line":17,"start_character":0,"end_line":21,"end_character":34},"updated":"2017-02-02 22:17:47.000000000","message":"nit: Can you separate these out to match openstack import conventions?  Should match this format: http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"35193997b5192e9deee1ceea3fdae55484f83780"},{"author":{"_account_id":20411,"name":"Julian","email":"julian.sy@att.com","username":"syjulian"},"change_message_id":"6286c7d21e1c50514bcb1fabb1e6770d975b85de","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":18,"context_line":"from patrole_tempest_plugin.rbac_utils import rbac_utils"},{"line_number":19,"context_line":"from patrole_tempest_plugin.tests.api.compute import rbac_base"},{"line_number":20,"context_line":"from tempest import config"},{"line_number":21,"context_line":"from tempest.lib import decorators"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_fcb53ed0","line":21,"range":{"start_line":17,"start_character":0,"end_line":21,"end_character":34},"in_reply_to":"3a461143_b9bf1ba9","updated":"2017-02-03 14:20:36.000000000","message":"Done","commit_id":"35193997b5192e9deee1ceea3fdae55484f83780"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"c50421ca87750e802ee8a815aca1dd6828498454","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class RBACAccessIpsTestJSON(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def tearDown(self):"},{"line_number":29,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_fa361eb3","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":27},"updated":"2017-02-03 15:07:46.000000000","message":"Naming convention has changed (see other files for examples)","commit_id":"4e2b86f99d07fb7be08f60390dd2556cfd3a1b53"}]}
