)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"0b7e932ae449eb567acb02130efcddb9fcd1ce8d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add network support to the accounts providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commits adds support for specifying the network to use with a"},{"line_number":10,"context_line":"user/tenant into the accounts.ymal file. You can only specify a single"},{"line_number":11,"context_line":"network which will be the network used for all that requires a"},{"line_number":12,"context_line":"pre-existing network. This also means regardless of which cred provider"},{"line_number":13,"context_line":"is configured the fixed_network can assume a TestResource object will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"7aaa499b_39592d5b","line":10,"updated":"2015-04-14 13:49:56.000000000","message":"Small typo\n\naccounts.yaml","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1fcab888dc213a0ca8522f56e686ebfbc58cad1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add network support to the accounts providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commits adds support for specifying the network to use with a"},{"line_number":10,"context_line":"user/tenant into the accounts.ymal file. You can only specify a single"},{"line_number":11,"context_line":"network which will be the network used for all that requires a"},{"line_number":12,"context_line":"pre-existing network. This also means regardless of which cred provider"},{"line_number":13,"context_line":"is configured the fixed_network can assume a TestResource object will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"7aaa499b_614c9770","line":10,"in_reply_to":"7aaa499b_39592d5b","updated":"2015-04-14 15:08:03.000000000","message":"Done","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"}],"tempest/api/compute/servers/test_list_server_filters.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ed1c073c50d3309dff1a8248135389985b40be8f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        network \u003d cls.get_tenant_network()"},{"line_number":71,"context_line":"        if network:"},{"line_number":72,"context_line":"            # NOTE(mtreinish) Depending on which network service is in use the"},{"line_number":73,"context_line":"            # network name is either called name or label"},{"line_number":74,"context_line":"            if network.get(\u0027name\u0027):"},{"line_number":75,"context_line":"                cls.fixed_network_name \u003d network[\u0027name\u0027]"},{"line_number":76,"context_line":"            elif network.get(\u0027label\u0027):"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_987f1f66","line":73,"range":{"start_line":73,"start_character":15,"end_line":73,"end_character":56},"updated":"2015-04-14 12:51:37.000000000","message":"I think it would be better to have this logic in the credential providers - i.e. make sure that both name and label are always set - so tests won\u0027t have to repeat this check here.","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1fcab888dc213a0ca8522f56e686ebfbc58cad1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        network \u003d cls.get_tenant_network()"},{"line_number":71,"context_line":"        if network:"},{"line_number":72,"context_line":"            # NOTE(mtreinish) Depending on which network service is in use the"},{"line_number":73,"context_line":"            # network name is either called name or label"},{"line_number":74,"context_line":"            if network.get(\u0027name\u0027):"},{"line_number":75,"context_line":"                cls.fixed_network_name \u003d network[\u0027name\u0027]"},{"line_number":76,"context_line":"            elif network.get(\u0027label\u0027):"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_ffd3a25d","line":73,"in_reply_to":"7aaa499b_987f1f66","updated":"2015-04-14 15:08:03.000000000","message":"Done","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"}],"tempest/common/accounts.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"83f9c27fda1f7c6b56568b053a7730c03ede61c9","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        free_hash \u003d self._get_free_hash(useable_hashes)"},{"line_number":186,"context_line":"        creds \u003d self.hash_dict[\u0027creds\u0027][free_hash]"},{"line_number":187,"context_line":"        net_creds \u003d cred_provider.TestResources(creds)"},{"line_number":188,"context_line":"        net_creds.network \u003d self.hash_dict[\u0027network\u0027].get(free_hash, None)"},{"line_number":189,"context_line":"        return net_creds"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    @lockutils.synchronized(\u0027test_accounts_io\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa963961_eb0901df","line":188,"range":{"start_line":188,"start_character":44,"end_line":188,"end_character":51},"updated":"2015-03-26 14:27:12.000000000","message":"The rest of the code around TestResources expects network to be a dict, with id and name. So when spawning a server we have the network ID available. So it would be good to resolve the network name to an ID.\n\nYou could actually move code from fixed_networks into here for that.","commit_id":"28e10682b176a8388a4a86b10ca74e4505d0bcbd"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"107e08432579d30c79d197c18bf7e68d2794618f","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    def admin_available(self):"},{"line_number":264,"context_line":"        return self.is_role_available(CONF.identity.admin_role)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def _get_network_from_name(self, name, compute_networks_client): "},{"line_number":267,"context_line":"        if not name:"},{"line_number":268,"context_line":"            network \u003d {\u0027name\u0027: name}"},{"line_number":269,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa041b7_f16c470a","line":266,"updated":"2015-04-01 19:10:45.000000000","message":"white space..","commit_id":"3103dfdf9ea747d0287670dcd709ad512387ff7f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ed1c073c50d3309dff1a8248135389985b40be8f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    def admin_available(self):"},{"line_number":266,"context_line":"        return self.is_role_available(CONF.identity.admin_role)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _get_network_from_name(self, name, compute_networks_client):"},{"line_number":269,"context_line":"        if not name:"},{"line_number":270,"context_line":"            network \u003d {\u0027name\u0027: name}"},{"line_number":271,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_93f6e0f7","line":268,"updated":"2015-04-14 12:51:37.000000000","message":"Do we have to redefine this function here? I was hoping to reuse it from common.fixed_networks","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1fcab888dc213a0ca8522f56e686ebfbc58cad1","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    def admin_available(self):"},{"line_number":266,"context_line":"        return self.is_role_available(CONF.identity.admin_role)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _get_network_from_name(self, name, compute_networks_client):"},{"line_number":269,"context_line":"        if not name:"},{"line_number":270,"context_line":"            network \u003d {\u0027name\u0027: name}"},{"line_number":271,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_2461fd39","line":268,"in_reply_to":"7aaa499b_93f6e0f7","updated":"2015-04-14 15:08:03.000000000","message":"Done","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ed1c073c50d3309dff1a8248135389985b40be8f","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        net_clients \u003d clients.Manager(credentials\u003dcredential)"},{"line_number":298,"context_line":"        compute_network_client \u003d net_clients.networks_client"},{"line_number":299,"context_line":"        net_name \u003d self.hash_dict[\u0027networks\u0027].get(hash, None)"},{"line_number":300,"context_line":"        network \u003d self._get_network_from_name(net_name, compute_network_client)"},{"line_number":301,"context_line":"        net_creds.set_resources(network\u003dnetwork)"},{"line_number":302,"context_line":"        return net_creds"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_7321144d","line":300,"updated":"2015-04-14 12:51:37.000000000","message":"The only (little) concern I have with this, is that we do a lot API calls to always resolve the same network name to an ID. \nThe same problem applies to fixed_networks anyways, so this is not something that we should fix in this patch - as a follow-up we might consider  having some kind of singleton service which is used to resolve all the configuration options we have as names to IDs.","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1fcab888dc213a0ca8522f56e686ebfbc58cad1","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        net_clients \u003d clients.Manager(credentials\u003dcredential)"},{"line_number":298,"context_line":"        compute_network_client \u003d net_clients.networks_client"},{"line_number":299,"context_line":"        net_name \u003d self.hash_dict[\u0027networks\u0027].get(hash, None)"},{"line_number":300,"context_line":"        network \u003d self._get_network_from_name(net_name, compute_network_client)"},{"line_number":301,"context_line":"        net_creds.set_resources(network\u003dnetwork)"},{"line_number":302,"context_line":"        return net_creds"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_c1cdabb8","line":300,"in_reply_to":"7aaa499b_7321144d","updated":"2015-04-14 15:08:03.000000000","message":"That\u0027s an interesting idea, I agree it\u0027ll be something worthwhile to purse as a follow up cleanup. I expect this complexity is probably why the original authors of tempest used ids in the config file to avoid a look up cost. (something I really want to kill soon)","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"}],"tempest/common/fixed_network.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"107e08432579d30c79d197c18bf7e68d2794618f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    :return a dict with \u0027id\u0027 and \u0027name\u0027 of the network"},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":38,"context_line":"    network \u003d None"},{"line_number":39,"context_line":"    network \u003d creds_provider.get_primary_creds().network"},{"line_number":40,"context_line":"    if not network:"},{"line_number":41,"context_line":"        if fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa041b7_2a9b60cb","line":38,"updated":"2015-04-01 19:10:45.000000000","message":"Do you still need this line?","commit_id":"3103dfdf9ea747d0287670dcd709ad512387ff7f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"107e08432579d30c79d197c18bf7e68d2794618f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    network \u003d None"},{"line_number":39,"context_line":"    network \u003d creds_provider.get_primary_creds().network"},{"line_number":40,"context_line":"    if not network:"},{"line_number":41,"context_line":"        if fixed_network_name:"},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                resp \u003d compute_networks_client.list_networks("},{"line_number":44,"context_line":"                    name\u003dfixed_network_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa041b7_4ae4643a","line":41,"updated":"2015-04-01 19:10:45.000000000","message":"What about putting the get_network_by_name in some common area, and use it both here and accounts.py?","commit_id":"3103dfdf9ea747d0287670dcd709ad512387ff7f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ed1c073c50d3309dff1a8248135389985b40be8f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    network \u003d networks[0]"},{"line_number":60,"context_line":"                else:"},{"line_number":61,"context_line":"                    msg \u003d \"Configured fixed_network_name not found\""},{"line_number":62,"context_line":"                    if caller:"},{"line_number":63,"context_line":"                        LOG.warn(\u0027(%s) %s\u0027 % (caller, msg))"},{"line_number":64,"context_line":"                    else:"},{"line_number":65,"context_line":"                        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_f39be4c7","line":62,"updated":"2015-04-14 12:51:37.000000000","message":"This (L62-66) seems to be a leftover from https://review.openstack.org/#/c/172506/","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"0b7e932ae449eb567acb02130efcddb9fcd1ce8d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    network \u003d networks[0]"},{"line_number":60,"context_line":"                else:"},{"line_number":61,"context_line":"                    msg \u003d \"Configured fixed_network_name not found\""},{"line_number":62,"context_line":"                    if caller:"},{"line_number":63,"context_line":"                        LOG.warn(\u0027(%s) %s\u0027 % (caller, msg))"},{"line_number":64,"context_line":"                    else:"},{"line_number":65,"context_line":"                        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_2b7af0f1","line":62,"in_reply_to":"7aaa499b_f39be4c7","updated":"2015-04-14 13:49:56.000000000","message":"+1","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1fcab888dc213a0ca8522f56e686ebfbc58cad1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                        LOG.warn(\u0027(%s) %s\u0027 % (caller, msg))"},{"line_number":64,"context_line":"                    else:"},{"line_number":65,"context_line":"                        LOG.warn(msg)"},{"line_number":66,"context_line":"                    raise lib_exc.NotFound()"},{"line_number":67,"context_line":"                # To be consistent with network isolation, add name is only"},{"line_number":68,"context_line":"                # label is available"},{"line_number":69,"context_line":"                name \u003d network.get(\u0027name\u0027, network.get(\u0027label\u0027))"}],"source_content_type":"text/x-python","patch_set":24,"id":"7aaa499b_c1292b39","line":66,"updated":"2015-04-14 15:08:03.000000000","message":"Well this exception was new for this patch. But I\u0027ll move the logging to the parent patch","commit_id":"502bba1b5f74fa7d225d946ec812cf24dd94a49b"}]}
