)]}'
{"patrole_tempest_plugin/tests/api/compute/rbac_base.py":[{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"f440f449a9e07af63c9697800271b0715fa93b95","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        cls.clear_aggregates()"},{"line_number":48,"context_line":"        super(BaseV2ComputeRbacTest, cls).resource_cleanup()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @classmethod"},{"line_number":51,"context_line":"    def clear_aggregates(cls):"},{"line_number":52,"context_line":"        for aggregate in cls.aggregates:"},{"line_number":53,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":54,"context_line":"                cls.aggregates_client.delete_aggregate,"},{"line_number":55,"context_line":"                aggregate[\u0027aggregate\u0027][\u0027id\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class BaseV2ComputeAdminRbacTest(compute_base.BaseV2ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_8bf8d8c4","line":55,"range":{"start_line":50,"start_character":4,"end_line":55,"end_character":45},"updated":"2017-02-14 20:48:03.000000000","message":"Worth being it\u0027s own method?","commit_id":"84b0813a541b1c586bcca42fcdb08c7d8c4033bc"}],"patrole_tempest_plugin/tests/api/compute/test_aggregates_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"4d62b172b098f2343dc6b12a0961c17505c824c8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        super(AggregatesRbacTest, cls).setup_clients()"},{"line_number":44,"context_line":"        cls.hosts_client \u003d cls.os.hosts_client"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @classmethod"},{"line_number":47,"context_line":"    def resource_setup(cls):"},{"line_number":48,"context_line":"        super(AggregatesRbacTest, cls).resource_setup()"},{"line_number":49,"context_line":"        cls.aggregates \u003d []"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @classmethod"},{"line_number":52,"context_line":"    def clear_aggregates(cls):"},{"line_number":53,"context_line":"        for aggregate_id in cls.aggregates:"},{"line_number":54,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":55,"context_line":"                cls.aggregates_client.delete_aggregate,"},{"line_number":56,"context_line":"                aggregate_id)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _create_aggregate(self):"},{"line_number":59,"context_line":"        agg_name \u003d data_utils.rand_name(\u0027aggregate\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_db795331","line":56,"range":{"start_line":46,"start_character":0,"end_line":56,"end_character":29},"updated":"2017-02-10 14:56:37.000000000","message":"I believe this should probably go into the rbac compute base class, because arguably other test classes might need an aggregate and automatic clean up of it.\n\nYou also forgot to call clear_aggregates inside resource_cleanup (assuming that\u0027s where it best belongs).","commit_id":"2d14ec2d76663710d4272453f52b3905b8ce5b88"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"f440f449a9e07af63c9697800271b0715fa93b95","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        super(AggregatesRbacTest, cls).setup_clients()"},{"line_number":44,"context_line":"        cls.hosts_client \u003d cls.os.hosts_client"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _create_aggregate(self):"},{"line_number":47,"context_line":"        agg_name \u003d data_utils.rand_name(\u0027aggregate\u0027)"},{"line_number":48,"context_line":"        aggregate \u003d self.aggregates_client.create_aggregate(name\u003dagg_name)"},{"line_number":49,"context_line":"        aggregate_id \u003d aggregate[\u0027aggregate\u0027][\u0027id\u0027]"},{"line_number":50,"context_line":"        self.aggregates.append(aggregate)"},{"line_number":51,"context_line":"        return aggregate_id"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _add_host_to_aggregate(self, aggregate_id):"},{"line_number":54,"context_line":"        host_name \u003d self.hosts_client.list_hosts()[\u0027hosts\u0027][0][\u0027host_name\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_cbec90f5","line":51,"range":{"start_line":46,"start_character":4,"end_line":51,"end_character":27},"updated":"2017-02-14 20:48:03.000000000","message":"Why are aggregates created / deleted at a classlevel when they are created per test case?  I think it is better to create one at resource_setup that all test cases use, or change this method to delete them at the end of test classes with addCleanup?","commit_id":"84b0813a541b1c586bcca42fcdb08c7d8c4033bc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"dc39f23b1f9676eac17b4cd44efb43b2b2317602","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":124,"context_line":"        self._create_aggregate()"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @rbac_rule_validation.action("},{"line_number":127,"context_line":"        service\u003d\"nova\","},{"line_number":128,"context_line":"        rule\u003d\"os_compute_api:os-aggregates:discoverable\")"},{"line_number":129,"context_line":"    @decorators.idempotent_id(\u0027436478f9-22ac-4af6-8b88-432ca68fb2d9\u0027)"},{"line_number":130,"context_line":"    def test_aggregate_discoverable(self):"},{"line_number":131,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":132,"context_line":"        self.extensions_client.show_extension(\u0027os-aggregates\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_7c9ee807","line":132,"range":{"start_line":126,"start_character":0,"end_line":132,"end_character":62},"updated":"2017-02-15 15:43:55.000000000","message":"May you remove this? For others reading this, we\u0027re rolling this back until we get some clarification about this from nova team.","commit_id":"95fca858842c6a08e0071db52c331b3776910afc"}]}
