)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":23,"context_line":"the test accounts, tenants, networks, and routers will be deleted."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Also this patch fixes the cleaning up of Neutron resources by changing"},{"line_number":26,"context_line":"order of deleting leaf objects such as ports and subnets."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Lastly cleanup will no longer support tenant isolation.  If"},{"line_number":29,"context_line":"allow_tenant_isolation is set to True in tempest.conf cleanup"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a41bdd9_6d195c79","line":26,"updated":"2015-07-16 18:14:47.000000000","message":"I really think these cleanups should be a separate patch. It\u0027s really a separate logical change","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"c3295b5c5949d8b50f070ebb9f820ab81f689d70","unresolved":false,"context_lines":[{"line_number":23,"context_line":"the test accounts, tenants, networks, and routers will be deleted."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Also this patch fixes the cleaning up of Neutron resources by changing"},{"line_number":26,"context_line":"order of deleting leaf objects such as ports and subnets."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Lastly cleanup will no longer support tenant isolation.  If"},{"line_number":29,"context_line":"allow_tenant_isolation is set to True in tempest.conf cleanup"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_ff6e052e","line":26,"in_reply_to":"9a41bdd9_6d195c79","updated":"2015-07-21 19:16:57.000000000","message":"Done","commit_id":"f4405f69363c227325b417ce524a3877fc705908"}],"tempest/cmd/cleanup.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e1f3a7a7a6094de3900edea18e00c19212ed0607","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        LOG.debug(\"Begin cleanup\")"},{"line_number":100,"context_line":"        is_tenant_isolation \u003d CONF.auth.allow_tenant_isolation"},{"line_number":101,"context_line":"        if is_tenant_isolation:"},{"line_number":102,"context_line":"            LOG.exception(\"Cannot run cleanup using tenant isolation, \""},{"line_number":103,"context_line":"                          \"auth.allow_tenant_isolation is set to True in \""},{"line_number":104,"context_line":"                          \"tempest.conf. Please use test accounts or standard \""},{"line_number":105,"context_line":"                          \"tempest, and alternate tempest, users and tenants.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_f982c251","line":102,"updated":"2015-06-16 09:41:54.000000000","message":"You should use LOG.error because I think you don\u0027t really need to print a stack trace.","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"2cc722e239527d065497200361126b26a792b416","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        LOG.debug(\"Begin cleanup\")"},{"line_number":100,"context_line":"        is_tenant_isolation \u003d CONF.auth.allow_tenant_isolation"},{"line_number":101,"context_line":"        if is_tenant_isolation:"},{"line_number":102,"context_line":"            LOG.exception(\"Cannot run cleanup using tenant isolation, \""},{"line_number":103,"context_line":"                          \"auth.allow_tenant_isolation is set to True in \""},{"line_number":104,"context_line":"                          \"tempest.conf. Please use test accounts or standard \""},{"line_number":105,"context_line":"                          \"tempest, and alternate tempest, users and tenants.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_606ee702","line":102,"in_reply_to":"fa32b979_f982c251","updated":"2015-06-16 20:08:13.000000000","message":"done","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def _cleanup(self):"},{"line_number":99,"context_line":"        LOG.debug(\"Begin cleanup\")"},{"line_number":100,"context_line":"        is_tenant_isolation \u003d CONF.auth.allow_tenant_isolation"},{"line_number":101,"context_line":"        if is_tenant_isolation:"},{"line_number":102,"context_line":"            LOG.error(\"Cleanup does not support using tenant isolation, \""},{"line_number":103,"context_line":"                      \"auth.allow_tenant_isolation is set to True in \""},{"line_number":104,"context_line":"                      \"tempest.conf. Cleanup only supports test accounts, \""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_32e171d1","line":101,"updated":"2015-07-16 18:14:47.000000000","message":"I would like to see a todo or something here because we can do this to some extent because of:\n\nhttp://git.openstack.org/cgit/openstack/tempest/tree/tempest/config.py#n1144\n\nbut I guess that\u0027s not a blocker.","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"c3295b5c5949d8b50f070ebb9f820ab81f689d70","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def _cleanup(self):"},{"line_number":99,"context_line":"        LOG.debug(\"Begin cleanup\")"},{"line_number":100,"context_line":"        is_tenant_isolation \u003d CONF.auth.allow_tenant_isolation"},{"line_number":101,"context_line":"        if is_tenant_isolation:"},{"line_number":102,"context_line":"            LOG.error(\"Cleanup does not support using tenant isolation, \""},{"line_number":103,"context_line":"                      \"auth.allow_tenant_isolation is set to True in \""},{"line_number":104,"context_line":"                      \"tempest.conf. Cleanup only supports test accounts, \""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_1ff5f181","line":101,"in_reply_to":"9a41bdd9_32e171d1","updated":"2015-07-21 19:16:57.000000000","message":"Done","commit_id":"f4405f69363c227325b417ce524a3877fc705908"}],"tempest/cmd/cleanup_service.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e1f3a7a7a6094de3900edea18e00c19212ed0607","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def _add_test_accounts(accounts_file, tenants, users, networks, routers):"},{"line_number":109,"context_line":"    if (accounts_file and os.path.isfile(accounts_file)):"},{"line_number":110,"context_line":"        yaml_file \u003d open(accounts_file, \u0027r\u0027)"},{"line_number":111,"context_line":"        accounts \u003d yaml.load(yaml_file)"},{"line_number":112,"context_line":"        for account in accounts:"},{"line_number":113,"context_line":"            username \u003d account[\u0027username\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_b90f5ae0","line":110,"updated":"2015-06-16 09:41:54.000000000","message":"You should close the file handler. Or use a context-manager.","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"2cc722e239527d065497200361126b26a792b416","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def _add_test_accounts(accounts_file, tenants, users, networks, routers):"},{"line_number":109,"context_line":"    if (accounts_file and os.path.isfile(accounts_file)):"},{"line_number":110,"context_line":"        yaml_file \u003d open(accounts_file, \u0027r\u0027)"},{"line_number":111,"context_line":"        accounts \u003d yaml.load(yaml_file)"},{"line_number":112,"context_line":"        for account in accounts:"},{"line_number":113,"context_line":"            username \u003d account[\u0027username\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_13741766","line":110,"in_reply_to":"fa32b979_b90f5ae0","updated":"2015-06-16 20:08:13.000000000","message":"Done","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"79963bf85824944c707be90a5ab1125835284487","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def _add_test_accounts(accounts_file, tenants, users, networks, routers):"},{"line_number":109,"context_line":"    if (accounts_file and os.path.isfile(accounts_file)):"},{"line_number":110,"context_line":"        yaml_file \u003d open(accounts_file, \u0027r\u0027)"},{"line_number":111,"context_line":"        accounts \u003d yaml.load(yaml_file)"},{"line_number":112,"context_line":"        for account in accounts:"},{"line_number":113,"context_line":"            username \u003d account[\u0027username\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_bec5e73c","line":110,"in_reply_to":"fa32b979_b90f5ae0","updated":"2015-06-16 17:27:03.000000000","message":"with open(accounts_file, \u0027r\u0027) as yaml_file:\n    ...","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e1f3a7a7a6094de3900edea18e00c19212ed0607","unresolved":false,"context_lines":[{"line_number":522,"context_line":"            try:"},{"line_number":523,"context_line":"                client.delete_firewall(firewall[\u0027id\u0027])"},{"line_number":524,"context_line":"            except Exception as e:"},{"line_number":525,"context_line":"                LOG.exception(\"Delete Firewall exception: %s\" % e)"},{"line_number":526,"context_line":"                pass"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def dry_run(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_b9999a70","line":525,"range":{"start_line":525,"start_character":16,"end_line":525,"end_character":22},"updated":"2015-06-16 09:41:54.000000000","message":"Because you use LOG.exception, the exception will be printed twice.","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e1f3a7a7a6094de3900edea18e00c19212ed0607","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                client.delete_firewall(firewall[\u0027id\u0027])"},{"line_number":524,"context_line":"            except Exception as e:"},{"line_number":525,"context_line":"                LOG.exception(\"Delete Firewall exception: %s\" % e)"},{"line_number":526,"context_line":"                pass"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def dry_run(self):"},{"line_number":529,"context_line":"        firewalls \u003d self.list()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_19a526b4","line":526,"range":{"start_line":526,"start_character":14,"end_line":526,"end_character":19},"updated":"2015-06-16 09:41:54.000000000","message":"You don\"t need the \"pass\" no-op statement since you are actually doing something (logging).","commit_id":"a76e51ed79be9b113ba35cf3c135f5c130a5550a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"e7b819504edd7a2bda0938677912e425d3ee8207","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            LOG.debug(\"Test accounts loaded!\")"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            raise Exception(\"Test accounts not configured or \""},{"line_number":92,"context_line":"                            \"accounts file not found.\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_eaa9c991","line":91,"updated":"2015-06-19 16:06:26.000000000","message":"This happens even when run with -h.","commit_id":"484ad536e8c356186cfbcf243e7eef068a906056"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"4edc3b67417a1c5c6651b8754f6604b0cdb056a0","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            LOG.debug(\"Test accounts loaded!\")"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            raise Exception(\"Test accounts not configured or \""},{"line_number":92,"context_line":"                            \"accounts file not found.\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_0b118c5d","line":91,"in_reply_to":"fa32b979_eaa9c991","updated":"2015-06-19 18:32:49.000000000","message":"Fixed in main class so this call happens after initing the arguments.","commit_id":"484ad536e8c356186cfbcf243e7eef068a906056"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2015 Dell Inc."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_3793a351","line":3,"updated":"2015-07-16 18:14:47.000000000","message":"Heh, you really don\u0027t need to update this. But, it\u0027s not a big deal","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        if (CONF.auth.test_accounts_file and"},{"line_number":65,"context_line":"                os.path.isfile(CONF.auth.test_accounts_file)):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            with open(CONF.auth.test_accounts_file, \u0027r\u0027) as yaml_file:"},{"line_number":68,"context_line":"                accounts \u003d yaml.load(yaml_file)"},{"line_number":69,"context_line":"                for account in accounts:"},{"line_number":70,"context_line":"                    username \u003d account[\u0027username\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_d258458d","line":67,"updated":"2015-07-16 18:14:47.000000000","message":"I think it would be a bit clearer if you just use the read_accounts_yaml() from tempest/common/accounts.py granted it\u0027s basically the same thing as what\u0027s here, but I think it\u0027ll be a bit cleaner looking. It\u0027s also a public method for that reason.","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"c3295b5c5949d8b50f070ebb9f820ab81f689d70","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        if (CONF.auth.test_accounts_file and"},{"line_number":65,"context_line":"                os.path.isfile(CONF.auth.test_accounts_file)):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            with open(CONF.auth.test_accounts_file, \u0027r\u0027) as yaml_file:"},{"line_number":68,"context_line":"                accounts \u003d yaml.load(yaml_file)"},{"line_number":69,"context_line":"                for account in accounts:"},{"line_number":70,"context_line":"                    username \u003d account[\u0027username\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_71bb09e6","line":67,"in_reply_to":"9a41bdd9_d258458d","updated":"2015-07-21 19:16:57.000000000","message":"Done","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                    tenant_name \u003d account[\u0027tenant_name\u0027]"},{"line_number":72,"context_line":"                    CONF_USERS.append(username)"},{"line_number":73,"context_line":"                    CONF_TENANTS.append(tenant_name)"},{"line_number":74,"context_line":"                    if (CONF.auth.create_isolated_networks and"},{"line_number":75,"context_line":"                            \u0027resources\u0027 in account and"},{"line_number":76,"context_line":"                            \u0027network\u0027 in account[\u0027resources\u0027]):"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_32f2d170","line":74,"updated":"2015-07-16 18:14:47.000000000","message":"This option is unrelated to the test accounts mechanism. create_isolated_networks is a flag to trigger tenant isolation to create network resources dynamically. We should just parse the yaml to find out if there are networks as part of it.\n\nhttp://docs.openstack.org/developer/tempest/configuration.html#with-tenant-isolation covers this aspect of configuration.","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"c3295b5c5949d8b50f070ebb9f820ab81f689d70","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                    tenant_name \u003d account[\u0027tenant_name\u0027]"},{"line_number":72,"context_line":"                    CONF_USERS.append(username)"},{"line_number":73,"context_line":"                    CONF_TENANTS.append(tenant_name)"},{"line_number":74,"context_line":"                    if (CONF.auth.create_isolated_networks and"},{"line_number":75,"context_line":"                            \u0027resources\u0027 in account and"},{"line_number":76,"context_line":"                            \u0027network\u0027 in account[\u0027resources\u0027]):"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_675fcbe5","line":74,"in_reply_to":"9a41bdd9_32f2d170","updated":"2015-07-21 19:16:57.000000000","message":"Hmm account_generator is using this setting to determine if networks/routers are created as part of test accounts:\ndef get_admin_clients\n   if (CONF.service_available.neutron and\n           CONF.auth.create_isolated_networks):\n           network_admin \u003d network_client.NetworkClient(\n              _auth,\n   ...\nThen further on if the network_admin client exists networks and routers are created:\n\n    LOG.info(\u0027Users created\u0027)\n    if network_admin:\n        for u in resources[\u0027users\u0027]:\n            tenant \u003d identity_admin.get_tenant_by_name(u[\u0027tenant\u0027])\n            network_name, router_name \u003d create_network_resources(network_admin,tenant[\u0027id\u0027],u[\u0027name\u0027])\n            u[\u0027network\u0027] \u003d network_name\n            u[\u0027router\u0027] \u003d router_name\n             LOG.info(\u0027Networks created\u0027)","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e4d406dacccec2c57ecdbfb1bb68a8f521070180","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                        CONF_NETWORKS.append(_get_network_id(network_name,"},{"line_number":80,"context_line":"                                                             tenant_name))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                    if (CONF.auth.create_isolated_networks and"},{"line_number":83,"context_line":"                            \u0027resources\u0027 in account and"},{"line_number":84,"context_line":"                            \u0027router\u0027 in account[\u0027resources\u0027]):"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_52a99523","line":82,"updated":"2015-07-16 18:14:47.000000000","message":"Same here","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"c3295b5c5949d8b50f070ebb9f820ab81f689d70","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                        CONF_NETWORKS.append(_get_network_id(network_name,"},{"line_number":80,"context_line":"                                                             tenant_name))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                    if (CONF.auth.create_isolated_networks and"},{"line_number":83,"context_line":"                            \u0027resources\u0027 in account and"},{"line_number":84,"context_line":"                            \u0027router\u0027 in account[\u0027resources\u0027]):"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_e773db7e","line":82,"in_reply_to":"9a41bdd9_52a99523","updated":"2015-07-21 19:16:57.000000000","message":"See above","commit_id":"f4405f69363c227325b417ce524a3877fc705908"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"54471af8cec4b3c3e81e0213d61a52219bb1aa50","unresolved":false,"context_lines":[{"line_number":852,"context_line":"                          and role[\u0027name\u0027] !\u003d CONF.identity.admin_role)]"},{"line_number":853,"context_line":"                LOG.debug(\"List count, %s Roles after reconcile\" % len(roles))"},{"line_number":854,"context_line":"            return roles"},{"line_number":855,"context_line":"        except Exception as ex:"},{"line_number":856,"context_line":"            LOG.exception(\"Cannot retrieve Roles, exception: %s\" % ex)"},{"line_number":857,"context_line":"            return []"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_dde42ee1","side":"PARENT","line":855,"updated":"2015-07-22 20:16:06.000000000","message":"Missed this one.","commit_id":"c4bfc797ff01116d00f0ebc485c66a8b26d3ac80"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"dfbe7a58dc35bc80e0ed27f736f3a4d78a13233f","unresolved":false,"context_lines":[{"line_number":852,"context_line":"                          and role[\u0027name\u0027] !\u003d CONF.identity.admin_role)]"},{"line_number":853,"context_line":"                LOG.debug(\"List count, %s Roles after reconcile\" % len(roles))"},{"line_number":854,"context_line":"            return roles"},{"line_number":855,"context_line":"        except Exception as ex:"},{"line_number":856,"context_line":"            LOG.exception(\"Cannot retrieve Roles, exception: %s\" % ex)"},{"line_number":857,"context_line":"            return []"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_337b018e","side":"PARENT","line":855,"in_reply_to":"3a50d1a3_dde42ee1","updated":"2015-07-22 20:58:35.000000000","message":"Done","commit_id":"c4bfc797ff01116d00f0ebc485c66a8b26d3ac80"}]}
