)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2d9cacd49a3397b29d8b7ae5fceed63979a3804f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This makes it easier to obtain network resources for a set"},{"line_number":12,"context_line":"of credentials in case of preprovisioned accounts."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially-implements: bp/test-accounts-continued"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ie3d5e2471db7371e1109fd24a716e7c449843904"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"fa963961_8fb013f6","line":14,"updated":"2015-03-27 15:27:03.000000000","message":"for the launchpad link, we don\u0027t need \u0027/\u0027 between \u0027bp\u0027 and \u0027test-account..\u0027 like this.\n Partially-implements: bp test-accounts-continued","commit_id":"a16f836ffebeeaa91d26378fd0c4461cbcbd71e3"}],"tempest/api/compute/servers/test_list_server_filters.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c4c9dce6f543441135b163e373cb881c25e4ef6a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                                        wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        cls.fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":92,"context_line":"        if CONF.service_available.neutron:"},{"line_number":93,"context_line":"            if cls.os.credentials.network:"},{"line_number":94,"context_line":"                cls.fixed_network_name \u003d cls.os.credentials.network[\u0027name\u0027]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"baa041b7_46a62d11","line":92,"updated":"2015-04-06 10:24:46.000000000","message":"Need check for isolated cred saame as fixed_network.py - isinstance(creds_provider, isolated_creds.IsolatedCreds","commit_id":"c105dbd19aa27e5e751c989b2f739be27b8d5e56"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"56f4037d46a156bc7181f1c22880409a767c9814","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                                        wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        cls.fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":92,"context_line":"        if CONF.service_available.neutron:"},{"line_number":93,"context_line":"            if cls.os.credentials.network:"},{"line_number":94,"context_line":"                cls.fixed_network_name \u003d cls.os.credentials.network[\u0027name\u0027]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa53dc9_87eec589","line":92,"in_reply_to":"baa041b7_46a62d11","updated":"2015-04-07 10:30:34.000000000","message":"This code is not only wrong, it\u0027s redundant (see L71-74), probably a rebase mistake.","commit_id":"c105dbd19aa27e5e751c989b2f739be27b8d5e56"}],"tempest/common/cred_provider.py":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"7f22a9e0d036c338cd4fe19bd5792216bfc3e995","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.router \u003d None"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def __getattr__(self, item):"},{"line_number":161,"context_line":"        return getattr(self._credential, item)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def set_resources(self, **kwargs):"},{"line_number":164,"context_line":"        for key in kwargs.keys():"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_2b1bfdca","line":161,"updated":"2015-03-26 02:59:05.000000000","message":"_credentials","commit_id":"872b6f4dd70259d62f74b383e3611981d58a1652"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e8aca56d3eba15cf067f3aaaaafb4b699213f5a3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    \"\"\"Readonly Credentials, with network resources added.\"\"\""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, credentials):"},{"line_number":156,"context_line":"        object.__setattr__(self, \u0027_credentials\u0027, credentials)"},{"line_number":157,"context_line":"        self.network \u003d None"},{"line_number":158,"context_line":"        self.subnet \u003d None"},{"line_number":159,"context_line":"        self.router \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_83c0d92b","line":156,"updated":"2015-04-07 21:26:45.000000000","message":"I\u0027m just curious why not just do self._credentials \u003d credentials?","commit_id":"04d09ddb57a97f41c83f37733bcb70c5827c9774"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9a6f261f625eb229e7829df0026426589f385dd1","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    \"\"\"Readonly Credentials, with network resources added.\"\"\""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def __init__(self, credentials):"},{"line_number":156,"context_line":"        object.__setattr__(self, \u0027_credentials\u0027, credentials)"},{"line_number":157,"context_line":"        self.network \u003d None"},{"line_number":158,"context_line":"        self.subnet \u003d None"},{"line_number":159,"context_line":"        self.router \u003d None"}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_a3abdd1c","line":156,"in_reply_to":"9aa53dc9_83c0d92b","updated":"2015-04-07 21:34:30.000000000","message":"In my understanding this is related to being the first time we access this attributed (even if it is for setting it). So it triggers __getattr__ which goes in a recursion infinite loop.","commit_id":"04d09ddb57a97f41c83f37733bcb70c5827c9774"}],"tempest/common/isolated_creds.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"00ec2fc05d84f72ef15046d44ae77643de3da3e2","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        net_client \u003d self.network_admin_client"},{"line_number":384,"context_line":"        for cred in self.isolated_creds:"},{"line_number":385,"context_line":"            creds \u003d self.isolated_creds.get(cred)"},{"line_number":386,"context_line":"            if not any([creds.router, creds.network, creds.subnet]):"},{"line_number":387,"context_line":"                continue"},{"line_number":388,"context_line":"            LOG.debug(\"Clearing network: %(network)s, \""},{"line_number":389,"context_line":"                      \"subnet: %(subnet)s, router: %(router)s\","}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_f6e4133c","line":386,"updated":"2015-03-27 18:34:06.000000000","message":"If the get creds is None on the isolated_creds dict than this will raise an exception, we probably should handle it gracefully, since that would be an expected error to handle and not fail","commit_id":"a16f836ffebeeaa91d26378fd0c4461cbcbd71e3"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"7bc1f1256c7290fbe52212b6d54780c4138a95d4","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                self.network_resources.get(\u0027router\u0027)):"},{"line_number":395,"context_line":"                try:"},{"line_number":396,"context_line":"                    net_client.remove_router_interface_with_subnet_id("},{"line_number":397,"context_line":"                        creds.router[\u0027id\u0027], creds.subnet[\u0027id\u0027])"},{"line_number":398,"context_line":"                except lib_exc.NotFound:"},{"line_number":399,"context_line":"                    LOG.warn(\u0027router with name: %s not found for delete\u0027 %"},{"line_number":400,"context_line":"                             creds.router[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"da9b358b_6de74041","line":397,"updated":"2015-03-28 10:12:09.000000000","message":"I think there is a case about creds.router is None and creds.subnet is not None (or the combination) here. If so, this will raise an exception.","commit_id":"27a551e087f1eab53410cd516e86db7cd1019bd1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b87ec38211868f50faffbb15396ff7fd2b5cc2a3","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                self.network_resources.get(\u0027router\u0027)):"},{"line_number":395,"context_line":"                try:"},{"line_number":396,"context_line":"                    net_client.remove_router_interface_with_subnet_id("},{"line_number":397,"context_line":"                        creds.router[\u0027id\u0027], creds.subnet[\u0027id\u0027])"},{"line_number":398,"context_line":"                except lib_exc.NotFound:"},{"line_number":399,"context_line":"                    LOG.warn(\u0027router with name: %s not found for delete\u0027 %"},{"line_number":400,"context_line":"                             creds.router[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"da9b358b_f848a789","line":397,"in_reply_to":"da9b358b_6de74041","updated":"2015-03-29 17:40:38.000000000","message":"Good point, thank you.","commit_id":"27a551e087f1eab53410cd516e86db7cd1019bd1"}],"tempest/manager.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"00ec2fc05d84f72ef15046d44ae77643de3da3e2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        if not self.credentials.is_valid():"},{"line_number":48,"context_line":"            raise exceptions.InvalidCredentials()"},{"line_number":49,"context_line":"        # Tenant isolation creates TestResources, but Accounts and some tests"},{"line_number":50,"context_line":"        # creates Credentials"},{"line_number":51,"context_line":"        if isinstance(credentials, cred_provider.TestResources):"},{"line_number":52,"context_line":"            creds \u003d self.credentials.credentials"},{"line_number":53,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_16bf77fc","line":50,"updated":"2015-03-27 18:34:06.000000000","message":"Heh, I\u0027ll fix this in the next patch in the series","commit_id":"a16f836ffebeeaa91d26378fd0c4461cbcbd71e3"}]}
