)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"e37b8ce719dced2605a601e69c903c77a948c343","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        return ports[0][\u0027id\u0027]"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    def _create_floating_ip(self, thing, external_network_id, port_id\u003dNone):"},{"line_number":559,"context_line":"        if not port_id:"},{"line_number":560,"context_line":"            port_id \u003d self._get_server_port_id(thing)"},{"line_number":561,"context_line":"        _, result \u003d self.network_client.create_floatingip("},{"line_number":562,"context_line":"            floating_network_id\u003dexternal_network_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_fb967893","side":"PARENT","line":559,"updated":"2014-09-02 02:26:04.000000000","message":"I think these \u0027if not xxx\u0027 to \u0027\u003d xx or\u0027 changes are just cleanups. So I think you should split patches.\nBecause I think that keeps patches simple.","commit_id":"6d37c30e3f55a9783d6a800c08145767e47e66e0"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"23a57c64c956d42d6877676abd38d724a8d9b811","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        return ports[0][\u0027id\u0027]"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    def _create_floating_ip(self, thing, external_network_id, port_id\u003dNone):"},{"line_number":559,"context_line":"        if not port_id:"},{"line_number":560,"context_line":"            port_id \u003d self._get_server_port_id(thing)"},{"line_number":561,"context_line":"        _, result \u003d self.network_client.create_floatingip("},{"line_number":562,"context_line":"            floating_network_id\u003dexternal_network_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_590994dc","side":"PARENT","line":559,"in_reply_to":"fa98f980_fb967893","updated":"2014-09-07 10:20:53.000000000","message":"Done","commit_id":"6d37c30e3f55a9783d6a800c08145767e47e66e0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    # resp part which is not used in scenario tests"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def create_keypair(self, client\u003dNone):"},{"line_number":197,"context_line":"        if not client:"},{"line_number":198,"context_line":"            client \u003d self.keypairs_client"},{"line_number":199,"context_line":"        name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":200,"context_line":"        # We don\u0027t need to create a keypair by pubkey in scenario"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_56730b15","line":197,"updated":"2014-09-08 13:19:59.000000000","message":"client \u003d client or self.keypairs_client","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    def _create_network(self, client\u003dNone, tenant_id\u003dNone,"},{"line_number":485,"context_line":"                        namestart\u003d\u0027network-smoke-\u0027):"},{"line_number":486,"context_line":"        if not client:"},{"line_number":487,"context_line":"            client \u003d self.network_client"},{"line_number":488,"context_line":"        if not tenant_id:"},{"line_number":489,"context_line":"            tenant_id \u003d client.rest_client.tenant_id"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_76948fe8","line":486,"updated":"2014-09-08 13:19:59.000000000","message":"Ditto L197","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                        namestart\u003d\u0027network-smoke-\u0027):"},{"line_number":486,"context_line":"        if not client:"},{"line_number":487,"context_line":"            client \u003d self.network_client"},{"line_number":488,"context_line":"        if not tenant_id:"},{"line_number":489,"context_line":"            tenant_id \u003d client.rest_client.tenant_id"},{"line_number":490,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":491,"context_line":"        _, result \u003d client.create_network(name\u003dname, tenant_id\u003dtenant_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_d6ec5b92","line":488,"updated":"2014-09-08 13:19:59.000000000","message":"Unrelated change...","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                        namestart\u003d\u0027network-smoke-\u0027):"},{"line_number":486,"context_line":"        if not client:"},{"line_number":487,"context_line":"            client \u003d self.network_client"},{"line_number":488,"context_line":"        if not tenant_id:"},{"line_number":489,"context_line":"            tenant_id \u003d client.rest_client.tenant_id"},{"line_number":490,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":491,"context_line":"        _, result \u003d client.create_network(name\u003dname, tenant_id\u003dtenant_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_178321cd","line":488,"in_reply_to":"fa98f980_d6ec5b92","updated":"2014-09-09 06:21:14.000000000","message":"Not unrelated. since client is added, tenant_id is most likely not needed (previously network client was admin and we needed the tenant id, now we can deduce it from client)","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        Create a subnet for the given network within the cidr block"},{"line_number":526,"context_line":"        configured for tenant networks."},{"line_number":527,"context_line":"        \"\"\""},{"line_number":528,"context_line":"        if not client:"},{"line_number":529,"context_line":"            client \u003d self.network_client"},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"        def cidr_in_use(cidr, tenant_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_b69ef705","line":528,"updated":"2014-09-08 13:19:59.000000000","message":"Ditto L197","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    def _create_floating_ip(self, thing, external_network_id, port_id\u003dNone,"},{"line_number":597,"context_line":"                            client\u003dNone):"},{"line_number":598,"context_line":"        if not client:"},{"line_number":599,"context_line":"            client \u003d self.network_client"},{"line_number":600,"context_line":"        if not port_id:"},{"line_number":601,"context_line":"            port_id \u003d self._get_server_port_id(thing)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_d671bbe1","line":598,"updated":"2014-09-08 13:19:59.000000000","message":"Ditto L197","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":781,"context_line":"        self.addCleanup(self.delete_wrapper, secgroup.delete)"},{"line_number":782,"context_line":"        return secgroup"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _default_security_group(self, client\u003dNone, tenant_id\u003dNone):"},{"line_number":785,"context_line":"        \"\"\"Get default secgroup for given tenant_id."},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        :returns: DeletableSecurityGroup -- default secgroup for given tenant"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_36576728","line":784,"updated":"2014-09-08 13:19:59.000000000","message":"Changing order of parameters and making tenant_id optional seems unrelated here.","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":781,"context_line":"        self.addCleanup(self.delete_wrapper, secgroup.delete)"},{"line_number":782,"context_line":"        return secgroup"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _default_security_group(self, client\u003dNone, tenant_id\u003dNone):"},{"line_number":785,"context_line":"        \"\"\"Get default secgroup for given tenant_id."},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        :returns: DeletableSecurityGroup -- default secgroup for given tenant"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_97763105","line":784,"in_reply_to":"fa98f980_36576728","updated":"2014-09-09 06:21:14.000000000","message":"tenant_id used to be required when network_client was admin. it\u0027s not anymore.","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":802,"context_line":"        return net_resources.DeletableSecurityGroup(client\u003dclient,"},{"line_number":803,"context_line":"                                                    **sgs[0])"},{"line_number":804,"context_line":""},{"line_number":805,"context_line":"    def _create_security_group_rule(self, secgroup\u003dNone, client\u003dNone,"},{"line_number":806,"context_line":"                                    tenant_id\u003dNone, **kwargs):"},{"line_number":807,"context_line":"        \"\"\"Create a rule from a dictionary of rule parameters."},{"line_number":808,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_b63a77e5","line":805,"updated":"2014-09-08 13:19:59.000000000","message":"Why changing order of parameters here?","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":802,"context_line":"        return net_resources.DeletableSecurityGroup(client\u003dclient,"},{"line_number":803,"context_line":"                                                    **sgs[0])"},{"line_number":804,"context_line":""},{"line_number":805,"context_line":"    def _create_security_group_rule(self, secgroup\u003dNone, client\u003dNone,"},{"line_number":806,"context_line":"                                    tenant_id\u003dNone, **kwargs):"},{"line_number":807,"context_line":"        \"\"\"Create a rule from a dictionary of rule parameters."},{"line_number":808,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_f7cbfd1b","line":805,"in_reply_to":"fa98f980_b63a77e5","updated":"2014-09-09 06:21:14.000000000","message":"because you almost always need secgroup, but client is less frequently changed","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"}],"tempest/scenario/test_security_groups_basic_ops.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @classmethod"},{"line_number":117,"context_line":"    def check_preconditions(cls):"},{"line_number":118,"context_line":"        if CONF.baremetal.driver_enabled:"},{"line_number":119,"context_line":"            msg \u003d (\u0027Not currently supported by baremetal.\u0027)"},{"line_number":120,"context_line":"            cls.enabled \u003d False"},{"line_number":121,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_b11fe15a","line":118,"updated":"2014-09-08 13:19:59.000000000","message":"Why moving this?","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @classmethod"},{"line_number":117,"context_line":"    def check_preconditions(cls):"},{"line_number":118,"context_line":"        if CONF.baremetal.driver_enabled:"},{"line_number":119,"context_line":"            msg \u003d (\u0027Not currently supported by baremetal.\u0027)"},{"line_number":120,"context_line":"            cls.enabled \u003d False"},{"line_number":121,"context_line":"            raise cls.skipException(msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_f29f8bb2","line":118,"in_reply_to":"fa98f980_b11fe15a","updated":"2014-09-09 06:21:14.000000000","message":"We should check this before starting to look into different tenants.","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            cls.enabled \u003d False"},{"line_number":121,"context_line":"            raise cls.skipException(msg)"},{"line_number":122,"context_line":"        super(TestSecurityGroupsBasicOps, cls).check_preconditions()"},{"line_number":123,"context_line":"        # need alt_creds here to check preconditions"},{"line_number":124,"context_line":"        cls.alt_creds \u003d cls.alt_credentials()"},{"line_number":125,"context_line":"        cls.alt_manager \u003d clients.OfficialClientManager(cls.alt_creds)"},{"line_number":126,"context_line":"        # Credentials from the manager are filled with both IDs and Names"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_31e69145","line":123,"updated":"2014-09-08 13:19:59.000000000","message":"Moving this into check_preconditions does not seem related to the migration to tempest client","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            cls.enabled \u003d False"},{"line_number":121,"context_line":"            raise cls.skipException(msg)"},{"line_number":122,"context_line":"        super(TestSecurityGroupsBasicOps, cls).check_preconditions()"},{"line_number":123,"context_line":"        # need alt_creds here to check preconditions"},{"line_number":124,"context_line":"        cls.alt_creds \u003d cls.alt_credentials()"},{"line_number":125,"context_line":"        cls.alt_manager \u003d clients.OfficialClientManager(cls.alt_creds)"},{"line_number":126,"context_line":"        # Credentials from the manager are filled with both IDs and Names"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_d281a74e","line":123,"in_reply_to":"fa98f980_31e69145","updated":"2014-09-09 06:21:14.000000000","message":"it doesn\u0027t work otherwise.","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"81bd9e3dc37f0c7caef3b981335f062b9ed5d47a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        super(TestSecurityGroupsBasicOps, cls).check_preconditions()"},{"line_number":123,"context_line":"        # need alt_creds here to check preconditions"},{"line_number":124,"context_line":"        cls.alt_creds \u003d cls.alt_credentials()"},{"line_number":125,"context_line":"        cls.alt_manager \u003d clients.OfficialClientManager(cls.alt_creds)"},{"line_number":126,"context_line":"        # Credentials from the manager are filled with both IDs and Names"},{"line_number":127,"context_line":"        cls.alt_creds \u003d cls.alt_manager.credentials"},{"line_number":128,"context_line":"        if (cls.alt_creds is None) or \\"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_f1ade9eb","line":125,"updated":"2014-09-08 13:19:59.000000000","message":"This should be Manager, not OfficialClientManager","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1b8672cb747792a92e596688e0b317e62e68d954","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        super(TestSecurityGroupsBasicOps, cls).check_preconditions()"},{"line_number":123,"context_line":"        # need alt_creds here to check preconditions"},{"line_number":124,"context_line":"        cls.alt_creds \u003d cls.alt_credentials()"},{"line_number":125,"context_line":"        cls.alt_manager \u003d clients.OfficialClientManager(cls.alt_creds)"},{"line_number":126,"context_line":"        # Credentials from the manager are filled with both IDs and Names"},{"line_number":127,"context_line":"        cls.alt_creds \u003d cls.alt_manager.credentials"},{"line_number":128,"context_line":"        if (cls.alt_creds is None) or \\"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_92b8ff2b","line":125,"in_reply_to":"fa98f980_f1ade9eb","updated":"2014-09-09 06:21:14.000000000","message":"Done","commit_id":"79438aa35e46407439c6ea6d5448e9af876f69ef"}]}
